From 84be0c41ce7945ad9336280160e12cd821c40e68 Mon Sep 17 00:00:00 2001 From: antpb Date: Sun, 21 Aug 2022 22:29:04 -0500 Subject: [PATCH 01/48] working p2pcf room with post slugs --- blocks/environment/Edit.js | 3 - blocks/environment/block.json | 2 +- .../components/EnvironmentFront.js | 99 +- blocks/environment/components/Networking.js | 23 + blocks/environment/components/p2pcf/p2pcf.js | 1193 +++++ blocks/environment/components/p2pcf/worker.js | 632 +++ blocks/environment/frontend.js | 1 + blocks/three-audio-block/Edit.js | 10 - inc/functions.php | 5 +- package.json | 19 +- yarn.lock | 4212 ++++++++++++++++- 11 files changed, 5971 insertions(+), 228 deletions(-) create mode 100644 blocks/environment/components/Networking.js create mode 100644 blocks/environment/components/p2pcf/p2pcf.js create mode 100644 blocks/environment/components/p2pcf/worker.js diff --git a/blocks/environment/Edit.js b/blocks/environment/Edit.js index 4df0dde..b9e4ddb 100644 --- a/blocks/environment/Edit.js +++ b/blocks/environment/Edit.js @@ -24,7 +24,6 @@ import ThreeObjectEdit from './components/ThreeObjectEdit'; export default function Edit( { attributes, setAttributes, isSelected } ) { const ALLOWED_BLOCKS = ['three-object-viewer/model-block', 'three-object-viewer/sky-block', 'three-object-viewer/npc-block', 'three-object-viewer/three-image-block', 'three-object-viewer/three-video-block', 'three-object-viewer/three-audio-block' ]; - const onChangeAnimations = ( animations ) => { setAttributes( { animations: animations } ); }; @@ -125,8 +124,6 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { value={ attributes.deviceTarget } options={ [ { label: 'VR', value: 'vr' }, - { label: 'AR', value: 'ar' }, - { label: '2D', value: '2d' }, ] } onChange={ ( target ) => setDeviceTarget( target ) diff --git a/blocks/environment/block.json b/blocks/environment/block.json index 722fa06..51c78e1 100644 --- a/blocks/environment/block.json +++ b/blocks/environment/block.json @@ -25,7 +25,7 @@ }, "deviceTarget": { "type": "string", - "default": "2d" + "default": "vr" }, "animations": { "type": "string", diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index d0d009c..6ec5efb 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -20,6 +20,7 @@ import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' import TeleportTravel from './TeleportTravel'; import defaultVRM from '../../../inc/avatars/mummy.vrm'; import Controls from './Controls'; +import Networking from './Networking'; import { useAspect } from '@react-three/drei' function SavedObject( props ) { @@ -217,6 +218,7 @@ function Floor( props ) { export default function EnvironmentFront( props ) { if ( props.deviceTarget === 'vr' ) { + console.log(props.postSlug); return ( <> + { props.threeUrl && ( <> @@ -463,51 +468,51 @@ export default function EnvironmentFront( props ) { ); } - if ( props.deviceTarget === '2d' ) { - return ( - <> - - - - - { props.threeUrl && ( - - ) } - - - - { props.hasTip === '1' ? ( -

Click and drag ^

- ) : ( -

- ) } - - ); - } + // if ( props.deviceTarget === '2d' ) { + // return ( + // <> + // + // + // + // + // { props.threeUrl && ( + // + // ) } + // + // + // + // { props.hasTip === '1' ? ( + //

Click and drag ^

+ // ) : ( + //

+ // ) } + // + // ); + // } } diff --git a/blocks/environment/components/Networking.js b/blocks/environment/components/Networking.js new file mode 100644 index 0000000..77c0571 --- /dev/null +++ b/blocks/environment/components/Networking.js @@ -0,0 +1,23 @@ +import P2PCF from './p2pcf/p2pcf.js'; + +const Networking = (props) => { + if (!document.location.hash) { + document.location = + document.location.toString() + + `#xpp-${props.postSlug}` + } + + const p2pcf = new P2PCF( + 'user-' + Math.floor(Math.random() * 100000), + document.location.hash.substring(1) + ) + window.p2pcf = p2pcf + console.log(p2pcf); + + return ( + <> + + ); +}; + +export default Networking; diff --git a/blocks/environment/components/p2pcf/p2pcf.js b/blocks/environment/components/p2pcf/p2pcf.js new file mode 100644 index 0000000..9a3fa28 --- /dev/null +++ b/blocks/environment/components/p2pcf/p2pcf.js @@ -0,0 +1,1193 @@ +/** + * Peer 2 Peer WebRTC connections with Cloudflare Workers as signalling server + * Copyright Greg Fodor + * Licensed under MIT + */ + +/* global crypto */ + +import getBrowserRTC from 'get-browser-rtc' +import EventEmitter from 'events' +import Peer from 'tiny-simple-peer' +import { + encode as arrayBufferToBase64, + decode as base64ToArrayBuffer +} from 'base64-arraybuffer' +import { hexToBytes } from 'convert-hex' +import arrayBufferToHex from 'array-buffer-to-hex' + +// Based on Chrome +const MAX_MESSAGE_LENGTH_BYTES = 16000 + +const CHUNK_HEADER_LENGTH_BYTES = 12 // 2 magic, 2 msg id, 2 chunk id, 2 for done bit, 4 for length +const CHUNK_MAGIC_WORD = 8121 +const CHUNK_MAX_LENGTH_BYTES = + MAX_MESSAGE_LENGTH_BYTES - CHUNK_HEADER_LENGTH_BYTES + +// Signalling messages have a 64-bit unique header +const SIGNAL_MESSAGE_HEADER_WORDS = [0x82ab, 0x81cd, 0x1295, 0xa1cb] + +const CANDIDATE_TYPES = { + host: 0, + srflx: 1, + relay: 2 +} + +const CANDIDATE_TCP_TYPES = { + active: 0, + passive: 1, + so: 2 +} + +const CANDIDATE_IDX = { + TYPE: 0, + PROTOCOL: 1, + IP: 2, + PORT: 3, + RELATED_IP: 4, + RELATED_PORT: 5, + TCP_TYPE: 6 +} + +const DEFAULT_STUN_ICE = [ + { urls: 'stun:stun1.l.google.com:19302' }, + { urls: 'stun:global.stun.twilio.com:3478' } +] + +const DEFAULT_TURN_ICE = [ + { + urls: 'turn:openrelay.metered.ca:80', + username: 'openrelayproject', + credential: 'openrelayproject' + }, + { + urls: 'turn:openrelay.metered.ca:443', + username: 'openrelayproject', + credential: 'openrelayproject' + }, + { + urls: 'turn:openrelay.metered.ca:443?transport=tcp', + username: 'openrelayproject', + credential: 'openrelayproject' + } +] + +const randomstring = len => { + const bytes = crypto.getRandomValues(new Uint8Array(len)) + const str = bytes.reduce((accum, v) => accum + String.fromCharCode(v), '') + return btoa(str).replaceAll('=', '') +} + +const textDecoder = new TextDecoder('utf-8') +const textEncoder = new TextEncoder() + +const arrToText = textDecoder.decode.bind(textDecoder) +const textToArr = textEncoder.encode.bind(textEncoder) + +const removeInPlace = (a, condition) => { + let i = 0; let j = 0 + + while (i < a.length) { + const val = a[i] + if (!condition(val, i, a)) a[j++] = val + i++ + } + + a.length = j + return a +} + +const ua = window.navigator.userAgent +const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i) +const webkit = !!ua.match(/WebKit/i) +const iOSSafari = !!(iOS && webkit && !ua.match(/CriOS/i)) +const isFirefox = !!(navigator?.userAgent.toLowerCase().indexOf('firefox') > -1) + +const hexToBase64 = hex => arrayBufferToBase64(hexToBytes(hex)) +const base64ToHex = b64 => arrayBufferToHex(base64ToArrayBuffer(b64)) + +function createSdp (isOffer, iceUFrag, icePwd, dtlsFingerprintBase64) { + const dtlsHex = base64ToHex(dtlsFingerprintBase64) + let dtlsFingerprint = '' + + for (let i = 0; i < dtlsHex.length; i += 2) { + dtlsFingerprint += `${dtlsHex[i]}${dtlsHex[i + 1]}${ + i === dtlsHex.length - 2 ? '' : ':' + }`.toUpperCase() + } + + const sdp = [ + 'v=0', + 'o=- 5498186869896684180 2 IN IP4 127.0.0.1', + 's=-', + 't=0 0', + 'a=msid-semantic: WMS', + 'm=application 9 UDP/DTLS/SCTP webrtc-datachannel', + 'c=IN IP4 0.0.0.0', + 'a=mid:0', + 'a=sctp-port:5000' + ] + + if (isOffer) { + sdp.push('a=setup:actpass') + } else { + sdp.push('a=setup:active') + } + + sdp.push(`a=ice-ufrag:${iceUFrag}`) + sdp.push(`a=ice-pwd:${icePwd}`) + sdp.push(`a=fingerprint:sha-256 ${dtlsFingerprint}`) + + return sdp.join('\r\n') + '\r\n' +} + +// parseCandidate from https://github.com/fippo/sdp +const parseCandidate = line => { + let parts + + // Parse both variants. + if (line.indexOf('a=candidate:') === 0) { + parts = line.substring(12).split(' ') + } else { + parts = line.substring(10).split(' ') + } + + const candidate = [ + CANDIDATE_TYPES[parts[7]], // type + parts[2].toLowerCase() === 'udp' ? 0 : 1, // protocol + parts[4], // ip + parseInt(parts[5], 10) // port + ] + + for (let i = 8; i < parts.length; i += 2) { + switch (parts[i]) { + case 'raddr': + while (candidate.length < 5) candidate.push(null) + candidate[4] = parts[i + 1] + break + case 'rport': + while (candidate.length < 6) candidate.push(null) + candidate[5] = parseInt(parts[i + 1], 10) + break + case 'tcptype': + while (candidate.length < 7) candidate.push(null) + candidate[6] = CANDIDATE_TCP_TYPES[parts[i + 1]] + break + default: + // Unknown extensions are silently ignored. + break + } + } + + while (candidate.length < 8) candidate.push(null) + candidate[7] = parseInt(parts[3], 10) // Priority last + + return candidate +} + +export default class P2PCF extends EventEmitter { + constructor (clientId = '', roomId = '', options = {}) { + super() + + if (!clientId || clientId.length < 4) { + throw new Error('Client ID must be at least four characters') + } + + if (!roomId || roomId.length < 4) { + throw new Error('Room ID must be at least four characters') + } + + this._step = this._step.bind(this) + + this.peers = new Map() + this.msgChunks = new Map() + this.connectedSessions = [] + this.clientId = clientId + this.roomId = roomId + this.sessionId = randomstring(20) + this.packages = [] + this.dataTimestamp = null + this.lastPackages = null + this.lastProcessedReceivedDataTimestamps = new Map() + this.packageReceivedFromPeers = new Set() + this.startedAtTimestamp = null + this.peerOptions = options.rtcPeerConnectionOptions || {} + this.peerProprietaryConstraints = options.rtcPeerConnectionProprietaryConstraints || {} + this.peerSdpTransform = options.sdpTransform || ((sdp) => sdp) + + this.workerUrl = options.workerUrl || 'https://p2pcf.minddrop.workers.dev' + + if (this.workerUrl.endsWith('/')) { + this.workerUrl = this.workerUrl.substring(0, this.workerUrl.length - 1) + } + + this.stunIceServers = options.stunIceServers || DEFAULT_STUN_ICE + this.turnIceServers = options.turnIceServers || DEFAULT_TURN_ICE + this.networkChangePollIntervalMs = + options.networkChangePollIntervalMs || 15000 + + this.stateExpirationIntervalMs = + options.stateExpirationIntervalMs || 2 * 60 * 1000 + this.stateHeartbeatWindowMs = options.stateHeartbeatWindowMs || 30000 + + this.fastPollingDurationMs = options.fastPollingDurationMs || 10000 + this.fastPollingRateMs = options.fastPollingRateMs || 750 + this.slowPollingRateMs = options.slowPollingRateMs || 1500 + + this.wrtc = getBrowserRTC() + this.dtlsCert = null + this.udpEnabled = null + this.isSymmetric = null + this.dtlsFingerprint = null + this.reflexiveIps = new Set() + + // step + this.isSending = false + this.finished = false + this.nextStepTime = -1 + this.deleteKey = null + this.sentFirstPoll = false + this.stopFastPollingAt = -1 + + // ContextID is maintained across page refreshes + if (!window.history.state?._p2pcfContextId) { + window.history.replaceState( + { + ...window.history.state, + _p2pcfContextId: randomstring(20) + }, + window.location.href + ) + } + + this.contextId = window.history.state._p2pcfContextId + } + + async _init () { + if (this.dtlsCert === null) { + this.dtlsCert = await this.wrtc.RTCPeerConnection.generateCertificate({ + name: 'ECDSA', + namedCurve: 'P-256' + }) + } + } + + async _step (finish = false) { + const { + sessionId, + clientId, + roomId, + contextId, + stateExpirationIntervalMs, + stateHeartbeatWindowMs, + packages, + fastPollingDurationMs, + fastPollingRateMs, + slowPollingRateMs + } = this + + const now = Date.now() + + if (finish) { + if (this.finished) return + if (!this.deleteKey) return + this.finished = true + } else { + if (this.nextStepTime > now) return + if (this.isSending) return + if (this.reflexiveIps.length === 0) return + } + + this.isSending = true + + try { + const localDtlsFingerprintBase64 = hexToBase64( + this.dtlsFingerprint.replaceAll(':', '') + ) + + const localPeerInfo = [ + sessionId, + clientId, + this.isSymmetric, + localDtlsFingerprintBase64, + this.startedAtTimestamp, + [...this.reflexiveIps] + ] + + const payload = { r: roomId, k: contextId } + + if (finish) { + payload.dk = this.deleteKey + } + + const expired = + this.dataTimestamp === null || + now - this.dataTimestamp >= + stateExpirationIntervalMs - stateHeartbeatWindowMs + + const packagesChanged = this.lastPackages !== JSON.stringify(packages) + let includePackages = false + + if (expired || packagesChanged || finish) { + // This will force a write + this.dataTimestamp = now + + // Compact packages, expire any of them sent more than a minute ago. + // (ICE will timeout by then, even if other latency fails us.) + removeInPlace(packages, pkg => { + const sentAt = pkg[pkg.length - 2] + return now - sentAt > 60 * 1000 + }) + + includePackages = true + } + + if (finish) { + includePackages = false + } + + // The first poll should just be a read, no writes, to build up packages before we do a write + // to reduce worker I/O. So don't include the data + packages on the first request. + if (this.sentFirstPoll) { + payload.d = localPeerInfo + payload.t = this.dataTimestamp + payload.x = this.stateExpirationIntervalMs + + if (includePackages) { + payload.p = packages + this.lastPackages = JSON.stringify(packages) + } + } + + const body = JSON.stringify(payload) + const headers = { 'Content-Type': 'application/json ' } + let keepalive = false + + if (finish) { + headers['X-Worker-Method'] = 'DELETE' + keepalive = true + } + + const res = await fetch(this.workerUrl, { + method: 'POST', + headers, + body, + keepalive + }) + + const { ps: remotePeerDatas, pk: remotePackages, dk } = await res.json() + + if (dk) { + this.deleteKey = dk + } + + if (finish) return + + // Slight optimization: if the peers are empty on the first poll, immediately publish data to reduce + // delay before first peers show up. + if (remotePeerDatas.length === 0 && !this.sentFirstPoll) { + payload.d = localPeerInfo + payload.t = this.dataTimestamp + payload.x = this.stateExpirationIntervalMs + payload.p = packages + this.lastPackages = JSON.stringify(packages) + + const res = await fetch(this.workerUrl, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload) + }) + + const { dk } = await res.json() + + if (dk) { + this.deleteKey = dk + } + } + + this.sentFirstPoll = true + + const previousPeerSessionIds = [...this.peers.keys()] + + this._handleWorkerResponse( + localPeerInfo, + localDtlsFingerprintBase64, + packages, + remotePeerDatas, + remotePackages + ) + + const activeSessionIds = remotePeerDatas.map(p => p[0]) + + const peersChanged = + previousPeerSessionIds.length !== activeSessionIds.length || + activeSessionIds.find(c => !previousPeerSessionIds.includes(c)) || + previousPeerSessionIds.find(c => !activeSessionIds.includes(c)) + + // Rate limit requests when room is empty, or look for new joins + // Go faster when things are changing to avoid ICE timeouts + if (peersChanged) { + this.stopFastPollingAt = now + fastPollingDurationMs + } + + if (now < this.stopFastPollingAt) { + this.nextStepTime = now + fastPollingRateMs + } else { + this.nextStepTime = now + slowPollingRateMs + } + } catch (e) { + console.error(e) + this.nextStepTime = now + slowPollingRateMs + } finally { + this.isSending = false + } + } + + _handleWorkerResponse ( + localPeerData, + localDtlsFingerprintBase64, + localPackages, + remotePeerDatas, + remotePackages + ) { + const localStartedAtTimestamp = this.startedAtTimestamp + + const { + dtlsCert: localDtlsCert, + peers, + lastProcessedReceivedDataTimestamps, + packageReceivedFromPeers, + stunIceServers, + turnIceServers + } = this + const [localSessionId, , localSymmetric] = localPeerData + + const now = Date.now() + + for (const remotePeerData of remotePeerDatas) { + const [ + remoteSessionId, + remoteClientId, + remoteSymmetric, + remoteDtlsFingerprintBase64, + remoteStartedAtTimestamp, + remoteReflexiveIps, + remoteDataTimestamp + ] = remotePeerData + + // Don't process the same messages twice. This covers disconnect cases where stale data re-creates a peer too early. + if ( + lastProcessedReceivedDataTimestamps.get(remoteSessionId) === + remoteDataTimestamp + ) { + continue + } + + // Peer A is: + // - if both not symmetric or both symmetric, whoever has the most recent data is peer A, since we want Peer B created faster, + // and latency will be lowest with older data. + // - if one is and one isn't, the non symmetric one is the only one who has valid candidates, so the symmetric one is peer A + const isPeerA = + localSymmetric === remoteSymmetric + ? localStartedAtTimestamp === remoteStartedAtTimestamp + ? localSessionId > remoteSessionId + : localStartedAtTimestamp > remoteStartedAtTimestamp + : localSymmetric + + // If either side is symmetric, use TURN and hope we avoid connecting via relays + // We can't just use TURN if both sides are symmetric because one side might be port restricted and hence won't connect without a relay. + const iceServers = + localSymmetric || remoteSymmetric ? turnIceServers : stunIceServers + + // Firefox answer side is very aggressive with ICE timeouts, so always delay answer set until second candidates received. + const delaySetRemoteUntilReceiveCandidates = isFirefox + const remotePackage = remotePackages.find(p => p[1] === remoteSessionId) + + const peerOptions = { ...this.peerOptions, iceServers } + + if (localDtlsCert) { + peerOptions.certificates = [localDtlsCert] + } + + if (isPeerA) { + if (peers.has(remoteSessionId)) continue + if (!remotePackage) continue + + lastProcessedReceivedDataTimestamps.set( + remoteSessionId, + remoteDataTimestamp + ) + + // If we already added the candidates from B, skip. This check is not strictly necessary given the peer will exist. + if (packageReceivedFromPeers.has(remoteSessionId)) continue + packageReceivedFromPeers.add(remoteSessionId) + + // - I create PC + // - I create an answer SDP, and munge the ufrag + // - Set local description with answer + // - Set remote description via the received sdp + // - Add the ice candidates + + const [ + , + , + remoteIceUFrag, + remoteIcePwd, + remoteDtlsFingerprintBase64, + localIceUFrag, + localIcePwd, + , + remoteCandidates + ] = remotePackage + + const peer = new Peer({ + config: peerOptions, + initiator: false, + iceCompleteTimeout: 3000, + proprietaryConstraints: this.peerProprietaryConstraints, + sdpTransform: sdp => { + const lines = [] + + for (const l of sdp.split('\r\n')) { + if (l.startsWith('a=ice-ufrag')) { + lines.push(`a=ice-ufrag:${localIceUFrag}`) + } else if (l.startsWith('a=ice-pwd')) { + lines.push(`a=ice-pwd:${localIcePwd}`) + } else { + lines.push(l) + } + } + + return this.peerSdpTransform(lines.join('\r\n')) + } + }) + + peer.id = remoteSessionId + peer.client_id = remoteClientId + + this._wireUpCommonPeerEvents(peer) + + peers.set(peer.id, peer) + + // Special case if both behind sym NAT or other hole punching isn't working: peer A needs to send its candidates as well. + const pkg = [ + remoteSessionId, + localSessionId, + /* lfrag */ null, + /* lpwd */ null, + /* ldtls */ null, + /* remote ufrag */ null, + /* remote Pwd */ null, + now, + [] + ] + + const pkgCandidates = pkg[pkg.length - 1] + + const initialCandidateSignalling = e => { + if (!e.candidate?.candidate) return + pkgCandidates.push(e.candidate.candidate) + } + + peer.on('signal', initialCandidateSignalling) + + const finishIce = () => { + peer.removeListener('signal', initialCandidateSignalling) + if (localPackages.includes(pkg)) return + if (pkgCandidates.length === 0) return + + localPackages.push(pkg) + } + + peer.once('_iceComplete', finishIce) + + const remoteSdp = createSdp( + true, + remoteIceUFrag, + remoteIcePwd, + remoteDtlsFingerprintBase64 + ) + + for (const candidate of remoteCandidates) { + peer.signal({ candidate: { candidate, sdpMLineIndex: 0 } }) + } + + peer.signal({ type: 'offer', sdp: remoteSdp }) + } else { + // I am peer B, I need to create a peer first if none exists, and send a package. + // - Create PC + // - Create offer + // - Set local description as-is + // - Generate ufrag + pwd + // - Generate remote SDP using the dtls fingerprint for A, and my generated ufrag + pwd + // - Add an srflx candidate for each of the reflexive IPs for A (on a random port) to hole punch + // - Set remote description + // so peer reflexive candidates for it show up. + // - Let trickle run, then once trickle finishes send a package for A to pick up = [my session id, my offer sdp, generated ufrag/pwd, dtls fingerprint, ice candidates] + // - keep the icecandidate listener active, and add the pfrlx candidates when they arrive (but don't send another package) + if (!peers.has(remoteSessionId)) { + lastProcessedReceivedDataTimestamps.set( + remoteSessionId, + remoteDataTimestamp + ) + + const remoteUfrag = randomstring(12) + const remotePwd = randomstring(32) + const peer = new Peer({ + config: peerOptions, + proprietaryConstraints: this.rtcPeerConnectionProprietaryConstraints, + iceCompleteTimeout: 3000, + initiator: true, + sdpTransform: this.peerSdpTransform + }) + + peer.id = remoteSessionId + peer.client_id = remoteClientId + + this._wireUpCommonPeerEvents(peer) + + peers.set(peer.id, peer) + + // This is the 'package' sent to peer A that it needs to start ICE + const pkg = [ + remoteSessionId, + localSessionId, + /* lfrag */ null, + /* lpwd */ null, + /* ldtls */ null, + remoteUfrag, + remotePwd, + now, + [] + ] + + const pkgCandidates = pkg[pkg.length - 1] + + const initialCandidateSignalling = e => { + // Push package onto the given package list, so it will be sent in next polling step. + if (!e.candidate?.candidate) return + pkgCandidates.push(e.candidate.candidate) + } + + peer.on('signal', initialCandidateSignalling) + + const finishIce = () => { + peer.removeListener('signal', initialCandidateSignalling) + + if (localPackages.includes(pkg)) return + if (pkgCandidates.length === 0) return + + localPackages.push(pkg) + } + + peer.once('_iceComplete', finishIce) + + const enqueuePackageFromOffer = e => { + if (e.type !== 'offer') return + peer.removeListener('signal', enqueuePackageFromOffer) + + for (const l of e.sdp.split('\r\n')) { + switch (l.split(':')[0]) { + case 'a=ice-ufrag': + pkg[2] = l.substring(12) + break + case 'a=ice-pwd': + pkg[3] = l.substring(10) + break + case 'a=fingerprint': + pkg[4] = hexToBase64(l.substring(22).replaceAll(':', '')) + break + } + } + + // Peer A posted its reflexive IPs to try to speed up hole punching by B. + let remoteSdp = createSdp( + false, + remoteUfrag, + remotePwd, + remoteDtlsFingerprintBase64 + ) + + for (let i = 0; i < remoteReflexiveIps.length; i++) { + remoteSdp += `a=candidate:0 1 udp ${i + 1} ${ + remoteReflexiveIps[i] + } 30000 typ srflx\r\n` + } + + if (!delaySetRemoteUntilReceiveCandidates) { + peer.signal({ type: 'answer', sdp: remoteSdp }) + } else { + peer._pendingRemoteSdp = remoteSdp + } + } + + peer.once('signal', enqueuePackageFromOffer) + } + + if (!remotePackage) continue + + // Peer B will also receive candidates in the case where hole punch fails. + // If we already added the candidates from A, skip + const [, , , , , , , , remoteCandidates] = remotePackage + if (packageReceivedFromPeers.has(remoteSessionId)) continue + if (!peers.has(remoteSessionId)) continue + + const peer = peers.get(remoteSessionId) + + if ( + delaySetRemoteUntilReceiveCandidates && + !peer._pc.remoteDescription && + peer._pendingRemoteSdp + ) { + if (!peer.connected) { + for (const candidate of remoteCandidates) { + peer.signal({ candidate: { candidate, sdpMLineIndex: 0 } }) + } + } + + peer.signal({ type: 'answer', sdp: peer._pendingRemoteSdp }) + delete peer._pendingRemoteSdp + packageReceivedFromPeers.add(remoteSessionId) + } + + if ( + !delaySetRemoteUntilReceiveCandidates && + peer._pc.remoteDescription && + remoteCandidates.length > 0 + ) { + if (!peer.connected) { + for (const candidate of remoteCandidates) { + peer.signal({ candidate: { candidate, sdpMLineIndex: 0 } }) + } + } + + packageReceivedFromPeers.add(remoteSessionId) + } + } + } + + const remoteSessionIds = remotePeerDatas.map(p => p[0]) + + // Remove all peers no longer in the peer list. + // TODO deal with simple peer + for (const [sessionId, peer] of peers.entries()) { + if (remoteSessionIds.includes(sessionId)) continue + this._removePeer(peer, true) + } + } + + /** + * Connect to network and start discovering peers + */ + async start () { + this.startedAtTimestamp = Date.now() + await this._init() + + const [ + udpEnabled, + isSymmetric, + reflexiveIps, + dtlsFingerprint + ] = await this._getNetworkSettings(this.dtlsCert) + + if (this.finished) return + + this.udpEnabled = udpEnabled + this.isSymmetric = isSymmetric + this.reflexiveIps = reflexiveIps + this.dtlsFingerprint = dtlsFingerprint + + this.networkSettingsInterval = setInterval(async () => { + const [ + newUdpEnabled, + newIsSymmetric, + newReflexiveIps, + newDtlsFingerprint + ] = await this._getNetworkSettings(this.dtlsCert) + + if ( + newUdpEnabled !== this.udpEnabled || + newIsSymmetric !== this.isSymmetric || + newDtlsFingerprint !== this.dtlsFingerprint || + !![...newReflexiveIps].find(ip => ![...this.reflexiveIps].find(ip2 => ip === ip2)) || + !![...reflexiveIps].find(ip => ![...newReflexiveIps].find(ip2 => ip === ip2)) + ) { + // Network changed, force pushing new data + this.dataTimestamp = null + } + + this.udpEnabled = newUdpEnabled + this.isSymmetric = newIsSymmetric + this.reflexiveIps = newReflexiveIps + this.dtlsFingerprint = newDtlsFingerprint + }, this.networkChangePollIntervalMs) + + this._step = this._step.bind(this) + this.stepInterval = setInterval(this._step, 500) + this.destroyOnUnload = () => this.destroy() + + for (const ev of iOSSafari ? ['pagehide'] : ['beforeunload', 'unload']) { + window.addEventListener(ev, this.destroyOnUnload) + } + } + + _removePeer (peer, destroy = false) { + const { packageReceivedFromPeers, packages, peers } = this + if (!peers.has(peer.id)) return + + removeInPlace(packages, pkg => pkg[0] === peer.id) + packageReceivedFromPeers.delete(peer.id) + + peers.delete(peer.id) + + if (destroy) { + peer.destroy() + } + + this.emit('peerclose', peer) + } + + /** + * Send a msg and get response for it + * @param Peer peer simple-peer object to send msg to + * @param string msg Message to send + * @param integer msgID ID of message if it's a response to a previous message + */ + send (peer, msg) { + return new Promise((resolve, reject) => { + // if leading byte is zero + // next two bytes is message id, then remaining bytes + // otherwise its just raw + let dataArrBuffer = null + + let messageId = null + + if (msg instanceof ArrayBuffer) { + dataArrBuffer = msg + } else if (msg instanceof Uint8Array) { + if (msg.buffer.byteLength === msg.length) { + dataArrBuffer = msg.buffer + } else { + dataArrBuffer = msg.buffer.slice(msg.byteOffset, msg.byteOffset + msg.byteLength) + } + } else { + throw new Error('Unsupported send data type', msg) + } + + // If the magic word happens to be the beginning of this message, chunk it + if ( + dataArrBuffer.byteLength > MAX_MESSAGE_LENGTH_BYTES || + new Uint16Array(dataArrBuffer, 0, 1) === CHUNK_MAGIC_WORD + ) { + messageId = Math.floor(Math.random() * 256 * 128) + } + + if (messageId !== null) { + for ( + let offset = 0, chunkId = 0; + offset < dataArrBuffer.byteLength; + offset += CHUNK_MAX_LENGTH_BYTES, chunkId++ + ) { + const chunkSize = Math.min( + CHUNK_MAX_LENGTH_BYTES, + dataArrBuffer.byteLength - offset + ) + let bufSize = CHUNK_HEADER_LENGTH_BYTES + chunkSize + + while (bufSize % 4 !== 0) { + bufSize++ + } + + const buf = new ArrayBuffer(bufSize) + new Uint8Array(buf, CHUNK_HEADER_LENGTH_BYTES).set( + new Uint8Array(dataArrBuffer, offset, chunkSize) + ) + const u16 = new Uint16Array(buf) + const u32 = new Uint32Array(buf) + + u16[0] = CHUNK_MAGIC_WORD + u16[1] = messageId + u16[2] = chunkId + u16[3] = + offset + CHUNK_MAX_LENGTH_BYTES >= dataArrBuffer.byteLength ? 1 : 0 + u32[2] = dataArrBuffer.byteLength + + peer.send(buf) + } + } else { + peer.send(dataArrBuffer) + } + }) + } + + broadcast (msg) { + const ps = [] + + for (const peer of this.peers.values()) { + if (!peer.connected) continue + + ps.push(this.send(peer, msg)) + } + + return Promise.all(ps) + } + + /** + * Destroy object + */ + destroy () { + if (this._step) { + this._step(true) + } + + if (this.networkSettingsInterval) { + clearInterval(this.networkSettingsInterval) + this.networkSettingsInterval = null + } + + if (this.stepInterval) { + clearInterval(this.stepInterval) + this.stepInterval = null + } + + if (this.destroyOnUnload) { + for (const ev of iOSSafari ? ['pagehide'] : ['beforeunload', 'unload']) { + window.removeEventListener(ev, this.destroyOnUnload) + } + + this.destroyOnUnload = null + } + + for (const peer of this.peers.values()) { + peer.destroy() + } + } + + /** + * Handle msg chunks. Returns false until the last chunk is received. Finally returns the entire msg + * @param object data + */ + _chunkHandler (data, messageId, chunkId) { + let target = null + + if (!this.msgChunks.has(messageId)) { + const totalLength = new Uint32Array(data, 0, 3)[2] + target = new Uint8Array(totalLength) + this.msgChunks.set(messageId, target) + } else { + target = this.msgChunks.get(messageId) + } + + const offsetToSet = chunkId * CHUNK_MAX_LENGTH_BYTES + + const numBytesToSet = Math.min( + target.byteLength - offsetToSet, + CHUNK_MAX_LENGTH_BYTES + ) + + target.set( + new Uint8Array(data, CHUNK_HEADER_LENGTH_BYTES, numBytesToSet), + chunkId * CHUNK_MAX_LENGTH_BYTES + ) + + return target.buffer + } + + _updateConnectedSessions () { + this.connectedSessions.length = 0 + + for (const [sessionId, peer] of this.peers) { + if (peer.connected) { + this.connectedSessions.push(sessionId) + continue + } + } + } + + async _getNetworkSettings () { + await this._init() + + let dtlsFingerprint = null + const candidates = [] + const reflexiveIps = new Set() + + const peerOptions = { iceServers: this.stunIceServers } + + if (this.dtlsCert) { + peerOptions.certificates = [this.dtlsCert] + } + + const pc = new this.wrtc.RTCPeerConnection(peerOptions) + pc.createDataChannel('x') + + const p = new Promise(resolve => { + setTimeout(() => resolve(), 5000) + + pc.onicecandidate = e => { + if (!e.candidate) return resolve() + + if (e.candidate.candidate) { + candidates.push(parseCandidate(e.candidate.candidate)) + } + } + }) + + pc.createOffer().then(offer => { + for (const l of offer.sdp.split('\n')) { + if (l.indexOf('a=fingerprint') === -1) continue + dtlsFingerprint = l.split(' ')[1].trim() + } + + pc.setLocalDescription(offer) + }) + + await p + + pc.close() + + let isSymmetric = false + let udpEnabled = false + + // Network is not symmetric if we can find a srflx candidate that has a unique related port + /* eslint-disable no-labels */ + loop: for (const c of candidates) { + /* eslint-enable no-labels */ + if (c[0] !== CANDIDATE_TYPES.srflx) continue + udpEnabled = true + + reflexiveIps.add(c[CANDIDATE_IDX.IP]) + + for (const d of candidates) { + if (d[0] !== CANDIDATE_TYPES.srflx) continue + if (c === d) continue + + if ( + typeof c[CANDIDATE_IDX.RELATED_PORT] === 'number' && + typeof d[CANDIDATE_IDX.RELATED_PORT] === 'number' && + c[CANDIDATE_IDX.RELATED_PORT] === d[CANDIDATE_IDX.RELATED_PORT] && + c[CANDIDATE_IDX.PORT] !== d[CANDIDATE_IDX.PORT] + ) { + // check port and related port + // Symmetric, continue + isSymmetric = true + break + } + } + } + + return [udpEnabled, isSymmetric, reflexiveIps, dtlsFingerprint] + } + + _handlePeerError (peer, err) { + if ( + err.errorDetail === 'sctp-failure' && + err.message.indexOf('User-Initiated Abort') >= 0 + ) { + return // Benign shutdown + } + + console.error(err) + } + + _checkForSignalOrEmitMessage (peer, msg) { + if (msg.byteLength < SIGNAL_MESSAGE_HEADER_WORDS.length * 2) { + this.emit('msg', peer, msg) + return + } + + const u16 = new Uint16Array(msg, 0, SIGNAL_MESSAGE_HEADER_WORDS.length) + + for (let i = 0; i < SIGNAL_MESSAGE_HEADER_WORDS.length; i++) { + if (u16[i] !== SIGNAL_MESSAGE_HEADER_WORDS[i]) { + this.emit('msg', peer, msg) + return + } + } + + const u8 = new Uint8Array(msg, SIGNAL_MESSAGE_HEADER_WORDS.length * 2) + + let payload = arrToText(u8) + + // Might have a trailing byte + if (payload.endsWith('\0')) { + payload = payload.substring(0, payload.length - 1) + } + + peer.signal(payload) + } + + _wireUpCommonPeerEvents (peer) { + peer.on('connect', () => { + this.emit('peerconnect', peer) + + // Remove packages for the peer once connected + removeInPlace(this.packages, pkg => pkg[0] === peer.id) + this._updateConnectedSessions() + }) + + peer.on('data', data => { + let messageId = null + let u16 = null + if (data.byteLength >= CHUNK_HEADER_LENGTH_BYTES) { + u16 = new Uint16Array(data, 0, CHUNK_HEADER_LENGTH_BYTES / 2) + + if (u16[0] === CHUNK_MAGIC_WORD) { + messageId = u16[1] + } + } + if (messageId !== null) { + try { + const chunkId = u16[2] + const last = u16[3] !== 0 + const msg = this._chunkHandler(data, messageId, chunkId, last) + if (last) { + this._checkForSignalOrEmitMessage(peer, msg) + this.msgChunks.delete(messageId) + } + } catch (e) { + console.error(e) + } + } else { + this._checkForSignalOrEmitMessage(peer, data) + } + }) + + peer.on('error', err => { + console.warn(err) + }) + + peer.on('close', () => { + this._removePeer(peer) + this._updateConnectedSessions() + }) + + // Once ICE completes, perform subsequent signalling via the datachannel + peer.once('_iceComplete', () => { + peer.on('signal', signalData => { + const payloadBytes = textToArr( + JSON.stringify(signalData) + ) + + let len = + payloadBytes.byteLength + SIGNAL_MESSAGE_HEADER_WORDS.length * 2 + + if (len % 2 !== 0) { + len++ + } + + // Add signal header + const buf = new ArrayBuffer(len) + const u8 = new Uint8Array(buf) + const u16 = new Uint16Array(buf) + + u8.set(payloadBytes, SIGNAL_MESSAGE_HEADER_WORDS.length * 2) + + for (let i = 0; i < SIGNAL_MESSAGE_HEADER_WORDS.length; i++) { + u16[i] = SIGNAL_MESSAGE_HEADER_WORDS[i] + } + + this.send(peer, buf) + }) + }) + } +} diff --git a/blocks/environment/components/p2pcf/worker.js b/blocks/environment/components/p2pcf/worker.js new file mode 100644 index 0000000..67111a2 --- /dev/null +++ b/blocks/environment/components/p2pcf/worker.js @@ -0,0 +1,632 @@ +const corsHeaders = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'GET,HEAD,POST,DELETE,OPTIONS', + 'Access-Control-Max-Age': '86400' + } + + const IPV4_REGEX = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/ + + const IPV6_REGEX = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/ + + const RATE_LIMITING_SAMPLING_RATE = 100.0 + + function validatePayload (headers, payload) { + if ( + !payload.r || + payload.r.length < 4 || + payload.r.length > 64 || + !payload.r.match(/^[A-Za-z0-9_-]+$/) + ) { + return new Response('Bad room id' + payload.r, { status: 400, headers }) + } + + if (payload.d) { + if ( + !payload.x || + typeof payload.x !== 'number' || + payload.x > 24 * 60 * 60 * 1000 + ) { + return new Response('Bad expiration', { status: 400, headers }) + } + + // Validate timestamp - note date is of last I/O in worker + if ( + !payload.t || + typeof payload.t !== 'number' || + Math.abs(payload.t - new Date().getTime()) > 10 * 60 * 1000 + ) { + return new Response('Bad timestamp', { status: 400, headers }) + } + + if (!payload.k || payload.k.length > 64) { + return new Response('Bad context id', { status: 400, headers }) + } + + // Registering an entry + const d = payload.d + + if (d.length !== 6) { + return new Response('Bad data length', { status: 400, headers }) + } + + // Validate session id + client id + context id + if (!d[0] || d[0].length > 64) { + return new Response('Bad session id', { status: 400, headers }) + } + + if (!d[1] || d[1].length > 64) { + return new Response('Bad client id', { status: 400, headers }) + } + + if (typeof d[2] !== 'boolean') { + return new Response('Bad is symmetric', { status: 400, headers }) + } + + if (!d[3] || d[3].length !== 44) { + return new Response('Bad dtls', { status: 400, headers }) + } + + if (!d[4] || typeof d[4] !== 'number') { + return new Response('Bad joined at timestamp', { status: 400, headers }) + } + + if ( + !d[5] || + typeof d[5] !== 'object' || + d[5].find(ip => !ip.match(IPV4_REGEX) && !ip.match(IPV6_REGEX)) + ) { + return new Response('Bad reflexive IPs', { status: 400, headers }) + } + + try { + atob(d[3]) + } catch (e) { + return new Response('Bad base64 encoding', { status: 400, headers }) + } + } + } + + function getRandomString (length) { + let result = '' + const characters = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + const charactersLength = characters.length + for (let i = 0; i < length; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)) + } + + return result + } + + function b64toBlob (b64Data, contentType = '', sliceSize = 512) { + const byteCharacters = atob(b64Data) + const byteArrays = [] + + for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { + const slice = byteCharacters.slice(offset, offset + sliceSize) + + const byteNumbers = new Array(slice.length) + for (let i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i) + } + + const byteArray = new Uint8Array(byteNumbers) + byteArrays.push(byteArray) + } + + const blob = new Blob(byteArrays, { type: contentType }) + return blob + } + + function getEntryDeleteKey (entry) { + return entry[entry.length - 1] + } + + function getEntryContextId (entry) { + return entry[entry.length - 2] + } + + function getEntryPackages (entry) { + return entry[entry.length - 3] + } + + function getEntryTimestamp (entry) { + return entry[entry.length - 4] + } + + function getEntrySessionId (entry) { + return entry[0] + } + + function getEntryPayloadLength (entry) { + return entry.length - 3 + } + + async function handleGet (request, env) { + const hasStore = !!getStore(env) + + return new Response( + `Hello from P2PCF
${ + hasStore + ? '👍 R2 bucket is configured properly, ready to serve.' + : '❌ Couldn\'t find a configured R2 bucket.
Make sure you created a bucket and connected the worker to it.' + }
`, + { + headers: { + 'Content-Type': 'text.html' + } + } + ) + } + + async function handleOptions (request, env) { + const headers = request.headers + + if ( + headers.get('Origin') !== null && + headers.get('Access-Control-Request-Method') !== null && + headers.get('Access-Control-Request-Headers') !== null + ) { + const respHeaders = { + ...corsHeaders, + 'Access-Control-Allow-Headers': request.headers.get( + 'Access-Control-Request-Headers' + ) + } + + return new Response(null, { + headers: respHeaders + }) + } else { + // Handle standard OPTIONS request. + // If you want to allow other HTTP Methods, you can do that here. + return new Response(null, { + headers: { + Allow: 'GET, POST, DELETE, OPTIONS' + } + }) + } + } + + async function lookupEntries (roomId, store) { + let maxIndex = -1 + const maxIndexEntry = await store.get(`rooms/${roomId}/max_index`) + + if (maxIndexEntry) { + maxIndex = parseInt(await maxIndexEntry.text()) + } + + const entries = [] + const ps = [] + + // read a few ahead of max index just to reduce latency during small groups joining on KV + // read entries as promises first to parallelize reads. if the entries are empty then don't do this. + for (let i = 0; i <= maxIndex; i++) { + const p = store + .get(`rooms/${roomId}/entries:${i}`) + .then(v => (v ? v.json() : v)) + + entries.push(p) + ps.push(p) + + // Connection limit + if (ps.length >= 2) { + await Promise.all(ps) + ps.length = 0 + } + } + + await Promise.all(ps) + + return [entries, maxIndex] + } + + function getStore (env) { + let store = null + + for (const obj of Object.values(env)) { + if (obj.get && obj.put && obj.delete && obj.list) { + store = obj + break + } + } + + return store + } + + async function handleDelete (request, env, context) { + const headers = { ...corsHeaders, Vary: 'Origin' } + const payload = await request.json() + + if (!payload.dk) { + return new Response('Missing delete key', { status: 400, headers }) + } + + const errorResponse = validatePayload(headers, payload) + if (errorResponse) return errorResponse + + const roomId = payload.r + const store = getStore(env) + + const [entries, maxIndex] = await lookupEntries(roomId, store) + + for (let i = 0; i < entries.length; i++) { + const value = await entries[i] + + if (value) { + entries[i] = value + } else { + entries[i] = null + } + } + + for (let i = 0; i < entries.length; i++) { + if (entries[i] === null) continue + + const entry = entries[i] + const entrySessionId = getEntrySessionId(entry) + const entryContextId = getEntryContextId(entry) + const entryDeleteKey = getEntryDeleteKey(entry) + + if ( + payload.k === entryContextId && + payload.d[0] === entrySessionId && + payload.dk === entryDeleteKey + ) { + context.waitUntil(store.delete(`rooms/${roomId}/entries:${i}`)) + + if (maxIndex === i) { + const now = new Date().getTime() + + context.waitUntil( + store.put(`rooms/${roomId}/max_index`, `${i - 1}`, { + customMetadata: { expireAt: now + 8 * 60 * 60 * 1000 } + }) + ) + } + + return new Response('{}', { status: 200, headers }) + } + } + + return new Response('No delete key', { status: 404, headers }) + } + + async function handlePost (request, env, context) { + const headers = { ...corsHeaders, Vary: 'Origin' } + + const payload = await request.json() + const errorResponse = validatePayload(headers, payload) + + if (errorResponse) return errorResponse + const store = getStore(env) + + const roomId = payload.r + const now = new Date().getTime() + + // R2 needs vacuum + const nextVacuumEntry = store.get(`rooms/${roomId}/next_vacuum`) + + const [entries, maxIndex] = await lookupEntries(roomId, store) + + for (let i = 0; i < entries.length; i++) { + const value = await entries[i] + + if (value) { + entries[i] = value + } else { + entries[i] = null + } + } + + const contextId = payload.k + let deleteKeyForEntry = null + + if (payload.d && payload.p) { + // This is the timestamp on the session side of this data set if this changes, we write to the store + const timestamp = payload.t + const packages = payload.p + deleteKeyForEntry = getRandomString(24) + + let shouldSave = true + + // Need to save the entry if it doesn't exist already. + for (let i = 0; i < entries.length; i++) { + if (entries[i] === null) continue + + const entry = entries[i] + const entryContextId = getEntryContextId(entry) + const entryTimestamp = getEntryTimestamp(entry) + const entryDeleteKey = getEntryDeleteKey(entry) + + if (contextId === entryContextId) { + deleteKeyForEntry = entryDeleteKey + + if (entryTimestamp === timestamp) { + shouldSave = false + } + + break + } + } + + if (shouldSave) { + let saved = false + + // Entry is the payload plus additional data that isn't directly returned to the session. + const newEntry = [ + ...payload.d, + timestamp, + packages, + contextId, + deleteKeyForEntry + ] + + // Cap expiration to 15 minutes + const expireIn = Math.min(15 * 60 * 1000, payload.x) + const putOptions = { customMetadata: { expireAt: now + expireIn } } + + // First search for an exisitng one + for (let i = 0; i < entries.length; i++) { + if (entries[i] === null) continue + + const entry = entries[i] + + const entryContextId = getEntryContextId(entry) + if (entryContextId !== contextId) continue + + if (saved) { + // Duplicate, weird + context.waitUntil(store.delete(`rooms/${roomId}/entries:${i}`)) + entries[i] = null + } else { + context.waitUntil( + store.put( + `rooms/${roomId}/entries:${i}`, + JSON.stringify(newEntry), + putOptions + ) + ) + entries[i] = newEntry + saved = true + } + } + + // Could not find an existing slot to replace, so look for an empty slot or add to the end. + if (!saved) { + // Look for a null slot + for (let i = 0; i < entries.length; i++) { + if (entries[i] !== null) continue + context.waitUntil( + store.put( + `rooms/${roomId}/entries:${i}`, + JSON.stringify(newEntry), + putOptions + ) + ) + entries[i] = newEntry + saved = true + break + } + + // Otherwise push a new entry + if (!saved) { + entries.push(newEntry) + context.waitUntil( + store.put( + `rooms/${roomId}/entries:${entries.length - 1}`, + JSON.stringify(newEntry), + putOptions + ) + ) + } + } + } + + for (let i = entries.length - 1; i >= 0; i--) { + if (entries[i] === null) continue + + // max index always increases, rely on expiration to lower watermark + if (maxIndex < i) { + context.waitUntil( + store.put(`rooms/${roomId}/max_index`, `${i}`, { + customMetadata: { expireAt: now + 8 * 60 * 60 * 1000 } + }) + ) + break + } + } + } + + // Build the peer payload, list and the packages. + const map = new Map() + const packages = [] + + for (let i = 0; i < entries.length; i++) { + if (entries[i] === null) continue + + const entry = entries[i] + const entryContextId = getEntryContextId(entry) + if (contextId === entryContextId) continue + + const timestamp = getEntryTimestamp(entry) + + // Get the earliest entry for a given context id. + if (!map.has(entryContextId)) { + map.set(entryContextId, entry.slice(0, getEntryPayloadLength(entry))) + } else { + const existing = map.get(entryContextId) + + if (existing[existing.length - 1] < timestamp) { + map.set(entryContextId, entry.slice(0, getEntryPayloadLength(entry))) + } + } + + // Add to the packages due to this session. + if (payload.d) { + const sessionId = payload.d[0] + const entryPackages = getEntryPackages(entry) + + for (let j = 0; j < entryPackages.length; j++) { + // Package was meant for this session + if (entryPackages[j][0] === sessionId) { + packages.push(entryPackages[j]) + } + } + } + } + + const peers = [...map.values()] + const responseData = { ps: peers, pk: packages } + + if (deleteKeyForEntry) { + responseData.dk = deleteKeyForEntry + } + + // Check for vacuum + const nextVacuumEntryValue = await nextVacuumEntry + + if ( + !nextVacuumEntryValue || + now > parseInt(await nextVacuumEntryValue.text()) + ) { + // Add a random delay and re-check to avoid stampede. + context.waitUntil( + new Promise(res => { + setTimeout(async () => { + const now = new Date().getTime() + const nextVacuumEntry = await store.get(`rooms/${roomId}/next_vacuum`) + + if ( + !nextVacuumEntry || + now > parseInt(await nextVacuumEntry.text()) + ) { + let removed = 0 + + // Vacuum + await store.put(`rooms/${roomId}/next_vacuum`, `${now + 30 * 1000}`) // One mintue room vacuum interval + + const list = await store.list({ + include: ['customMetadata'], + prefix: `rooms/${roomId}/` + }) + const removePromises = [] + + for (const { + key, + customMetadata: { expireAt } + } of list.objects) { + if (!expireAt || now < expireAt) continue + removePromises.push(store.delete(key)) + removed++ + + if (removePromises.length >= 5) { + await Promise.all(removePromises) + removePromises.length = 0 + } + } + + await Promise.all(removePromises) + + console.log( + 'Vacuumed room ' + + roomId + + '. Removed ' + + (removed + 1) + + ' keys.' + ) + } + + res() + }, Math.floor(Math.random() * 10 * 1000)) + }) + ) + } + + return new Response(JSON.stringify(responseData), { status: 200, headers }) + } + + async function getResponseIfDisallowed (request, env) { + // No CORS header, so can't do anything + const origin = request.headers.get('origin') + if (!origin) return null + + let originQuota = env.ORIGIN_QUOTA ? parseInt(env.ORIGIN_QUOTA) : 10000 + + if (env.ALLOWED_ORIGINS) { + if (!env.ORIGIN_QUOTA) { + originQuota = 0 + } + + if (env.ALLOWED_ORIGINS.split(',').includes(origin)) { + return null + } + } + + if (originQuota === 0) { + return new Response('Unauthorized', { status: 401 }) + } + + const store = getStore(env) + + const d = new Date() + const currentCountKey = `join-counts/${d.getYear()}-${d.getMonth()}/${encodeURIComponent( + origin + )}` + const currentCountEntry = await store.get(currentCountKey) + + let currentCount = 0 + + if (currentCountEntry) { + currentCount = parseInt(await currentCountEntry.text()) + } + + if (currentCount >= originQuota) { + return new Response('Over quota', { status: 429 }) + } + + // Do 1 out of RATE_LIMITING_SAMPLING_RATE sampling + if (Math.random() < 1.0 / RATE_LIMITING_SAMPLING_RATE) { + await store.put( + currentCountKey, + (currentCount + Math.floor(RATE_LIMITING_SAMPLING_RATE)).toString() + ) + } + } + + export default { + async fetch (request, env, context) { + const disallowedResponse = await getResponseIfDisallowed(request, env) + + if (disallowedResponse) { + return disallowedResponse + } + + if (request.method === 'GET') { + return handleGet(request, env, context) + } + + if (request.method === 'OPTIONS') { + return handleOptions(request, env, context) + } + + if (request.headers.get('content-type') !== 'application/json') + return new Response('Expected content-type application/json', { + status: 400 + }) + + if ( + request.headers.get('x-worker-method') === 'DELETE' || + request.method === 'DELETE' + ) { + return await handleDelete(request, env, context) + } + + if (request.method === 'POST') { + return await handlePost(request, env, context) + } + + return new Response('Method not allowed', { status: 405 }) + } + } + \ No newline at end of file diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index 0a4c388..737da4b 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -59,6 +59,7 @@ threeApp.forEach( ( threeApp ) => { animations={ animations } backgroundColor={ backgroundColor } userData={userData} + postSlug={postSlug} modelsToAdd={ modelsToAdd } imagesToAdd={ imagesToAdd } videosToAdd={ videosToAdd } diff --git a/blocks/three-audio-block/Edit.js b/blocks/three-audio-block/Edit.js index 15609d1..9ace978 100644 --- a/blocks/three-audio-block/Edit.js +++ b/blocks/three-audio-block/Edit.js @@ -48,16 +48,6 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { setAttributes( { rotationZ: rotationZ } ); }; - const onChangeScaleX = ( scaleX ) => { - setAttributes( { scaleX: scaleX } ); - }; - const onChangeScaleY = ( scaleY ) => { - setAttributes( { scaleY: scaleY } ); - }; - const onChangeScaleZ = ( scaleZ ) => { - setAttributes( { scaleZ: scaleZ } ); - }; - const onChangeAutoPlay = ( autoPlaySetting ) => { setAttributes( { autoPlay: autoPlaySetting } ); }; diff --git a/inc/functions.php b/inc/functions.php index 2a28016..228cb8d 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -91,7 +91,9 @@ function threeobjectviewer_frontend_assets() { 'banner' => $current_user->custom_banner, 'vrm' => $vrm, ); - + global $post; + $post_slug = $post->post_name; + $three_object_plugin = plugins_url() . '/three-object-viewer/build/'; // $user_data_passed = array( @@ -110,6 +112,7 @@ function threeobjectviewer_frontend_assets() { wp_register_script( 'versepress-frontend', plugin_dir_url( __FILE__ ) . '../build/assets/js/blocks.frontend-versepress.js', ['wp-element', 'wp-data', 'wp-hooks'], '', true ); wp_localize_script( 'versepress-frontend', 'userData', $user_data_passed ); + wp_localize_script( 'versepress-frontend', 'postSlug', $post_slug ); wp_localize_script( 'versepress-frontend', 'threeObjectPlugin', $three_object_plugin ); wp_enqueue_script( diff --git a/package.json b/package.json index 0cc79ba..a148b32 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,16 @@ "devDependencies": { "@babel/core": "^7", "@testing-library/react": "^12", - "@wordpress/scripts": "^16" + "@wordpress/scripts": "^16", + "airtap": "^4.0.4", + "browserify": "^17.0.0", + "esbuild": "^0.15.5", + "lint-staged": "^13.0.3", + "prettier": "^2.7.1", + "prettier-standard": "^16.4.1", + "standard": "^17.0.0", + "tape": "^5.6.0", + "tinyify": "^3.1.0" }, "dependencies": { "@pixiv/three-vrm": "1.0.0-beta.17", @@ -30,7 +39,13 @@ "@wordpress/components": "^14", "@wordpress/element": "^3", "@wordpress/i18n": "^4", + "array-buffer-to-hex": "^1.0.0", + "base64-arraybuffer": "^1.0.2", + "convert-hex": "^0.1.0", + "events": "^3.3.0", + "get-browser-rtc": "^1.1.0", "three": "^0.137.2", - "three-omi": "^0.1.5" + "three-omi": "^0.1.5", + "tiny-simple-peer": "^10.1.1" } } diff --git a/yarn.lock b/yarn.lock index 8bba3f3..b8ca723 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,15 @@ # yarn lockfile v1 +"@airtap/browserify-istanbul@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@airtap/browserify-istanbul/-/browserify-istanbul-4.0.0.tgz#01ba9d25aad0114341e7cb3e09b3735420f3fbce" + integrity sha512-bZc90B1OJRN1llsvdIgUHTZ2tZhwlG4JdNHoQt8wVaBWhbgs5OB1XalGjN2BqaAtFfftYgRxcO5AN6e7t9HXAg== + dependencies: + istanbul-lib-instrument "^4.0.0" + minimatch "^3.0.4" + through2 "^3.0.1" + "@ampproject/remapping@^2.1.0": version "2.1.2" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" @@ -9,6 +18,13 @@ dependencies: "@jridgewell/trace-mapping" "^0.3.0" +"@angular/compiler@8.2.14": + version "8.2.14" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-8.2.14.tgz#46db7a9d1c17f236126518ff26480c160d5a6183" + integrity sha512-ABZO4E7eeFA1QyJ2trDezxeQM5ZFa1dXw1Mpl/+1vuXDKNjJgNyWYwKp/NwRkLmrsuV0yv4UDCDe4kJOGbPKnw== + dependencies: + tslib "^1.9.0" + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -16,6 +32,13 @@ dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" @@ -242,6 +265,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + "@babel/helper-validator-option@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" @@ -275,6 +303,20 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.8.3": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@7.9.4": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" @@ -988,6 +1030,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.8.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -1192,6 +1241,11 @@ esquery "^1.4.0" jsdoc-type-pratt-parser "1.1.1" +"@esbuild/linux-loong64@0.15.5": + version "0.15.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz#91aef76d332cdc7c8942b600fa2307f3387e6f82" + integrity sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A== + "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" @@ -1207,11 +1261,65 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@eslint/eslintrc@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" + integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.3.2" + globals "^13.15.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + "@gar/promisify@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== +"@glimmer/interfaces@^0.41.4": + version "0.41.4" + resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.41.4.tgz#3f3e26abea8a4e1463130e9a75e94372781d154b" + integrity sha512-MzXwMyod3MlwSZezHSaVBsCEIW/giYYfTDYARR46QnYsaFVatMVbydjsI7jkAuBCbnLCyNOIc1TrYIj71i/rpg== + +"@glimmer/syntax@0.41.4": + version "0.41.4" + resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.41.4.tgz#9c0c763aab44069c828ce782947c84d31ff75879" + integrity sha512-NLPNirZDbNmpZ8T/ccle22zt2rhUq5il7ST6IJk62T58QZeJsdr3m3RS4kaGSBsQhXoKELrgX048yYEX5sC+fw== + dependencies: + "@glimmer/interfaces" "^0.41.4" + "@glimmer/util" "^0.41.4" + handlebars "^4.0.13" + simple-html-tokenizer "^0.5.7" + +"@glimmer/util@^0.41.4": + version "0.41.4" + resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.41.4.tgz#508fd82ca40305416e130f0da7b537295ded7989" + integrity sha512-DwS94K+M0vtG+cymxH0rslJr09qpdjyOLdCjmpKcG/nNiZQfMA1ybAaFEmwk9UaVlUG9STENFeQwyrLevJB+7g== + +"@goto-bus-stop/common-shake@^2.3.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@goto-bus-stop/common-shake/-/common-shake-2.4.0.tgz#7b29b093ed10d4075c061bf48905c02eb75d643c" + integrity sha512-LO+7v+UbxE3IyAS4Suf/KYB7Zq9DEIHibwDe6Wph4apNEfDyyxP7BSxzRS/Qa9lUH5gsm9eL9nF8EE1E0/nQkQ== + dependencies: + acorn-walk "^7.0.0" + debug "^3.2.6" + escope "^3.6.0" + +"@goto-bus-stop/envify@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@goto-bus-stop/envify/-/envify-5.0.0.tgz#db7db712f00901d9f71f852ed13dbb3db0909b1a" + integrity sha512-xAnxuDWmwQxO8CgVuPTxKuNsKDfwyXXTyAabG4sNoK59H/ZMC7BHxTA/4ehtinsxbcH7/9L65F5VhyNdQfUyqA== + dependencies: + acorn-node "^2.0.1" + dash-ast "^2.0.1" + multisplice "^1.0.0" + through2 "^2.0.5" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -1244,6 +1352,15 @@ dependencies: "@hapi/hoek" "^8.3.0" +"@humanwhocodes/config-array@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -1253,11 +1370,21 @@ debug "^4.1.1" minimatch "^3.0.4" -"@humanwhocodes/object-schema@^1.2.0": +"@humanwhocodes/gitignore-to-minimatch@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + +"@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@iarna/toml@2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab" + integrity sha512-FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -1697,6 +1824,13 @@ react-merge-refs "^1.1.0" three-stdlib "^2.8.6" +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + dependencies: + any-observable "^0.3.0" + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -1711,6 +1845,11 @@ dependencies: "@sinonjs/commons" "^1.7.0" +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== + "@stylelint/postcss-css-in-js@^0.37.2": version "0.37.2" resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" @@ -1927,6 +2066,16 @@ dependencies: "@types/node" "*" +"@types/cookie@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== + +"@types/cors@^2.8.12": + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + "@types/glob@^7.1.1": version "7.2.0" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" @@ -2008,6 +2157,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.24.tgz#20ba1bf69c1b4ab405c7a01e950c4f446b05029f" integrity sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g== +"@types/node@>=10.0.0": + version "18.7.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.9.tgz#180bfc495c91dc62573967edf047e15dbdce1491" + integrity sha512-0N5Y1XAdcl865nDdjbO0m3T6FdmQ4ijE89/urOHLREyTXbpMWbSafx9y7XIsgWGtwUP2iYTinLyyW3FatAxBLQ== + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -2202,6 +2356,18 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== +"@typescript-eslint/typescript-estree@2.6.1": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.1.tgz#fb363dd4ca23384745c5ea4b7f4c867432b00d31" + integrity sha512-+sTnssW6bcbDZKE8Ce7VV6LdzkQz2Bxk7jzk1J8H1rovoTxnm6iXvYIyncvNsaB/kBCOM63j/LNJfm27bNdUoA== + dependencies: + debug "^4.1.1" + glob "^7.1.4" + is-glob "^4.0.1" + lodash.unescape "4.0.1" + semver "^6.3.0" + tsutils "^3.17.1" + "@typescript-eslint/typescript-estree@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" @@ -3078,11 +3244,36 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +JSONStream@^1.0.3, JSONStream@^1.3.2: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abab@^2.0.3, abab@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== +abstract-browser@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/abstract-browser/-/abstract-browser-1.0.0.tgz#5ea71a937547c88f250b3103b7cbb9163c329016" + integrity sha512-CJC6Wzow4cSFLsKhZJj0EGi3+023xmoRpW1FeNF9ErPwixkJTSO70Op/i6L120I6W36xm9GrXm4yquLNAywrEw== + dependencies: + browser-manifest "^1.0.0" + catering "^2.0.0" + nanoresource "^1.3.0" + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + acorn-globals@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" @@ -3091,12 +3282,30 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-jsx@^5.3.1: +acorn-jsx@^5.2.0, acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.1.1: +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-node@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-2.0.1.tgz#4a93ba32335950da9250175c654721f20f3375a7" + integrity sha512-VLR5sHqjk+8c5hrKeP2fWaIHb8eewsoxnZ8r2qpwRHXMHuC7KyOPflnOx9dLssVQUurzJ7rO0OzIFjHcndafWw== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0, acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== @@ -3106,12 +3315,17 @@ acorn-walk@^8.0.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +acorn@^5.1.0: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + acorn@^6.4.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== @@ -3121,6 +3335,11 @@ acorn@^8.0.4, acorn@^8.2.4: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -3151,6 +3370,73 @@ airbnb-prop-types@^2.10.0, airbnb-prop-types@^2.15.0, airbnb-prop-types@^2.16.0: prop-types-exact "^1.2.0" react-is "^16.13.1" +airtap-default@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/airtap-default/-/airtap-default-1.0.0.tgz#2dbfec471020cf2152c77b3381d447436cc247aa" + integrity sha512-57/mkOCfxNZHtbsQ0jsH7g5K1JlOV+rwytJulF6HOdc0lXiHiaksndYagRmbs1GuhCtn3/GIF9A8eTePEWPnUg== + dependencies: + abstract-browser "^1.0.0" + browser-provider "^1.1.0" + open "^7.1.0" + +airtap-match-browsers@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/airtap-match-browsers/-/airtap-match-browsers-1.1.1.tgz#2bded2f72902eaadf5de1e6998e948140249aaf6" + integrity sha512-bscZpmugpAo2v0Gg2NmlP9kFbHnQKTqYKFOWXYcdc2eo2k6MLVxaE2K08BLeO+wp3ctOt0reK/5y6BOLWWXfMg== + dependencies: + browser-names "^1.0.1" + deep-dot "0.0.2" + deep-equal "^2.0.1" + is-fork-pr "^2.5.0" + merge-deep "^3.0.2" + +airtap-multi@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/airtap-multi/-/airtap-multi-1.0.0.tgz#2850dc3f8b3e4a2b34aeeca79e95ac06ef6065ed" + integrity sha512-VD2oXTzre8W03goLO9Sd8YmtVD5GFYIVtqBLfGjiR83b2aWL/GT0ZmDShHLLBe4ehQtt014yhvwg9X6WFMZdDg== + dependencies: + browser-provider "^1.1.0" + debug "^4.1.1" + merge-deep "^3.0.2" + run-parallel-settled "^1.0.0" + +airtap@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/airtap/-/airtap-4.0.4.tgz#52bb095ea4890fe290ed7c641f2fd88b1b29dfe8" + integrity sha512-sWrWdmPYWYWqMLKcS6vUdlpZCutvzn9ephGkEXnxd3tSYcYtY1nEwF6FsOWDLEOO0IGin/Y5kkwZ90+JKxeWxg== + dependencies: + "@airtap/browserify-istanbul" "^4.0.0" + airtap-default "^1.0.0" + airtap-multi "^1.0.0" + browserify "^16.5.2" + bruce-millis-option "^1.0.0" + compression "^1.7.1" + debug "^4.1.0" + engine.io "^6.1.0" + engine.io-client "^6.1.1" + express "^4.17.0" + find-nearest-file "^1.1.0" + globs-to-files "^1.0.0" + http-proxy "^1.18.1" + humanize-duration "^3.23.1" + js-yaml "^4.0.0" + load-script "^2.0.0" + make-promises-safe "^5.1.0" + maybe-combine-errors "^1.0.0" + minimist "^1.2.5" + nanoresource "^1.3.0" + nanoresource-collection "^1.0.0" + on-stream-close "^1.0.0" + readable-stream "^3.6.0" + run-parallel-settled "^1.0.1" + server-destroy "^1.0.1" + shell-quote "^1.7.0" + tap-completed "^1.0.0" + thunky-with-args "^1.0.0" + transient-error "^1.0.0" + uuid "^8.3.0" + watchify "^4.0.0" + ajv-errors@^1.0.0, ajv-errors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -3181,18 +3467,53 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + +angular-estree-parser@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/angular-estree-parser/-/angular-estree-parser-1.3.1.tgz#5b590c3ef431fccb512755eea563029f84c043ee" + integrity sha512-jvlnNk4aoEmA6EKK12OnsOkCSdsWleBsYB+aWyH8kpfTB6Li1kxWVbHKVldH9zDCwVVi1hXfqPi/gbSv49tkbQ== + dependencies: + lines-and-columns "^1.1.6" + tslib "^1.9.3" + +angular-html-parser@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/angular-html-parser/-/angular-html-parser-1.4.0.tgz#4080989e46cad183264f950fb475590888d31104" + integrity sha512-5KyzzYOeZV9g9ahXw4rbi8IIbMjUdXoarXJ0CfbWue5U1YsvMnjMZJ3oadpU8ZtnIx1zR/dsyt+FLJx2U65d2Q== + dependencies: + tslib "^1.9.3" + ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^4.2.1: +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + ansi-regex@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" @@ -3203,6 +3524,16 @@ ansi-regex@^5.0.0, ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -3222,6 +3553,16 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" + integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -3230,7 +3571,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.0, anymatch@^3.0.3, anymatch@^3.1.1, anymatch@~3.1.2: +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@^3.1.0, anymatch@^3.1.1, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -3250,6 +3591,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + aria-query@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" @@ -3278,6 +3624,26 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-buffer-to-hex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-to-hex/-/array-buffer-to-hex-1.0.0.tgz#9c76e53010ef7bf7bf8a27ebbb41d24e1d83edf4" + integrity sha512-arycdkxgK1cj6s03GDb96tlCxOl1n3kg9M2OHseUc6Pqyqp+lgfceFPmG507eI5V+oxOSEnlOw/dFc7LXBXF4Q== + +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-from@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== + array-includes@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" @@ -3289,7 +3655,18 @@ array-includes@^3.1.4: get-intrinsic "^1.1.1" is-string "^1.0.7" -array-union@^1.0.1: +array-includes@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" + integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + get-intrinsic "^1.1.1" + is-string "^1.0.7" + +array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= @@ -3301,7 +3678,7 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^1.0.1: +array-uniq@^1.0.1, array-uniq@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= @@ -3311,6 +3688,16 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.every@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.3.tgz#31f01b48e1160bc4b49ecab246bf7f765c6686f9" + integrity sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + is-string "^1.0.7" + array.prototype.filter@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.1.tgz#20688792acdb97a09488eaaee9eebbf3966aae21" @@ -3342,7 +3729,7 @@ array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3, array.prototype.flat@^ es-abstract "^1.19.2" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.2.5: +array.prototype.flatmap@^1.2.5, array.prototype.flatmap@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== @@ -3379,7 +3766,7 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.1.1: +assert@^1.1.1, assert@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== @@ -3397,6 +3784,11 @@ ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" @@ -3419,6 +3811,13 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +asyncreduce@~0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/asyncreduce/-/asyncreduce-0.1.4.tgz#18210e01978bfdcba043955497a5cd315c0a6a41" + integrity sha512-9q50+pYllC5Xg2BQCJBYvHpc5InGixioeLPxaKvUg3lFwItSbxbEpClPX7+GjXT3RFQk64ThvyGTdFs9ftb/hg== + dependencies: + runnel "~0.5.0" + atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -3454,6 +3853,11 @@ autosize@^4.0.2: resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.4.tgz#924f13853a466b633b9309330833936d8bccce03" integrity sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -3600,11 +4004,21 @@ balanced-match@^2.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -3678,6 +4092,24 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + body-scroll-lock@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" @@ -3739,11 +4171,84 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-manifest@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-manifest/-/browser-manifest-1.0.0.tgz#fbf58bb517f687203d8e541c7fcc9292ccce1293" + integrity sha512-+XZt3+6aTlqzI7OWYz4IPx8a2Ogxnl65AA5rTQvPYdB6YO1SLDQLqWJ4TR2QoAwyb29w78vU6trpqX5+9RoXXg== + +browser-names@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/browser-names/-/browser-names-1.1.0.tgz#9bbfcb326b08b8c909bc1c8fd98077299d4600a4" + integrity sha512-ytPHDpg38klSYRfsrvpU9IglWptXoLHWLrXGUuF3p+HqnowPciDAVcmldvey8B+EjP0eC2Mvwnk6sZxRt9PhMQ== + +browser-pack-flat@^3.0.9: + version "3.5.0" + resolved "https://registry.yarnpkg.com/browser-pack-flat/-/browser-pack-flat-3.5.0.tgz#8c3cc15ef9b444c8c40d6240e8eb7c3c90970484" + integrity sha512-u3iJUjs+TC/NGIL2GLyIcn5ppoNZXhTWqSW/gQbGIGvQiXXCQQzr5VWfACFraXQn2JrDlyRnKLeOs5AWXzKI6A== + dependencies: + JSONStream "^1.3.2" + combine-source-map "^0.8.0" + convert-source-map "^1.5.1" + count-lines "^0.1.2" + dedent "^0.7.0" + estree-is-member-expression "^1.0.0" + estree-is-require "^1.0.0" + esutils "^2.0.2" + path-parse "^1.0.5" + scope-analyzer "^2.0.0" + stream-combiner "^0.2.2" + through2 "^3.0.1" + transform-ast "^2.4.2" + umd "^3.0.3" + wrap-comment "^1.0.0" + +browser-pack@^6.0.1, browser-pack@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.8.0" + defined "^1.0.0" + safe-buffer "^5.1.1" + through2 "^2.0.0" + umd "^3.0.0" + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== +browser-provider@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browser-provider/-/browser-provider-1.2.0.tgz#338382e5e3196a2a8d9510f6fc3df3427497908b" + integrity sha512-8ixthQVQxgDyVt3tMzbbaonsjq+eDDS9opxCE+b7EzaqbgD9LVMunmijCm3/rmKFC7JLeHY0d2o0hsH98G1tKw== + dependencies: + airtap-match-browsers "^1.0.0" + browser-manifest "^1.0.0" + catering "^2.0.0" + +browser-resolve@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" + integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== + dependencies: + resolve "^1.17.0" + +browser-unpack@^1.1.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/browser-unpack/-/browser-unpack-1.4.2.tgz#7a708774dc7448df1c24a735d65d409708b95ce2" + integrity sha512-uHkiY4bmXjjBBWoKH1aRnEGTQxUUCCcVtoJfH9w1lmGGjETY4u93Zk+GRYkCE/SRMrdoMTINQ/1/manr/3aMVA== + dependencies: + acorn-node "^1.5.2" + concat-stream "^1.5.0" + minimist "^1.1.1" + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -3798,13 +4303,121 @@ browserify-sign@^4.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -browserify-zlib@^0.2.0: +browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" +browserify@^16.5.2: + version "16.5.2" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.2.tgz#d926835e9280fa5fd57f5bc301f2ef24a972ddfe" + integrity sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^2.0.0" + browserify-zlib "~0.2.0" + buffer "~5.2.1" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^2.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + mkdirp-classic "^0.5.2" + module-deps "^6.2.3" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^3.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.10.1" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +browserify@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-17.0.0.tgz#4c48fed6c02bfa2b51fd3b670fddb805723cdc22" + integrity sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^2.0.0" + browserify-zlib "~0.2.0" + buffer "~5.2.1" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.1" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^3.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.2.1" + labeled-stream-splicer "^2.0.0" + mkdirp-classic "^0.5.2" + module-deps "^6.2.3" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "^1.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum-object "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^3.0.0" + stream-http "^3.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.12.0" + vm-browserify "^1.0.0" + xtend "^4.0.0" + browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6, browserslist@^4.20.2: version "4.20.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" @@ -3816,6 +4429,18 @@ browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6, browserslist@^ node-releases "^2.0.2" picocolors "^1.0.0" +bruce-millis-option@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bruce-millis-option/-/bruce-millis-option-1.0.0.tgz#d2247d576d7593d5644853c08244934283dc6300" + integrity sha512-CJOBham7dfRAU97F7vmGEmNXcSkK0GlDV+0QqsaVUu7cH/LO4I/y80j1GWX7MasKJMo6zQU2oCuTRl/ko2kyQA== + dependencies: + bruce-millis "^1.0.0" + +bruce-millis@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bruce-millis/-/bruce-millis-1.0.0.tgz#78c7cb499283fb7feb5ef1432fc3a11e4b4ce469" + integrity sha512-fUdlIysbXdH8xLNLfNHzcmJOEaJ845eVrmi1VuTCHOEB4tVdQeJ+xh+dkShiYwkntCdCbUyWk1t/R4V4fRhoqw== + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -3855,16 +4480,53 @@ buffer@^5.2.1, buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@~5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +builtins@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +bundle-collapser@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/bundle-collapser/-/bundle-collapser-1.4.0.tgz#c6e5c1104e91865b5158e91053b38788f50aa1d7" + integrity sha512-Gd3K3+3KI1Utuk+gwAvuOVOjT/2XLGL8tU6FwDKk04LlOZkYfT0pwQllsG1Dv8RRhgcjNxZSDmmSXb0AOkwSwg== + dependencies: + browser-pack "^6.0.2" + browser-unpack "^1.1.0" + concat-stream "^1.5.0" + falafel "^2.1.0" + minimist "^1.1.1" + through2 "^2.0.0" + bytes@1: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + cacache@^12.0.2: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" @@ -3925,6 +4587,11 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" + integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -3933,6 +4600,34 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-matcher@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-2.0.0.tgz#a38bee4e9ddbeec76aa31cc20311085a34dd395b" + integrity sha512-CIDC5wZZfZ2VjZu849WQckS58Z3pJXFfRaSjNjgo/q3in5zxkhTwVL83vttgtmvyLG7TuDlLlBya7SKP6CjDIA== + dependencies: + deep-equal "^1.0.0" + espurify "^2.0.0" + estraverse "^4.0.0" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3947,7 +4642,7 @@ camelcase-keys@^6.2.2: map-obj "^4.0.0" quick-lru "^4.0.1" -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -3974,16 +4669,12 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" +catering@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== -chalk@^3.0.0: +chalk@3.0.0, chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== @@ -3991,6 +4682,26 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -4019,6 +4730,11 @@ character-reference-invalid@^1.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + check-node-version@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/check-node-version/-/check-node-version-4.2.1.tgz#42f7e3c6e2427327b5c9080dae593d8997fe9a06" @@ -4067,7 +4783,7 @@ chevrotain@^10.1.2: lodash "4.17.21" regexp-to-ast "0.5.0" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.4.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -4129,6 +4845,14 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjk-regex@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cjk-regex/-/cjk-regex-2.0.0.tgz#060aa111e61092768c438ccc9c643a53e8fe1ee5" + integrity sha512-E4gFi2f3jC0zFVHpaAcupW+gv9OejZ2aV3DP/LlSO0dDcZJAXw7W0ivn+vN17edN/PhU4HCgs1bfx7lPK7FpdA== + dependencies: + regexp-util "^1.2.1" + unicode-regex "^2.0.0" + cjs-module-lexer@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" @@ -4162,6 +4886,49 @@ clean-webpack-plugin@^3.0.0: "@types/webpack" "^4.4.31" del "^4.1.1" +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + clipboard@^2.0.1, clipboard@^2.0.8: version "2.0.10" resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.10.tgz#e61f6f7139ac5044c58c0484dcac9fb2a918bfd6" @@ -4221,6 +4988,11 @@ coa@^2.0.2: chalk "^2.4.1" q "^1.1.2" +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + collapse-white-space@^1.0.2: version "1.0.6" resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" @@ -4263,6 +5035,21 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^2.0.16, colorette@^2.0.17: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg== + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -4290,6 +5077,11 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^9.3.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" + integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== + commander@~2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" @@ -4302,6 +5094,17 @@ comment-parser@1.2.4: resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.2.4.tgz#489f3ee55dfd184a6e4bffb31baba284453cb760" integrity sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw== +common-shakeify@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/common-shakeify/-/common-shakeify-1.1.1.tgz#b8ceff048db5dbfa7704ce83f0c993f560c73fa3" + integrity sha512-M9hTU14RkpKvNggSU4zJIzgm89inwjnhipxvKxCNms/gM77R7keRqOqGYIM/Jr4BBhtbZB8ZF//raYqAbHk/DA== + dependencies: + "@goto-bus-stop/common-shake" "^2.3.0" + convert-source-map "^1.5.1" + through2 "^2.0.3" + transform-ast "^2.4.3" + wrap-comment "^1.0.1" + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -4312,6 +5115,26 @@ component-emitter@^1.2.1: resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.1: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + compute-scroll-into-view@^1.0.17: version "1.0.17" resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" @@ -4327,7 +5150,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0: +concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -4337,6 +5160,16 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -4347,23 +5180,60 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/consolidated-events/-/consolidated-events-2.0.2.tgz#da8d8f8c2b232831413d9e190dc11669c79f4a91" integrity sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ== -constants-browserify@^1.0.0: +constants-browserify@^1.0.0, constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + continuable-cache@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= -convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-hex@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" + integrity sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A== + +convert-source-map@^1.1.1, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookie@~0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -4414,6 +5284,24 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@5.2.1, cosmiconfig@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -4436,6 +5324,11 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" +count-lines@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/count-lines/-/count-lines-0.1.2.tgz#e33493fb6860a82f7159d8237843fbfaefee5962" + integrity sha512-YS8P4UYXX/hrDyLU3r/A5OcCNwdNbJFJckbe8j+x2Jhxsr2J4/rYl0sDwOljLZL7Uxc4s7mRSNcQD8dSjobz+g== + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -4487,7 +5380,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4496,7 +5389,7 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@^3.11.0: +crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== @@ -4633,11 +5526,29 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + damerau-levenshtein@^1.0.7: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== +dash-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== + +dash-ast@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-2.0.1.tgz#8d0fd2e601c59bf874cc22877ee7dd889f54dee8" + integrity sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ== + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -4645,6 +5556,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +dashify@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dashify/-/dashify-2.0.0.tgz#fff270ca2868ca427fee571de35691d6e437a648" + integrity sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -4654,26 +5570,31 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + debounce@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.7: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -4703,11 +5624,49 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -dedent@^0.7.0: +dedent@0.7.0, dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +deep-dot@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/deep-dot/-/deep-dot-0.0.2.tgz#d7488c8777440032ebb9c6b8e9773c4135bc3ffa" + integrity sha512-SB8QWQ0wL8poi7ddhKaXijYbHYQYuv4lPvQGxOIwVDYu5G0OjUSTkvjPB1H9AGW0rOf49XHKWOtFnBTJtmHbvQ== + +deep-equal@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-equal@^2.0.1, deep-equal@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" + integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== + dependencies: + call-bind "^1.0.0" + es-get-iterator "^1.1.1" + get-intrinsic "^1.0.1" + is-arguments "^1.0.4" + is-date-object "^1.0.2" + is-regex "^1.1.1" + isarray "^2.0.5" + object-is "^1.1.4" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.3" + which-boxed-primitive "^1.0.1" + which-collection "^1.0.1" + which-typed-array "^1.1.2" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -4733,7 +5692,7 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== @@ -4763,6 +5722,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== + del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -4776,6 +5740,20 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" +del@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" + integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== + dependencies: + globby "^10.0.1" + graceful-fs "^4.2.2" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.1" + p-map "^3.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -4786,6 +5764,21 @@ delegate@^3.1.2: resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +deps-sort@^2.0.0, deps-sort@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" + integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== + dependencies: + JSONStream "^1.0.3" + shasum-object "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -4794,6 +5787,11 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" @@ -4811,6 +5809,15 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== +detective@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" + integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== + dependencies: + acorn-node "^1.8.2" + defined "^1.0.0" + minimist "^1.2.6" + devtools-protocol@0.0.869402: version "0.0.869402" resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.869402.tgz#03ade701761742e43ae4de5dc188bcd80f156d8d" @@ -4821,7 +5828,7 @@ diff-sequences@^26.6.2: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff@^4.0.2: +diff@4.0.2, diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== @@ -4900,7 +5907,7 @@ dom-serializer@^1.0.1, dom-serializer@^1.3.2: domhandler "^4.2.0" entities "^2.0.0" -domain-browser@^1.1.1: +domain-browser@^1.1.1, domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== @@ -4953,6 +5960,13 @@ domutils@^2.5.2, domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + downshift@^6.0.15: version "6.1.7" resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.7.tgz#fdb4c4e4f1d11587985cd76e21e8b4b3fa72e44c" @@ -4969,7 +5983,14 @@ draco3d@^1.4.1: resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.5.2.tgz#a09604a9e6bbf4e5a69208af4622038c55ef4ca7" integrity sha512-AeRQ25Fb29c14vpjnh167UGW0nGY0ZpEM3ld+zEXoEySlmEXcXfsCHZeTgo5qXH925V1JsdjrzasdaQ22/vXog== -duplexer@^0.1.2: +duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== + dependencies: + readable-stream "^2.0.2" + +duplexer@^0.1.2, duplexer@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== @@ -4984,6 +6005,21 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +duplexify@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -4992,11 +6028,36 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +editorconfig-to-prettier@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/editorconfig-to-prettier/-/editorconfig-to-prettier-0.1.1.tgz#7391c7067dfd68ffee65afc2c4fbe4fba8d4219a" + integrity sha512-MMadSSVRDb4uKdxV6bCXXN4cTsxIsXYtV4XdPu6FOCSAw6zsCIDA+QEktEU+u6h+c/mTrul5NR+pwFpPxwetiQ== + +editorconfig@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + electron-to-chromium@^1.4.84: version "1.4.111" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.111.tgz#897613f6504f3f17c9381c7499a635b413e4df4e" integrity sha512-/s3+fwhKf1YK4k7btOImOzCQLpUjS6MaPf0ODTNuT4eTM1Bg4itBpLkydhOzJmpmH6Z9eXFyuuK5czsmzRzwtw== +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== + elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -5035,6 +6096,11 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + encoding@^0.1.12: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -5049,6 +6115,38 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +engine.io-client@^6.1.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" + integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.0.3" + ws "~8.2.3" + xmlhttprequest-ssl "~2.0.0" + +engine.io-parser@~5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" + integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== + +engine.io@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" + integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== + dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~5.0.3" + ws "~8.2.3" + enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" @@ -5130,6 +6228,11 @@ equivalent-key-map@^0.2.2: resolved "https://registry.yarnpkg.com/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz#be4d57049bb8d46a81d6e256c1628465620c2a13" integrity sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew== +err-code@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" + integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== + errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -5177,11 +6280,54 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19 string.prototype.trimstart "^1.0.4" unbox-primitive "^1.0.1" +es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + es-array-method-boxes-properly@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== +es-get-iterator@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + es-shim-unscopables@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" @@ -5198,26 +6344,230 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@~0.10.14: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3, es6-map@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A== + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@^0.1.5, es6-set@~0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8" + integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + es6-iterator "~2.0.3" + es6-symbol "^3.1.3" + event-emitter "^0.3.5" + type "^2.7.2" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +esbuild-android-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz#3c7b2f2a59017dab3f2c0356188a8dd9cbdc91c8" + integrity sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg== + +esbuild-android-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz#e301db818c5a67b786bf3bb7320e414ac0fcf193" + integrity sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg== + +esbuild-darwin-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz#11726de5d0bf5960b92421ef433e35871c091f8d" + integrity sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ== + +esbuild-darwin-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz#ad89dafebb3613fd374f5a245bb0ce4132413997" + integrity sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg== + +esbuild-freebsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz#6bfb52b4a0d29c965aa833e04126e95173289c8a" + integrity sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA== + +esbuild-freebsd-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz#38a3fed8c6398072f9914856c7c3e3444f9ef4dd" + integrity sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w== + +esbuild-linux-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz#942dc70127f0c0a7ea91111baf2806e61fc81b32" + integrity sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ== + +esbuild-linux-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz#6d748564492d5daaa7e62420862c31ac3a44aed9" + integrity sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg== + +esbuild-linux-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz#28cd899beb2d2b0a3870fd44f4526835089a318d" + integrity sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA== + +esbuild-linux-arm@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz#6441c256225564d8794fdef5b0a69bc1a43051b5" + integrity sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q== + +esbuild-linux-mips64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz#d4927f817290eaffc062446896b2a553f0e11981" + integrity sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ== + +esbuild-linux-ppc64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz#b6d660dc6d5295f89ac51c675f1a2f639e2fb474" + integrity sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw== + +esbuild-linux-riscv64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz#2801bf18414dc3d3ad58d1ea83084f00d9d84896" + integrity sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA== + +esbuild-linux-s390x@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz#12a634ae6d3384cacc2b8f4201047deafe596eae" + integrity sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ== + +esbuild-netbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz#951bbf87600512dfcfbe3b8d9d117d684d26c1b8" + integrity sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w== + +esbuild-openbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz#26705b61961d525d79a772232e8b8f211fdbb035" + integrity sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA== + +esbuild-sunos-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz#d794da1ae60e6e2f6194c44d7b3c66bf66c7a141" + integrity sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA== + +esbuild-windows-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz#0670326903f421424be86bc03b7f7b3ff86a9db7" + integrity sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg== + +esbuild-windows-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz#64f32acb7341f3f0a4d10e8ff1998c2d1ebfc0a9" + integrity sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw== + +esbuild-windows-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz#4fe7f333ce22a922906b10233c62171673a3854b" + integrity sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA== + +esbuild@^0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.5.tgz#5effd05666f621d4ff2fe2c76a67c198292193ff" + integrity sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg== + optionalDependencies: + "@esbuild/linux-loong64" "0.15.5" + esbuild-android-64 "0.15.5" + esbuild-android-arm64 "0.15.5" + esbuild-darwin-64 "0.15.5" + esbuild-darwin-arm64 "0.15.5" + esbuild-freebsd-64 "0.15.5" + esbuild-freebsd-arm64 "0.15.5" + esbuild-linux-32 "0.15.5" + esbuild-linux-64 "0.15.5" + esbuild-linux-arm "0.15.5" + esbuild-linux-arm64 "0.15.5" + esbuild-linux-mips64le "0.15.5" + esbuild-linux-ppc64le "0.15.5" + esbuild-linux-riscv64 "0.15.5" + esbuild-linux-s390x "0.15.5" + esbuild-netbsd-64 "0.15.5" + esbuild-openbsd-64 "0.15.5" + esbuild-sunos-64 "0.15.5" + esbuild-windows-32 "0.15.5" + esbuild-windows-64 "0.15.5" + esbuild-windows-arm64 "0.15.5" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^2.0.0: +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escodegen@^1.6.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -5230,11 +6580,31 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + integrity sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ== + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + eslint-config-prettier@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9" integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== +eslint-config-standard-jsx@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz#70852d395731a96704a592be5b0bfaccfeded239" + integrity sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ== + +eslint-config-standard@17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" + integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== + eslint-import-resolver-node@^0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" @@ -5251,7 +6621,15 @@ eslint-module-utils@^2.7.3: debug "^3.2.7" find-up "^2.1.0" -eslint-plugin-import@^2.25.2: +eslint-plugin-es@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" + integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.26.0: version "2.26.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== @@ -5319,6 +6697,20 @@ eslint-plugin-markdown@^1.0.2: remark-parse "^5.0.0" unified "^6.1.2" +eslint-plugin-n@^15.1.0: + version "15.2.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.2.4.tgz#d62021a0821ae650701ed459756aaf478a9b6056" + integrity sha512-tjnVMv2fiXYMnuiIFI8QMtyUFI42SckEEWvi8h68SWGWshfqO6SSCASy24dGMGAiy7NUk6DZt90DM0iNUsmQ5w== + dependencies: + builtins "^5.0.1" + eslint-plugin-es "^4.1.0" + eslint-utils "^3.0.0" + ignore "^5.1.1" + is-core-module "^2.9.0" + minimatch "^3.1.2" + resolve "^1.10.1" + semver "^7.3.7" + eslint-plugin-prettier@^3.3.0: version "3.4.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" @@ -5326,6 +6718,11 @@ eslint-plugin-prettier@^3.3.0: dependencies: prettier-linter-helpers "^1.0.0" +eslint-plugin-promise@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz#017652c07c9816413a41e11c30adc42c3d55ff18" + integrity sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw== + eslint-plugin-react-hooks@^4.2.0: version "4.4.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz#71c39e528764c848d8253e1aa2c7024ed505f6c4" @@ -5351,6 +6748,26 @@ eslint-plugin-react@^7.22.0: semver "^6.3.0" string.prototype.matchall "^4.0.6" +eslint-plugin-react@^7.28.0: + version "7.30.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22" + integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg== + dependencies: + array-includes "^3.1.5" + array.prototype.flatmap "^1.3.0" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.1" + object.values "^1.1.5" + prop-types "^15.8.1" + resolve "^2.0.0-next.3" + semver "^6.3.0" + string.prototype.matchall "^4.0.7" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -5359,7 +6776,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.1.1: +eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5367,7 +6784,22 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.1.0: +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== @@ -5391,6 +6823,54 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + eslint@^7.17.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" @@ -5437,6 +6917,60 @@ eslint@^7.17.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" +eslint@^8.13.0: + version "8.22.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" + integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== + dependencies: + "@eslint/eslintrc" "^1.3.0" + "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.3" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^6.0.1" + globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + espree@^7.3.0, espree@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" @@ -5446,12 +6980,26 @@ espree@^7.3.0, espree@^7.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" +espree@^9.3.2, espree@^9.3.3: + version "9.3.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" + integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: +espurify@^2.0.0, espurify@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-2.1.1.tgz#afb043f22fac908d991dd25f7bf40bcf03935b9c" + integrity sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ== + +esquery@^1.0.1, esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== @@ -5465,7 +7013,7 @@ esrecurse@^4.1.0, esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -5475,12 +7023,62 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -esutils@^2.0.2: +estree-is-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-function/-/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" + integrity sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA== + +estree-is-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-identifier/-/estree-is-identifier-1.0.0.tgz#50433fa88d3d00a1bf7a1d7df6e4e67f36aa89f7" + integrity sha512-2BDRGrkQJV/NhCAmmE33A35WAaxq3WQaGHgQuD//7orGWfpFqj8Srkwvx0TH+20yIdOF1yMQwi8anv5ISec2AQ== + +estree-is-member-expression@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-member-expression/-/estree-is-member-expression-1.0.0.tgz#e724721e0a14949d363915fd71448eaa6312f590" + integrity sha512-Ec+X44CapIGExvSZN+pGkmr5p7HwUVQoPQSd458Lqwvaf4/61k/invHSh4BYK8OXnCkfEhWuIoG5hayKLQStIg== + +estree-is-require@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-require/-/estree-is-require-1.0.0.tgz#fce2c6126d141d1f9316e8c07799d7f0a55bb69b" + integrity sha512-oWxQdSEmnUwNZsDQYiBNpVxKEhMmsJQSSxnDrwsr1MWtooCLfhgzsNGzmokdmfK0EzEIS5V4LPvqxv1Kmb1vvA== + dependencies: + estree-is-identifier "^1.0.0" + +esutils@2.0.3, esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@^3.0.0: +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5, event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events-to-array@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" + integrity sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA== + +events@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== + +events@^3.0.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -5511,6 +7109,21 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^2.0.3, execa@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + execa@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -5526,6 +7139,21 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + execall@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" @@ -5582,6 +7210,50 @@ expect@^26.6.2: jest-message-util "^26.6.2" jest-regex-util "^26.0.0" +express@^4.17.0: + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" + integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + dependencies: + type "^2.5.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -5602,6 +7274,15 @@ extend@^3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -5637,6 +7318,14 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== +falafel@^2.1.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.2.5.tgz#3ccb4970a09b094e9e54fead2deee64b4a589d56" + integrity sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ== + dependencies: + acorn "^7.1.1" + isarray "^2.0.1" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -5647,7 +7336,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.2.5, fast-glob@^3.2.9: +fast-glob@^3.0.3, fast-glob@^3.2.5, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== @@ -5673,6 +7362,11 @@ fast-memoize@^2.5.1: resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -5716,6 +7410,35 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -5767,6 +7490,19 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" @@ -5793,6 +7529,16 @@ find-file-up@^0.1.2: fs-exists-sync "^0.1.0" resolve-dir "^0.1.0" +find-nearest-file@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-nearest-file/-/find-nearest-file-1.1.0.tgz#e29441740329a2015f7655faecd7b85e02cad686" + integrity sha512-NMsS0ITOwpBPrHOyO7YUtDhaVEGUKS0kBJDVaWZPuCzO7JMW+uzFQQVts/gPyIV9ioyNWDb5LjhHWXVf1OnBDA== + +find-parent-dir@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + integrity sha512-41+Uo9lF5JNGpIMGrujNKDuqH9ofU2ISJ1XCZPLIN/Yayql599PtA0ywYtlLMYmJcSPkr4uAF14wJmKlW2Fx3g== + find-parent-dir@~0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.1.tgz#c5c385b96858c3351f95d446cab866cbf9f11125" @@ -5814,6 +7560,11 @@ find-process@^1.4.3: commander "^5.1.0" debug "^4.1.1" +find-project-root@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/find-project-root/-/find-project-root-1.1.1.tgz#d242727a2d904725df5714f23dfdcdedda0b6ef8" + integrity sha512-4+yZ013W+EZc+hvdgA2RlzlgNfP1eGdMNxU6xzw1yt518cF6/xZD3kLV+bprYX5+AD0IL76xcN28TPqYJHxrHw== + find-root@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -5849,6 +7600,14 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + findup-sync@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -5859,6 +7618,15 @@ findup-sync@^3.0.0: micromatch "^3.0.4" resolve-dir "^1.0.1" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -5867,11 +7635,26 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + flatted@^3.1.0: version "3.2.5" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flow-parser@0.111.3: + version "0.111.3" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.111.3.tgz#4c256aa21a5dbb53d5305e3512cc120659ca08f3" + integrity sha512-iEjGZ94OBMcESxnLorXNjJmtd/JtQYXUVrQpfwvtAKkuyawRmv+2LM6nqyOsOJkISEYbyY6ziudRE0u4VyPSVA== + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -5880,6 +7663,18 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" +follow-redirects@^1.0.0: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -5920,6 +7715,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + fraction.js@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" @@ -5932,7 +7732,19 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -from2@^2.1.0: +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from2-string@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/from2-string/-/from2-string-1.1.0.tgz#18282b27d08a267cb3030cd2b8b4b0f212af752a" + integrity sha512-m8vCh+KnXXXBtfF2VUbiYlQ+nczLcntB0BrtNgpmLkHylhObe9WF1b2LZjBBzrZzA6P4mkEla6ZYQoOUTG8cYA== + dependencies: + from2 "^2.0.3" + +from2@^2.0.3, from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= @@ -5990,7 +7802,7 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.0, function.prototype.name@^1.1.2: +function.prototype.name@^1.1.0, function.prototype.name@^1.1.2, function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== @@ -6015,11 +7827,30 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-assigned-identifiers@^1.1.0, get-assigned-identifiers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== + +get-browser-rtc@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz#d1494e299b00f33fc8e9d6d3343ba4ba99711a2c" + integrity sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ== + get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -6029,11 +7860,21 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + get-stdin@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" @@ -6044,7 +7885,7 @@ get-stdin@~5.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= -get-stream@^4.0.0: +get-stream@4.1.0, get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -6058,6 +7899,11 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -6094,13 +7940,31 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^5.0.10: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -6113,6 +7977,18 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.0, glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@~7.1.2: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -6192,13 +8068,20 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.0.0: +globals@^12.0.0, globals@^12.1.0: version "12.4.0" resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== dependencies: type-fest "^0.8.1" +globals@^13.15.0: + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== + dependencies: + type-fest "^0.20.2" + globals@^13.6.0, globals@^13.9.0: version "13.13.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" @@ -6206,7 +8089,32 @@ globals@^13.6.0, globals@^13.9.0: dependencies: type-fest "^0.20.2" -globby@^11.0.3, globby@^11.0.4: +globby@6.1.0, globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^10.0.1: + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + +globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -6218,22 +8126,21 @@ globby@^11.0.3, globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - globjoin@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= +globs-to-files@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/globs-to-files/-/globs-to-files-1.0.0.tgz#54490f6d1f4b9fd2de9d99445146ffb37550380d" + integrity sha512-zNZNFS6hwQ0rsbu8EKAX+1j1kZk2qglDBfxRMJYnlNxCzFVOLGpWaRjK745cSK+zDrjLQ5qIrwhkdghTiR6x7A== + dependencies: + array-uniq "~1.0.2" + asyncreduce "~0.1.4" + glob "^5.0.10" + xtend "^4.0.0" + glsl-noise@^0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz#367745f3a33382c0eeec4cb54b7e99cfc1d7670b" @@ -6253,7 +8160,7 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.2, graceful-fs@^4.2.4: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -6268,6 +8175,18 @@ gradient-parser@^0.1.5: resolved "https://registry.yarnpkg.com/gradient-parser/-/gradient-parser-0.1.5.tgz#0c7e2179559e5ce7d8d71f4423af937100b2248c" integrity sha1-DH4heVWeXOfY1x9EI6+TcQCyJIw= +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphql@14.6.0: + version "14.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49" + integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg== + dependencies: + iterall "^1.2.2" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -6280,6 +8199,18 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" +handlebars@^4.0.13: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -6298,11 +8229,36 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -6432,6 +8388,11 @@ hpq@^1.3.0: resolved "https://registry.yarnpkg.com/hpq/-/hpq-1.3.0.tgz#fe73406927f6327ea66aa6055fbb130ac9a249c0" integrity sha512-fvYTvdCFOWQupGxqkahrkA+ERBuMdzkxwtUdKrxR6rmMd4Pfl+iZ1QiQYoaZ0B/v0y59MOMnz3XFUWbT50/NWA== +html-element-attributes@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-2.2.1.tgz#ff397c7a3d6427064b117b6f36b45be08e79db93" + integrity sha512-gGTgCeQu+g1OFExZKWQ1LwbFXxLJ6cGdCGj64ByEaxatr/EPVc23D6Gxngb37ao+SNInP/sGu8FXxRsSxMm7aQ== + html-element-map@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.1.tgz#44b2cbcfa7be7aa4ff59779e47e51012e1c73c08" @@ -6452,11 +8413,26 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +html-styles@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/html-styles/-/html-styles-1.0.0.tgz#a18061fd651f99c6b75c45c8e0549a3bc3e01a75" + integrity sha512-cDl5dcj73oI4Hy0DSUNh54CAwslNLJRCCoO+RNkVo+sBrjA/0+7E/xzvj3zH/GxbbBLGJhE0hBe1eg+0FINC6w== + +html-tag-names@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.5.tgz#f537420c16769511283f8ae1681785fbc89ee0a9" + integrity sha512-aI5tKwNTBzOZApHIynaAwecLBv8TlZTEy/P4Sj2SzzAhBrGuI8yGZ0UIXVPQzOHGS+to2mjb04iy6VWt/8+d8A== + html-tags@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + integrity sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg== + htmlparser2@^3.10.0: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" @@ -6479,6 +8455,17 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + http-parser-js@>=0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" @@ -6493,6 +8480,15 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -6520,7 +8516,17 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -iconv-lite@0.4.24: +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + +humanize-duration@^3.23.1: + version "3.27.2" + resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.27.2.tgz#4b4e565bec098d22c9a54344e16156d1c649f160" + integrity sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -6554,12 +8560,17 @@ ignore-emit-webpack-plugin@^2.0.6: resolved "https://registry.yarnpkg.com/ignore-emit-webpack-plugin/-/ignore-emit-webpack-plugin-2.0.6.tgz#570c30a08ee4c2ce6060f80d4bc4c5c5fec4d606" integrity sha512-/zC18RWCC2wz4ZwnS4UoujGWzvSKy28DLjtE+jrGBOXej6YdmityhBDzE8E0NlktEqi4tgdNbydX8B6G4haHSQ== -ignore@^4.0.6: +ignore@4.0.6, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.8, ignore@^5.1.9, ignore@^5.2.0: +ignore@^3.3.7: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^5.1.1, ignore@^5.1.8, ignore@^5.1.9, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -6574,6 +8585,14 @@ immutable@^4.0.0: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -6608,11 +8627,21 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== + indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -6626,7 +8655,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6646,6 +8675,48 @@ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA== + dependencies: + source-map "~0.5.3" + +inquirer@^7.0.0: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +insert-module-globals@^7.0.0, insert-module-globals@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" + integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== + dependencies: + JSONStream "^1.0.3" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" + is-buffer "^1.1.0" + path-is-absolute "^1.0.1" + process "~0.11.0" + through2 "^2.0.0" + undeclared-identifiers "^1.1.2" + xtend "^4.0.0" + internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -6660,6 +8731,11 @@ interpret@^1.4.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + irregular-plurals@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-3.3.0.tgz#67d0715d4361a60d9fd9ee80af3881c631a31ee2" @@ -6692,6 +8768,14 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-arguments@^1.0.4, is-arguments@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -6726,7 +8810,7 @@ is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: +is-buffer@^1.0.2, is-buffer@^1.1.0, is-buffer@^1.1.4, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -6736,12 +8820,12 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.4: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-ci@^2.0.0: +is-ci@2.0.0, is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== @@ -6755,6 +8839,13 @@ is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.1: dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -6769,7 +8860,7 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -6799,6 +8890,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + is-docker@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" @@ -6821,6 +8917,18 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-fork-pr@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/is-fork-pr/-/is-fork-pr-2.5.0.tgz#75f9f44ae245448c84f6c1b07fa816592538da56" + integrity sha512-kca2MhWNsJSUxN/Ud1CPPa+r+XpRnUXfheB8bvgjP6kCgCMYgIL5YMlwx0k7xnyqjnNaEzkQgS14S/SzhOPYkQ== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" @@ -6831,11 +8939,23 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -6855,6 +8975,11 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -6879,7 +9004,19 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-cwd@^2.0.0: +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== @@ -6898,6 +9035,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-path-inside@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -6925,12 +9067,17 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + is-promise@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.4: +is-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -6938,11 +9085,21 @@ is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + is-regexp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -6960,6 +9117,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -6984,6 +9146,17 @@ is-touch-device@^1.0.1: resolved "https://registry.yarnpkg.com/is-touch-device/-/is-touch-device-1.0.1.tgz#9a2fd59f689e9a9bf6ae9a86924c4ba805a42eab" integrity sha512-LAYzo9kMT1b2p19L/1ATGt2XcSilnzNlyvq6c0pbPRVisLbAPpLqr53tIJS00kvrTkj0HtR8U7+u8X0yR8lPSw== +is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -6999,6 +9172,11 @@ is-utf8@^0.2.0: resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -7006,6 +9184,14 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-whitespace-character@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" @@ -7031,7 +9217,7 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.2.0: +is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -7043,6 +9229,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= +isarray@^2.0.1, isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -7070,7 +9261,7 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== -istanbul-lib-instrument@^4.0.3: +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== @@ -7117,6 +9308,11 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +iterall@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + jest-changed-files@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" @@ -7219,6 +9415,13 @@ jest-diff@^26.6.2: jest-get-type "^26.3.0" pretty-format "^26.6.2" +jest-docblock@25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== + dependencies: + detect-newline "^3.0.0" + jest-docblock@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" @@ -7530,6 +9733,11 @@ jest@^26.6.3: import-local "^3.0.2" jest-cli "^26.6.3" +js-base64@^2.1.9: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -7543,6 +9751,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + js-yaml@~3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -7609,7 +9824,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -7639,6 +9854,20 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +json-stable-stringify@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== + dependencies: + jsonify "~0.0.0" + +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + integrity sha512-nKtD/Qxm7tWdZqJoldEC7fF0S41v0mWbeaXG3637stOWfyGxTgWTYE2wtfKmjzpvxv2MA2xzxsXOIiwUpkX6Qw== + dependencies: + jsonify "~0.0.0" + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -7671,6 +9900,16 @@ jsonc-parser@~2.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA== + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + jsprim@^1.2.2: version "1.4.2" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" @@ -7740,6 +9979,14 @@ ktx-parse@^0.2.1: resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.2.2.tgz#b037b66044855215b332cb73104590af49e47791" integrity sha512-cFBc1jnGG2WlUf52NbDUXK2obJ+Mo9WUkBRvr6tP6CKxRMvZwDDFNV3JAS4cewETp5KyexByfWm9sm+O8AffiQ== +labeled-stream-splicer@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" + integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== + dependencies: + inherits "^2.0.1" + stream-splicer "^2.0.0" + language-subtag-registry@~0.3.2: version "0.3.21" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" @@ -7762,11 +10009,24 @@ lazy-cache@^1.0.3: resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= -leven@^3.1.0: +leven@3.1.0, leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -7775,13 +10035,10 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" +lilconfig@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" + integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== line-height@^0.3.1: version "0.3.1" @@ -7790,11 +10047,21 @@ line-height@^0.3.1: dependencies: computed-style "~0.1.3" +lines-and-columns@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +linguist-languages@7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/linguist-languages/-/linguist-languages-7.6.0.tgz#6e3d9aa7a98ddf5299f8115788dce8deb8a97c9d" + integrity sha512-DBZPIWjrQmb/52UlSEN8MTiwwugrAh4NBX9/DyIG8IuO8rDLYDRM+KVPbuiPVKd3ResxYtZB5AiSuc8dTzOSog== + linkify-it@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" @@ -7802,6 +10069,103 @@ linkify-it@^2.0.0: dependencies: uc.micro "^1.0.1" +lint-staged@9.4.3: + version "9.4.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.4.3.tgz#f55ad5f94f6e105294bfd6499b23142961f7b982" + integrity sha512-PejnI+rwOAmKAIO+5UuAZU9gxdej/ovSEOAY34yMfC3OS4Ac82vCBPzAWLReR9zCPOMqeVwQRaZ3bUBpAsaL2Q== + dependencies: + chalk "^2.4.2" + commander "^2.20.0" + cosmiconfig "^5.2.1" + debug "^4.1.1" + dedent "^0.7.0" + del "^5.0.0" + execa "^2.0.3" + listr "^0.14.3" + log-symbols "^3.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.1.1" + string-argv "^0.3.0" + stringify-object "^3.3.0" + +lint-staged@^13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" + integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== + dependencies: + cli-truncate "^3.1.0" + colorette "^2.0.17" + commander "^9.3.0" + debug "^4.3.4" + execa "^6.1.0" + lilconfig "2.0.5" + listr2 "^4.0.5" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-inspect "^1.12.2" + pidtree "^0.6.0" + string-argv "^0.3.1" + yaml "^2.1.1" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + livereload-js@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" @@ -7818,6 +10182,22 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +load-json-file@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + +load-script@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-script/-/load-script-2.0.0.tgz#40821aaa59e9bbe7be2e28b6ab053e6f44330fa1" + integrity sha512-km6cyoPW4rM22JMGb+SHUKPMZVDpUaMpMAKrv8UHWllIxc/qjgMGHD91nY+5hM+/NFs310OZ2pqQeJKs7HqWPA== + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -7869,6 +10249,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -7899,6 +10286,11 @@ lodash.isequal@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -7919,11 +10311,35 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@4.17.21, lodash@^4.1.1, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: +lodash.unescape@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg== + +lodash.uniqby@4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== + +lodash@4.17.21, lodash@^4.1.1, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== + dependencies: + chalk "^1.0.0" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" @@ -7932,6 +10348,25 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + longest-streak@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" @@ -7944,7 +10379,7 @@ loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lru-cache@^4.0.1: +lru-cache@^4.0.1, lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -7971,6 +10406,13 @@ lz-string@^1.4.4: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= +magic-string@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.23.2.tgz#204d7c3ea36c7d940209fcc54c39b9f243f13369" + integrity sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA== + dependencies: + sourcemap-codec "^1.4.1" + make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -7986,6 +10428,11 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" +make-promises-safe@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/make-promises-safe/-/make-promises-safe-5.1.0.tgz#dd9d311f555bcaa144f12e225b3d37785f0aa8f2" + integrity sha512-AfdZ49rtyhQR/6cqVKGoH7y4ql7XkS5HJI1lZm0/5N6CQosy1eYbBJ/qbhkKHzo17UH7M918Bysf6XB9f3kS1g== + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -7993,6 +10440,13 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -8072,6 +10526,11 @@ mathml-tag-names@^2.1.3: resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== +maybe-combine-errors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/maybe-combine-errors/-/maybe-combine-errors-1.0.0.tgz#e9592832e61fc47643a92cff3c1f33e27211e5be" + integrity sha512-eefp6IduNPT6fVdwPp+1NgD0PML1NU5P6j1Mj5nz1nidX8/sWY7119WL8vTAHgqfsY74TzW0w1XPgdYEKkGZ5A== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -8124,6 +10583,20 @@ mdurl@^1.0.1: resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +mem@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + memize@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/memize/-/memize-1.1.0.tgz#4a5a684ac6992a13b1299043f3e49b1af6a0b0d3" @@ -8180,7 +10653,7 @@ meow@^9.0.0: type-fest "^0.18.0" yargs-parser "^20.2.3" -merge-deep@^3.0.3: +merge-deep@^3.0.2, merge-deep@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.3.tgz#1a2b2ae926da8b2ae93a0ac15d90cd1922766003" integrity sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA== @@ -8189,12 +10662,24 @@ merge-deep@^3.0.3: clone-deep "^0.2.4" kind-of "^3.0.2" +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-source-map@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" + integrity sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA== + dependencies: + source-map "^0.5.6" + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -8204,6 +10689,11 @@ meshline@^2.0.4: resolved "https://registry.yarnpkg.com/meshline/-/meshline-2.0.4.tgz#39c7bcf36b503397642f2312e6211f2a8ecf75c5" integrity sha512-Jh6DJl/zLqA4xsKvGv5950jr2ukyXQE1wgxs8u94cImHrvL6soVIggqjP+2hVHZXGYaKnWszhtjuCbKNeQyYiw== +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + micromark@~2.11.0: version "2.11.4" resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" @@ -8231,7 +10721,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -8247,23 +10737,38 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.52.0: +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -8278,6 +10783,18 @@ mini-css-extract-plugin@^1.3.9: schema-utils "^3.0.0" webpack-sources "^1.1.0" +minify-stream@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/minify-stream/-/minify-stream-2.1.0.tgz#2df5cceee43260f57017cb90739fbf15ca7ade04" + integrity sha512-P5xE4EQRkn7Td54VGcgfDMFx1jmKPPIXCdcMfrbXS6cNHK4dO1LXwtYFb48hHrSmZfT+jlGImvHgSZEkbpNtCw== + dependencies: + concat-stream "^2.0.0" + convert-source-map "^1.5.0" + duplexify "^4.1.1" + from2-string "^1.1.0" + terser "^4.7.0" + xtend "^4.0.1" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -8288,13 +10805,20 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4, minimatch@^3.1.2: +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + minimatch@~3.0.4: version "3.0.8" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" @@ -8311,7 +10835,12 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -8337,7 +10866,7 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: +minipass@3.1.6, minipass@^3.0.0, minipass@^3.1.1: version "3.1.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== @@ -8406,6 +10935,27 @@ mmd-parser@^1.0.4: resolved "https://registry.yarnpkg.com/mmd-parser/-/mmd-parser-1.0.4.tgz#87cc05782cb5974ca854f0303fc5147bc9d690e7" integrity sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg== +module-deps@^6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" + integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA== + dependencies: + JSONStream "^1.0.3" + browser-resolve "^2.0.0" + cached-path-relative "^1.0.2" + concat-stream "~1.6.0" + defined "^1.0.0" + detective "^5.2.0" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.4.0" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + moment-timezone@^0.5.31: version "0.5.34" resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c" @@ -8440,6 +10990,11 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +mri@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + mrmime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" @@ -8450,21 +11005,70 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multi-stage-sourcemap@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz#b09fc8586eaa17f81d575c4ad02e0f7a3f6b1105" + integrity sha512-umaOM+8BZByZIB/ciD3dQLzTv50rEkkGJV78ta/tIVc/J/rfGZY5y1R+fBD3oTaolx41mK8rRcyGtYbDXlzx8Q== + dependencies: + source-map "^0.1.34" + +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + +multisplice@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/multisplice/-/multisplice-1.0.0.tgz#e74cf2948dcb51a6c317fc5e22980a652f7830e9" + integrity sha512-KU5tVjIdTGsMb92JlWwEZCGrvtI1ku9G9GuNbWdQT/Ici1ztFXX0L8lWpbbC3pISVMfBNL56wdqplHvva2XSlA== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +mutexify@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/mutexify/-/mutexify-1.4.0.tgz#b7f4ac0273c81824b840887c6a6e0bfab14bbe94" + integrity sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg== + dependencies: + queue-tick "^1.0.0" + +n-readlines@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/n-readlines/-/n-readlines-1.0.0.tgz#c353797f216c253fdfef7e91da4e8b17c29a91a6" + integrity sha512-ISDqGcspVu6U3VKqtJZG1uR55SmNNF9uK0EMq1IvNVVZOui6MW6VR0+pIZhqz85ORAGp+4zW+5fJ/SE7bwEibA== nan@^2.12.1: version "2.15.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== +nanobench@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nanobench/-/nanobench-2.1.1.tgz#c2f23fcce116d50b4998b1954ba114674c137269" + integrity sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A== + dependencies: + browser-process-hrtime "^0.1.2" + chalk "^1.1.3" + mutexify "^1.1.0" + pretty-hrtime "^1.0.2" + nanoid@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" @@ -8487,6 +11091,22 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +nanoresource-collection@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/nanoresource-collection/-/nanoresource-collection-1.0.0.tgz#df34cc1b040839d7309d63d95c8b7620e75be4bc" + integrity sha512-S43CyBqLVil3JkG+F7G3SnezPJxdukhirc8yirg931hPWsq+sChwNjaCXkSmeCzIJL6smVvFMyYISmEcLDkwTw== + dependencies: + catering "^2.0.0" + maybe-combine-errors "^1.0.0" + nanoresource "^1.3.0" + +nanoresource@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/nanoresource/-/nanoresource-1.3.0.tgz#823945d9667ab3e81a8b2591ab8d734552878cd0" + integrity sha512-OI5dswqipmlYfyL3k/YMm7mbERlh4Bd1KuKdMHpeoVD1iVxqxaTMKleB4qaA2mbQZ6/zMNSxCXv9M9P/YbqTuQ== + dependencies: + inherits "^2.0.4" + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -8502,11 +11122,21 @@ nearley@^2.7.10: railroad-diagrams "^1.0.0" randexp "0.4.6" -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -8590,6 +11220,11 @@ normalize-package-data@^3.0.0: semver "^7.3.4" validate-npm-package-license "^3.0.1" +normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -8597,11 +11232,6 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" @@ -8640,6 +11270,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== + dependencies: + path-key "^3.0.0" + npm-run-path@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -8647,6 +11284,13 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -8666,6 +11310,11 @@ num2fraction@^1.2.2: resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -8676,7 +11325,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -8700,7 +11349,12 @@ object-inspect@^1.12.0, object-inspect@^1.7.0, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== -object-is@^1.0.2, object-is@^1.1.2: +object-inspect@^1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.0.1, object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.4, object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -8730,6 +11384,16 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" +object.assign@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" @@ -8765,6 +11429,14 @@ object.hasown@^1.1.0: define-properties "^1.1.3" es-abstract "^1.19.1" +object.hasown@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" + integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.19.5" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -8781,6 +11453,25 @@ object.values@^1.0.4, object.values@^1.1.0, object.values@^1.1.1, object.values@ define-properties "^1.1.3" es-abstract "^1.19.1" +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +on-stream-close@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/on-stream-close/-/on-stream-close-1.0.0.tgz#4f833fe2e8e240168e555860a3dc003e45ef3c84" + integrity sha512-0MkKOAgt9r3XCqYRTIcnxks6fQ3Jd4xPognM5pUED1VLnpyLHsTWXW7LW7V/4deOKfvn4bnn3ahOFcQ2AOgJ/g== + dependencies: + catering "^2.0.0" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -8788,6 +11479,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -8795,6 +11493,21 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +open@^7.1.0: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -8808,7 +11521,7 @@ opentype.js@^1.3.3: string.prototype.codepointat "^0.2.1" tiny-inflate "^1.0.3" -optionator@^0.8.1: +optionator@^0.8.1, optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -8832,7 +11545,7 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -os-browserify@^0.3.0: +os-browserify@^0.3.0, os-browserify@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= @@ -8842,6 +11555,23 @@ os-homedir@^1.0.1: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +outpipe@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" + integrity sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA== + dependencies: + shell-quote "^1.4.2" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== + p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -8852,6 +11582,16 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -8894,11 +11634,25 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + p-map@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -8937,6 +11691,13 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + integrity sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg== + dependencies: + path-platform "~0.11.15" + parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.6" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" @@ -8979,6 +11740,14 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -8994,6 +11763,11 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parse-srcset@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" + integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== + parse5-htmlparser2-tree-adapter@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" @@ -9006,16 +11780,26 @@ parse5@6.0.1, parse5@^6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.1: +path-browserify@0.0.1, path-browserify@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== +path-browserify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -9038,7 +11822,7 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= @@ -9058,11 +11842,26 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.5, path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -9113,6 +11912,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -9140,6 +11944,14 @@ pirates@^4.0.1: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== +pkg-conf@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" + integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== + dependencies: + find-up "^3.0.0" + load-json-file "^5.2.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -9154,6 +11966,13 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +please-upgrade-node@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + plur@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/plur/-/plur-4.0.0.tgz#729aedb08f452645fe8c58ef115bf16b0a73ef84" @@ -9182,6 +12001,13 @@ postcss-html@^0.36.0: dependencies: htmlparser2 "^3.10.0" +postcss-less@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-2.0.0.tgz#5d190b8e057ca446d60fe2e2587ad791c9029fb8" + integrity sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ== + dependencies: + postcss "^5.2.16" + postcss-less@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" @@ -9200,7 +12026,7 @@ postcss-loader@^4.2.0: schema-utils "^3.0.0" semver "^7.3.4" -postcss-media-query-parser@^0.2.3: +postcss-media-query-parser@0.2.3, postcss-media-query-parser@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= @@ -9253,6 +12079,13 @@ postcss-sass@^0.4.4: gonzales-pe "^4.3.0" postcss "^7.0.21" +postcss-scss@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" + integrity sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug== + dependencies: + postcss "^7.0.0" + postcss-scss@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz#ec3a75fa29a55e016b90bf3269026c53c1d2b383" @@ -9260,6 +12093,15 @@ postcss-scss@^2.1.1: dependencies: postcss "^7.0.6" +postcss-selector-parser@2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" @@ -9278,7 +12120,26 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6: +postcss-values-parser@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz#5d9fa63e2bcb0179ce48f3235303765eb89f3047" + integrity sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6: version "7.0.39" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== @@ -9317,11 +12178,98 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" +prettier-standard@^16.4.1: + version "16.4.1" + resolved "https://registry.yarnpkg.com/prettier-standard/-/prettier-standard-16.4.1.tgz#964e7e3f3029427ab8e01bdffb72dea9a87f62c8" + integrity sha512-IW3Sct4GOdqc1s4+1HZjH2HegzLZQ6mDMl2xz6i6KHCac7kCM+obLbvm2e0zp8PytKkLQCdOpj0cWWa48Ruetw== + dependencies: + chalk "^2.4.2" + diff "^4.0.2" + eslint "^6.8.0" + execa "^2.0.4" + find-up "^4.1.0" + get-stdin "^7.0.0" + globby "^6.1.0" + ignore "^3.3.7" + lint-staged "9.4.3" + mri "^1.1.5" + multimatch "^3.0.0" + prettierx "0.11.3" + +prettier@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + "prettier@npm:wp-prettier@2.2.1-beta-1": version "2.2.1-beta-1" resolved "https://registry.yarnpkg.com/wp-prettier/-/wp-prettier-2.2.1-beta-1.tgz#8afb761f83426bde870f692edc49adbd3e265118" integrity sha512-+JHkqs9LC/JPp51yy1hzs3lQ7qeuWCwOcSzpQNeeY/G7oSpnF61vxt7hRh87zNRTr6ob2ndy0W8rVzhgrcA+Gw== +prettierx@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/prettierx/-/prettierx-0.11.3.tgz#379d1aa7df4dbd049c1b34a1990d903efa4e6130" + integrity sha512-Xf04LEfD3ITo26i5U/zR++hwqKPG3feR06rrjB0t2o+QFv8ZidFp4o7nPqPGLfE4UwHJgd0qwnZKwm0MsUQHUA== + dependencies: + "@angular/compiler" "8.2.14" + "@babel/code-frame" "7.8.3" + "@babel/parser" "7.9.4" + "@glimmer/syntax" "0.41.4" + "@iarna/toml" "2.2.3" + "@typescript-eslint/typescript-estree" "2.6.1" + angular-estree-parser "1.3.1" + angular-html-parser "1.4.0" + camelcase "5.3.1" + chalk "3.0.0" + cjk-regex "2.0.0" + cosmiconfig "5.2.1" + dashify "2.0.0" + dedent "0.7.0" + diff "4.0.2" + editorconfig "0.15.3" + editorconfig-to-prettier "0.1.1" + escape-string-regexp "2.0.0" + esutils "2.0.3" + find-parent-dir "0.3.0" + find-project-root "1.1.1" + flow-parser "0.111.3" + get-stream "4.1.0" + globby "6.1.0" + graphql "14.6.0" + html-element-attributes "2.2.1" + html-styles "1.0.0" + html-tag-names "1.1.5" + ignore "4.0.6" + is-ci "2.0.0" + jest-docblock "25.3.0" + json-stable-stringify "1.0.1" + leven "3.1.0" + lines-and-columns "1.1.6" + linguist-languages "7.6.0" + lodash.uniqby "4.7.0" + mem "5.1.1" + minimatch "3.0.4" + minimist "1.2.5" + n-readlines "1.0.0" + normalize-path "3.0.0" + parse-srcset "1.0.2" + postcss-less "2.0.0" + postcss-media-query-parser "0.2.3" + postcss-scss "2.0.0" + postcss-selector-parser "2.2.3" + postcss-values-parser "1.5.0" + regexp-util "1.2.2" + remark-math "1.0.6" + remark-parse "5.0.0" + resolve "1.15.1" + semver "6.3.0" + string-width "4.2.0" + unicode-regex "3.0.0" + unified "8.4.2" + vnopts "1.0.2" + yaml "1.8.3" + yaml-unist-parser "1.1.1" + pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" @@ -9341,12 +12289,17 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" +pretty-hrtime@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: +process@^0.11.10, process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= @@ -9387,6 +12340,14 @@ prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, object-assign "^4.1.1" react-is "^16.13.1" +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" @@ -9449,7 +12410,7 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4: +punycode@^1.2.4, punycode@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= @@ -9482,7 +12443,7 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@^6.4.0: +qs@6.10.3, qs@^6.4.0: version "6.10.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== @@ -9494,7 +12455,7 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -querystring-es3@^0.2.0: +querystring-es3@^0.2.0, querystring-es3@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= @@ -9504,11 +12465,16 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -queue-microtask@^1.2.2: +queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue-tick@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.0.tgz#011104793a3309ae86bfeddd54e251dc94a36725" + integrity sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ== + quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" @@ -9534,6 +12500,11 @@ randexp@0.4.6: discontinuous-range "1.0.0" ret "~0.1.10" +random-string@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/random-string/-/random-string-0.2.0.tgz#a46e4375352beda9a0d7b0d19ed6d321ecd1d82d" + integrity sha512-isA91IquV3ZrFbvwkAtExP8aGL+csx3KGEsEJrvCidzOHioPl5B5g7WyJlk0lMkEz5/i1PqrWTvcdtJHPtrp1g== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -9549,6 +12520,21 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + raw-body@~1.1.0: version "1.1.7" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" @@ -9761,6 +12747,13 @@ react@^17.0.1, react@^17.0.2: loose-envify "^1.1.0" object-assign "^4.1.1" +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + integrity sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w== + dependencies: + readable-stream "^2.0.2" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -9810,7 +12803,7 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9927,7 +12920,14 @@ regexp-to-ast@0.5.0: resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== -regexp.prototype.flags@^1.4.1: +regexp-util@1.2.2, regexp-util@^1.2.0, regexp-util@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/regexp-util/-/regexp-util-1.2.2.tgz#5cf599134921eb0d776e41d41e9c0da33f0fa2fc" + integrity sha512-5/rl2UD18oAlLQEIuKBeiSIOp1hb5wCXcakl5yvHxlY1wyWI4D5cUKKzCibBeu741PA9JKvZhMqbkDQqPusX3w== + dependencies: + tslib "^1.9.0" + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -9936,7 +12936,12 @@ regexp.prototype.flags@^1.4.1: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.1.0: +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0, regexpp@^3.1.0, regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== @@ -9970,7 +12975,14 @@ regjsparser@^0.8.2: dependencies: jsesc "~0.5.0" -remark-parse@^5.0.0: +remark-math@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-1.0.6.tgz#49eb3dd15d298734c9ae21673115389793af4d1b" + integrity sha512-I43wU/QOQpXvVFXKjA4FHp5xptK65+5F6yolm8+69/JV0EqSOB64wURUZ3JK50JtnTL8FvwLiH2PZ+fvsBxviA== + dependencies: + trim-trailing-lines "^1.1.0" + +remark-parse@5.0.0, remark-parse@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== @@ -10085,6 +13097,11 @@ requireindex@^1.2.0: resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + resolve-bin@^0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/resolve-bin/-/resolve-bin-0.4.3.tgz#7edf1026d78ec684d69e5a5dbbb321ffdce6938e" @@ -10142,6 +13159,22 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve@1.15.1: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.1.4, resolve@^1.10.1, resolve@^1.17.0, resolve@^1.4.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.0: version "1.22.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" @@ -10159,6 +13192,29 @@ resolve@^2.0.0-next.3: is-core-module "^2.2.0" path-parse "^1.0.6" +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +resumer@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== + dependencies: + through "~2.3.4" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -10169,6 +13225,18 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -10204,6 +13272,18 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel-settled@^1.0.0, run-parallel-settled@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/run-parallel-settled/-/run-parallel-settled-1.0.1.tgz#68fa9dc286cd21042ef5d6a0b721890fa8db5112" + integrity sha512-YHN5KR7pjtjc1Jejcb02SGrZslYLOJtzdNhBq1gUze/llv3lJ3pgLmfLBM4cbpi+rNv7Yn9AcyD8rtPI2iRmvA== + dependencies: + maybe-combine-errors "^1.0.0" + run-parallel@^1.1.4, run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -10223,21 +13303,40 @@ rungen@^0.3.2: resolved "https://registry.yarnpkg.com/rungen/-/rungen-0.3.2.tgz#400c09ebe914e7b17e0b6ef3263400fc2abc7cb3" integrity sha1-QAwJ6+kU57F+C27zJjQA/Cq8fLM= +runnel@~0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/runnel/-/runnel-0.5.3.tgz#f9362b165a05fc6f5e46e458f77a1f7ecdc0daec" + integrity sha512-XAVCMr+hCRGKA4AJdNit1aQC0EKCuCZnlxqfeh9u2CbSPSPyLSI/BfavMfoC/WUd6HyaRBWW1usNsVAqWN9hgw== + rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +rxjs@^6.3.3, rxjs@^6.6.0: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.5.5: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== + dependencies: + tslib "^2.1.0" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-json-parse@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" @@ -10344,33 +13443,70 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +scope-analyzer@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.1.2.tgz#b958162feb59823c2835c7b0229187a97c77e9cd" + integrity sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ== + dependencies: + array-from "^2.1.1" + dash-ast "^2.0.1" + es6-map "^0.1.5" + es6-set "^0.1.5" + es6-symbol "^3.1.1" + estree-is-function "^1.0.0" + get-assigned-identifiers "^1.1.0" + select@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@6.3.0, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.0.0, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -10378,6 +13514,21 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +server-destroy@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" + integrity sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ== + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -10398,7 +13549,12 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -sha.js@^2.4.0, sha.js@^2.4.8: +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== @@ -10416,6 +13572,21 @@ shallow-clone@^0.1.2: lazy-cache "^0.2.3" mixin-object "^2.0.1" +shasum-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" + integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== + dependencies: + fast-safe-stringify "^2.0.7" + +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + integrity sha512-UTzHm/+AzKfO9RgPgRpDIuMSNie1ubXRaljjlhFMNGYoG7z+rm9AHLPMf70R7887xboDH9Q+5YQbWKObFHEAtw== + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -10440,6 +13611,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.4.2, shell-quote@^1.6.1, shell-quote@^1.7.0: + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== + shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -10452,7 +13628,7 @@ showdown@^1.9.1: dependencies: yargs "^14.2" -side-channel@^1.0.4: +side-channel@^1.0.3, side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== @@ -10461,11 +13637,21 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2: +sigmund@^1.0.1, sigmund@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + simple-html-tokenizer@^0.5.7: version "0.5.11" resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz#4c5186083c164ba22a7b477b7687ac056ad6b1d9" @@ -10490,6 +13676,29 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -10499,6 +13708,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -10558,7 +13775,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@^0.5.6, source-map-support@~0.5.10, source-map-support@~0.5.12: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -10571,7 +13788,14 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.1.34: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ== + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -10586,6 +13810,11 @@ source-map@^0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +sourcemap-codec@^1.4.1: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + spawnd@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/spawnd/-/spawnd-4.4.0.tgz#bb52c5b34a22e3225ae1d3acb873b2cd58af0886" @@ -10685,6 +13914,30 @@ stack-utils@^2.0.2: dependencies: escape-string-regexp "^2.0.0" +standard-engine@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-15.0.0.tgz#e37ca2e1a589ef85431043a3e87cb9ce95a4ca4e" + integrity sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA== + dependencies: + get-stdin "^8.0.0" + minimist "^1.2.6" + pkg-conf "^3.1.0" + xdg-basedir "^4.0.0" + +standard@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/standard/-/standard-17.0.0.tgz#85718ecd04dc4133908434660788708cca855aa1" + integrity sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA== + dependencies: + eslint "^8.13.0" + eslint-config-standard "17.0.0" + eslint-config-standard-jsx "^11.0.0" + eslint-plugin-import "^2.26.0" + eslint-plugin-n "^15.1.0" + eslint-plugin-promise "^6.0.0" + eslint-plugin-react "^7.28.0" + standard-engine "^15.0.0" + state-toggle@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" @@ -10703,7 +13956,12 @@ stats.js@^0.17.0: resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d" integrity sha1-scPcRtlEmLV4t/05hbgaznExzH0= -stream-browserify@^2.0.1: +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stream-browserify@^2.0.0, stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== @@ -10711,6 +13969,30 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-combiner@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" + integrity sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ== + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -10730,11 +14012,34 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-http@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" + integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" + stream-shift@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +stream-splicer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" + integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +string-argv@^0.3.0, string-argv@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -10748,6 +14053,32 @@ string-template@~0.2.1: resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= +string-width@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -10766,12 +14097,21 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2 is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.codepointat@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== -string.prototype.matchall@^4.0.6: +string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== @@ -10794,6 +14134,15 @@ string.prototype.trim@^1.2.1: define-properties "^1.1.3" es-abstract "^1.19.1" +string.prototype.trim@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz#824960787db37a9e24711802ed0c1d1c0254f83e" + integrity sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" @@ -10802,6 +14151,15 @@ string.prototype.trimend@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + string.prototype.trimstart@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" @@ -10810,6 +14168,15 @@ string.prototype.trimstart@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + string_decoder@0.10: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -10829,6 +14196,29 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -10843,6 +14233,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -10870,6 +14267,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -10877,7 +14279,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -10986,6 +14388,13 @@ stylis@4.0.13: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg== + dependencies: + minimist "^1.1.0" + sugarss@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" @@ -10993,6 +14402,18 @@ sugarss@^2.0.0: dependencies: postcss "^7.0.2" +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -11061,11 +14482,33 @@ svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== + dependencies: + acorn-node "^1.2.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + table@^6.0.9, table@^6.6.0: version "6.8.0" resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" @@ -11084,11 +14527,62 @@ tannin@^1.2.0: dependencies: "@tannin/plural-forms" "^1.1.0" +tap-completed@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tap-completed/-/tap-completed-1.0.1.tgz#c7497e80e0b284862471b6a7d633847a9873b55f" + integrity sha512-ro7dZ/LkQQFSNnyClAOiLo4LM7qhIBv6BFwt19N/J2q5Xf00AfBrQZYNF+6q3f1XzLQDeyZ07QfE6ooob0en5Q== + dependencies: + minipass "3.1.6" + tap-parser "^10.1.0" + +tap-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-10.1.0.tgz#7b1aac40dbcaa4716c0b58952686eae65d2b74ad" + integrity sha512-FujQeciDaOiOvaIVGS1Rpb0v4R6XkOjvWCWowlz5oKuhPkEJ8U6pxgqt38xuzYhPt8dWEnfHn2jqpZdJEkW7pA== + dependencies: + events-to-array "^1.0.1" + minipass "^3.0.0" + tap-yaml "^1.0.0" + +tap-yaml@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tap-yaml/-/tap-yaml-1.0.0.tgz#4e31443a5489e05ca8bbb3e36cef71b5dec69635" + integrity sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ== + dependencies: + yaml "^1.5.0" + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tape@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.0.tgz#588af7292e4a91e49ce5eba344d632d412317b9b" + integrity sha512-LyM4uqbiTAqDgsHTY0r1LH66yE24P3SZaz5TL3mPUds0XCTFl/0AMUBrjgBjUclvbPTFB4IalXg0wFfbTuuu/Q== + dependencies: + array.prototype.every "^1.1.3" + call-bind "^1.0.2" + deep-equal "^2.0.5" + defined "^1.0.0" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.3" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.6" + object-inspect "^1.12.2" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.3" + resolve "^2.0.0-next.3" + resumer "^0.0.0" + string.prototype.trim "^1.2.6" + through "^2.3.8" + tar-fs@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" @@ -11160,6 +14654,15 @@ terser-webpack-plugin@^3.0.3: terser "^4.8.0" webpack-sources "^1.4.3" +terser@^3.7.5: + version "3.17.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== + dependencies: + commander "^2.19.0" + source-map "~0.6.1" + source-map-support "~0.5.10" + terser@^4.1.2, terser@^4.8.0: version "4.8.0" resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" @@ -11169,6 +14672,15 @@ terser@^4.1.2, terser@^4.8.0: source-map "~0.6.1" source-map-support "~0.5.12" +terser@^4.7.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" + integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -11230,7 +14742,7 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -through2@^2.0.0: +through2@^2.0.0, through2@^2.0.3, through2@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -11238,11 +14750,46 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.8: +through2@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + +through2@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.7, through@^2.3.8, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +thunky-with-args@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/thunky-with-args/-/thunky-with-args-1.0.0.tgz#5b202235d8e6c88986c941226c0b4d7e49b2e25d" + integrity sha512-e9QU3bJpxzJx1XcQ1ivwW15xoR3oUJ8MTSpboSTVcTAii2KoxrUaEo+x3PxkgseflqjynJsUP3IqB9jwDZwNtw== + dependencies: + sigmund "~1.0.1" + thunky "~1.0.2" + +thunky@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" + integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q== + dependencies: + process "~0.11.0" + timers-browserify@^2.0.4: version "2.0.12" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" @@ -11272,11 +14819,47 @@ tiny-lr@^1.1.1: object-assign "^4.1.0" qs "^6.4.0" +tiny-simple-peer@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/tiny-simple-peer/-/tiny-simple-peer-10.1.1.tgz#f7df8e425422660ae1fb606715049e3144f52063" + integrity sha512-Hd3Q6ACo08Xb5BGgUMaqYKQuz8fNrd1aWUVJsIvbkFNk+3FtxVgVvnQZlLuUiXhnyZDubR9xTlXqeJOMGwpI3Q== + dependencies: + debug "^4.3.2" + err-code "^3.0.1" + events "^3.3.0" + get-browser-rtc "^1.1.0" + queue-microtask "^1.2.3" + random-string "^0.2.0" + tinycolor2@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== +tinyify@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/tinyify/-/tinyify-3.1.0.tgz#cd3f974c24f3ab0ccd0b471b8c4816c7431317fa" + integrity sha512-r4tHoDkWhhoItWbxJ3KCHXask3hJN7gCUkR5PLfnQzQagTA6oDkzhCbiEDHkMqo7Ck7vVSA1pTP1gDc9p1AC1w== + dependencies: + "@goto-bus-stop/envify" "^5.0.0" + acorn-node "^1.8.2" + browser-pack-flat "^3.0.9" + bundle-collapser "^1.3.0" + common-shakeify "^1.1.1" + dash-ast "^1.0.0" + minify-stream "^2.0.1" + multisplice "^1.0.0" + through2 "^3.0.1" + uglifyify "^5.0.0" + unassertify "^2.1.1" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -11324,6 +14907,11 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + totalist@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" @@ -11358,6 +14946,24 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +transform-ast@^2.4.2, transform-ast@^2.4.3: + version "2.4.4" + resolved "https://registry.yarnpkg.com/transform-ast/-/transform-ast-2.4.4.tgz#bebf494e2e73f024746f76348bc86a5992851d00" + integrity sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ== + dependencies: + acorn-node "^1.3.0" + convert-source-map "^1.5.1" + dash-ast "^1.0.0" + is-buffer "^2.0.0" + magic-string "^0.23.2" + merge-source-map "1.0.4" + nanobench "^2.1.1" + +transient-error@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/transient-error/-/transient-error-1.0.0.tgz#9822b38ccdd75a2b8527a865534fe9ba5f0b6ab6" + integrity sha512-pHi+O9OajOp96ldjeZ0i45n/d4QqV8ef8VCrpx5+RL5VO7Xdt2oQj//zcOhuGw5tiPYe73I4d28wV+yCqhSWxA== + traverse@^0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" @@ -11380,7 +14986,7 @@ trim-repeated@^1.0.0: dependencies: escape-string-regexp "^1.0.2" -trim-trailing-lines@^1.0.0: +trim-trailing-lines@^1.0.0, trim-trailing-lines@^1.1.0: version "1.1.4" resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== @@ -11425,17 +15031,22 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1: +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tslib@^2.2.0, tslib@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tsutils@^3.21.0: +tsutils@^3.17.1, tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== @@ -11447,6 +15058,11 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -11503,6 +15119,11 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -11513,6 +15134,24 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.5.0, type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -11530,6 +15169,52 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== +uglify-js@^3.1.4: + version "3.17.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.0.tgz#55bd6e9d19ce5eef0d5ad17cd1f587d85b180a85" + integrity sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg== + +uglifyify@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/uglifyify/-/uglifyify-5.0.2.tgz#7d0269885e09faa963208a9ec6721afcaf45fc50" + integrity sha512-NcSk6pgoC+IgwZZ2tVLVHq+VNKSvLPlLkF5oUiHPVOJI0s/OlSVYEGXG9PCAH0hcyFZLyvt4KBdPAQBRlVDn1Q== + dependencies: + convert-source-map "~1.1.0" + minimatch "^3.0.2" + terser "^3.7.5" + through "~2.3.4" + xtend "^4.0.1" + +umd@^3.0.0, umd@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== + +unassert@^1.3.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/unassert/-/unassert-1.6.0.tgz#ceb6d39ce47c6d2bfa9cb3cab407352cbfb60a19" + integrity sha512-GoMtWTwGSxSFuRD0NKmbjlx3VJkgvSogzDzMPpJXYmBZv6MIWButsyMqEYhMx3NI4osXACcZA9mXiBteXyJtRw== + dependencies: + acorn "^7.0.0" + call-matcher "^2.0.0" + deep-equal "^1.0.0" + espurify "^2.0.1" + estraverse "^4.1.0" + esutils "^2.0.2" + object-assign "^4.1.0" + +unassertify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/unassertify/-/unassertify-2.1.1.tgz#23772d76c136fb3d5df7dad4911c737d952357d3" + integrity sha512-YIAaIlc6/KC9Oib8cVZLlpDDhK1UTEuaDyx9BwD97xqxDZC0cJOqwFcs/Y6K3m73B5VzHsRTBLXNO0dxS/GkTw== + dependencies: + acorn "^5.1.0" + convert-source-map "^1.1.1" + escodegen "^1.6.1" + multi-stage-sourcemap "^0.2.1" + through "^2.3.7" + unassert "^1.3.1" + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -11540,6 +15225,16 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + unbzip2-stream@^1.3.3: version "1.4.3" resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" @@ -11548,6 +15243,17 @@ unbzip2-stream@^1.3.3: buffer "^5.2.1" through "^2.3.8" +undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" + integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== + dependencies: + acorn-node "^1.3.0" + dash-ast "^1.0.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" + unherit@^1.0.4: version "1.1.3" resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" @@ -11579,6 +15285,31 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== +unicode-regex@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unicode-regex/-/unicode-regex-3.0.0.tgz#0c20df914c6da0412b3714cd300726e0f7f24698" + integrity sha512-WiDJdORsqgxkZrjC8WsIP573130HNn7KsB0IDnUccW2BG2b19QQNloNhVe6DKk3Aef0UcoIHhNVj7IkkcYWrNw== + dependencies: + regexp-util "^1.2.0" + +unicode-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-regex/-/unicode-regex-2.0.0.tgz#ef8f6642c37dddcaa0c09af5b9456aabf6b436a3" + integrity sha512-5nbEG2YU7loyTvPABaKb+8B0u8L7vWCsVmCSsiaO249ZdMKlvrXlxR2ex4TUVAdzv/Cne/TdoXSSaJArGXaleQ== + dependencies: + regexp-util "^1.2.0" + +unified@8.4.2: + version "8.4.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" + integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + unified@^6.1.2: version "6.2.0" resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" @@ -11613,6 +15344,11 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -11682,6 +15418,11 @@ universalify@^0.1.2: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + unquote@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" @@ -11721,7 +15462,7 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" -url@^0.11.0: +url@^0.11.0, url@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= @@ -11775,11 +15516,35 @@ util@^0.11.0: dependencies: inherits "2.0.3" +util@~0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +util@~0.12.0: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + utility-types@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -11812,6 +15577,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -11861,11 +15631,20 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" -vm-browserify@^1.0.1: +vm-browserify@^1.0.0, vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vnopts@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/vnopts/-/vnopts-1.0.2.tgz#f6a331473de0179d1679112cc090572b695202f7" + integrity sha512-d2rr2EFhAGHnTlURu49G7GWmiJV80HbAnkYdD9IFAtfhmxC+kSWEaZ6ZF064DJFTv9lQZQV1vuLTntyQpoanGQ== + dependencies: + chalk "^2.4.1" + leven "^2.1.0" + tslib "^1.9.3" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -11907,6 +15686,19 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.12" +watchify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/watchify/-/watchify-4.0.0.tgz#53b002d51e7b0eb640b851bb4de517a689973392" + integrity sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA== + dependencies: + anymatch "^3.1.0" + browserify "^17.0.0" + chokidar "^3.4.0" + defined "^1.0.0" + outpipe "^1.1.0" + through2 "^4.0.2" + xtend "^4.0.2" + watchpack-chokidar2@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" @@ -12084,7 +15876,7 @@ whatwg-url@^8.0.0, whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -which-boxed-primitive@^1.0.2: +which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -12095,11 +15887,33 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -12119,6 +15933,11 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -12126,6 +15945,14 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -12144,6 +15971,20 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-comment@^1.0.0, wrap-comment@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wrap-comment/-/wrap-comment-1.0.1.tgz#941bb1400b9b590bc007599e79cacc0bb3ea62f3" + integrity sha512-APccrMwl/ont0RHFTXNAQfM647duYYEfs6cngrIyTByTI0xbWnDnPSptFZhS68L4WCjt2ZxuhCFwuY6Pe88KZQ== + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -12159,16 +16000,33 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + ws@^7.2.3, ws@^7.3.1, ws@^7.4.6: version "7.5.7" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== +ws@~8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" @@ -12179,7 +16037,12 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -12204,11 +16067,32 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.7.2: +yaml-unist-parser@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/yaml-unist-parser/-/yaml-unist-parser-1.1.1.tgz#a2bc7b72578718e6e5b0ebc945dde8e1f258b561" + integrity sha512-cGtqhHBlcft+rTKiPsVcSyi43Eqm5a1buYokW9VkztroKMErBSdR9ANHx+/XxNppHZTu2KMEn4yY8MdhuGoFuA== + dependencies: + lines-and-columns "^1.1.6" + tslib "^1.10.0" + yaml "^1.7.1" + +yaml@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a" + integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw== + dependencies: + "@babel/runtime" "^7.8.7" + +yaml@^1.10.0, yaml@^1.5.0, yaml@^1.7.1, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" + integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" From 162091f6453e1c1408103d352d81547295c53431 Mon Sep 17 00:00:00 2001 From: antpb Date: Tue, 23 Aug 2022 00:23:49 -0500 Subject: [PATCH 02/48] we have cube --- blocks/environment/components/Controls.js | 19 ++- .../components/EnvironmentFront.js | 63 ++++++++-- blocks/environment/components/Networking.js | 111 +++++++++++++++++- 3 files changed, 179 insertions(+), 14 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index fbca728..697f387 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -3,7 +3,8 @@ import { useFrame } from '@react-three/fiber'; import { PointerLockControls } from '@react-three/drei'; import previewOptions from '@wordpress/block-editor/build/components/preview-options'; -const Controls = () => { +const Controls = (props) => { + const p2pcf = window.p2pcf; const controlsRef = useRef(); const isLocked = useRef( false ); const [ moveForward, setMoveForward ] = useState( false ); @@ -15,12 +16,28 @@ const Controls = () => { const velocity = 0.5; if ( moveForward ) { controlsRef.current.moveForward( velocity ); + if(p2pcf){ + let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; + p2pcf.broadcast(new TextEncoder().encode(JSON.stringify(position))) + } } else if ( moveLeft ) { controlsRef.current.moveRight( -velocity ); + if(p2pcf){ + let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; + p2pcf.broadcast(new TextEncoder().encode(JSON.stringify(position))) + } } else if ( moveBackward ) { controlsRef.current.moveForward( -velocity ); + if(p2pcf){ + let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; + p2pcf.broadcast(new TextEncoder().encode(JSON.stringify(position))) + } } else if ( moveRight ) { controlsRef.current.moveRight( velocity ); + if(p2pcf){ + let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; + p2pcf.broadcast(new TextEncoder().encode(JSON.stringify(position))) + } } } ); diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 6ec5efb..9d9a56f 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -23,9 +23,43 @@ import Controls from './Controls'; import Networking from './Networking'; import { useAspect } from '@react-three/drei' +function Participant( participant ) { + const [participantPosition, setParticipantPosition] = useState([]); + console.log("welcome,", participant.name); + participant.p2pcf.on('msg', (peer, data) => { + let newPosition = new TextDecoder('utf-8').decode(data); + // console.log("some position data", new TextDecoder('utf-8').decode(data)); + const arrayPosition = JSON.parse( newPosition ); + console.log("some position data", arrayPosition); + + setParticipantPosition(arrayPosition); + }) + + return ( + + + + + ); +} + function SavedObject( props ) { + const [ participants, setParticipant ] = useState([]); + const meshRef = useRef(); + + console.log(participants); + + const p2pcf = window.p2pcf; + if(p2pcf){ + p2pcf.on('peerconnect', peer => { + setParticipant(current => [...current, peer.client_id]); + }) + } + + const [ url, set ] = useState( props.url ); - const [cameraPosition, setCameraPosition] = useState(); useEffect( () => { setTimeout( () => set( props.url ), 2000 ); }, [] ); @@ -102,7 +136,19 @@ function SavedObject( props ) { gltf.scene.position.set( 0, props.positionY, 0 ); gltf.scene.rotation.set( 0, props.rotationY, 0 ); gltf.scene.scale.set( props.scale, props.scale, props.scale ); - return <>; + return(<> + + { participants && participants.map((item, index)=>{ + console.log("stuff", item); + return ( + <> + + + )})} + ); } function ModelObject( model ) { @@ -153,7 +199,9 @@ function ModelObject( model ) { // console.log(model.rotationX, model.rotationY, model.rotationZ); gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); // gltf.scene.scale.set( props.scale, props.scale, props.scale ); - return <>; + return <> + + ; } @@ -218,9 +266,12 @@ function Floor( props ) { export default function EnvironmentFront( props ) { if ( props.deviceTarget === 'vr' ) { - console.log(props.postSlug); return ( <> + - - { props.threeUrl && ( diff --git a/blocks/environment/components/Networking.js b/blocks/environment/components/Networking.js index 77c0571..39ac6f2 100644 --- a/blocks/environment/components/Networking.js +++ b/blocks/environment/components/Networking.js @@ -5,17 +5,116 @@ const Networking = (props) => { document.location = document.location.toString() + `#xpp-${props.postSlug}` - } - + } + + const userProfileName = userData.userId === "" ? Math.floor(Math.random() * 100000) : userData.userId; const p2pcf = new P2PCF( - 'user-' + Math.floor(Math.random() * 100000), - document.location.hash.substring(1) - ) + 'user-' + userProfileName, + document.location.hash.substring(1), + { workerUrl: "https://p2pcf.sxpdigital.workers.dev/" } + ) window.p2pcf = p2pcf - console.log(p2pcf); + console.log("client id:", p2pcf.clientId); + + const removePeerUi = clientId => { + document.getElementById(clientId)?.remove() + document.getElementById(`${clientId}-video`)?.remove() + } + + const addPeerUi = sessionId => { + if (document.getElementById(sessionId)) return + + const peerEl = document.createElement('div') + peerEl.style = 'display: flex;' + + const name = document.createElement('div') + name.innerText = sessionId.substring(0, 5) + + peerEl.id = sessionId + peerEl.appendChild(name) + + document.getElementById('peers').appendChild(peerEl) + } + const addMessage = message => { + const messageEl = document.createElement('div') + messageEl.innerText = message + + document.getElementById('messages').appendChild(messageEl) + } + let stream + p2pcf.on('peerconnect', peer => { + console.log('Peer connect', peer.id, peer) + console.log(peer.client_id); + + if (stream) { + peer.addStream(stream) + } + peer.on('track', (track, stream) => { + console.log('got track', track) + const video = document.createElement('video') + video.id = `${peer.id}-video` + video.srcObject = stream + video.setAttribute('playsinline', true) + document.getElementById('videos').appendChild(video) + video.play() + }) + addPeerUi(peer.id) + }) + + p2pcf.on('peerclose', peer => { + console.log('Peer close', peer.id, peer) + removePeerUi(peer.id) + }) + + p2pcf.on('msg', (peer, data) => { + console.log(new TextDecoder('utf-8').decode(data)); + addMessage( + peer.id.substring(0, 5) + ': ' + new TextDecoder('utf-8').decode(data) + ) + }) + const go = () => { + document.getElementById('session-id').innerText = + p2pcf.sessionId.substring(0, 5) + '@' + p2pcf.roomId + ':' + + document.getElementById('send-button').addEventListener('click', () => { + const box = document.getElementById('send-box') + addMessage(p2pcf.sessionId.substring(0, 5) + ': ' + box.value) + p2pcf.broadcast(new TextEncoder().encode(box.value)) + box.value = '' + }) + + document + .getElementById('video-button') + .addEventListener('click', async () => { + stream = await navigator.mediaDevices.getUserMedia({ video: true }) + + for (const peer of p2pcf.peers.values()) { + peer.addStream(stream) + } + }) + + p2pcf.start() + } + if ( + document.readyState === 'complete' || + document.readyState === 'interactive' + ) { + go() + } else { + window.addEventListener('DOMContentLoaded', go, { once: true }) + } + + return ( <> +
+

Peers

+
+

Messages

+
+
Send Button
+
Video Button
); }; From 0c6cd30adca38c2710ebf96dbf087f0c8aab943d Mon Sep 17 00:00:00 2001 From: antpb Date: Tue, 23 Aug 2022 18:30:44 -0500 Subject: [PATCH 03/48] working webrtc movement --- blocks/environment/components/Controls.js | 12 ++++++---- .../components/EnvironmentFront.js | 24 +++++++++++-------- blocks/environment/components/Networking.js | 10 ++------ 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 697f387..299fd0f 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -18,25 +18,29 @@ const Controls = (props) => { controlsRef.current.moveForward( velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - p2pcf.broadcast(new TextEncoder().encode(JSON.stringify(position))) + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveLeft ) { controlsRef.current.moveRight( -velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - p2pcf.broadcast(new TextEncoder().encode(JSON.stringify(position))) + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveBackward ) { controlsRef.current.moveForward( -velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - p2pcf.broadcast(new TextEncoder().encode(JSON.stringify(position))) + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveRight ) { controlsRef.current.moveRight( velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - p2pcf.broadcast(new TextEncoder().encode(JSON.stringify(position))) + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); } } } ); diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 9d9a56f..94f2dc4 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -25,18 +25,15 @@ import { useAspect } from '@react-three/drei' function Participant( participant ) { const [participantPosition, setParticipantPosition] = useState([]); - console.log("welcome,", participant.name); participant.p2pcf.on('msg', (peer, data) => { - let newPosition = new TextDecoder('utf-8').decode(data); - // console.log("some position data", new TextDecoder('utf-8').decode(data)); - const arrayPosition = JSON.parse( newPosition ); - console.log("some position data", arrayPosition); - - setParticipantPosition(arrayPosition); + let finalData = new TextDecoder('utf-8').decode(data); + const participantData = JSON.parse( finalData ); + console.log(participantData[peer.client_id][0]["position"]); + setParticipantPosition(participantData[peer.client_id][0]["position"]); }) return ( - + +
+

Peers

+
+

Messages

+
+
Send Button
+
Video Button
{ }) p2pcf.on('msg', (peer, data) => { - console.log(new TextDecoder('utf-8').decode(data)); + // let finalData = new TextDecoder('utf-8').decode(data); + // console.log(JSON.parse(finalData)); addMessage( peer.id.substring(0, 5) + ': ' + new TextDecoder('utf-8').decode(data) ) @@ -108,13 +109,6 @@ const Networking = (props) => { return ( <> -
-

Peers

-
-

Messages

-
-
Send Button
-
Video Button
); }; From ea3b04f57045d7c2c7543e13081055bc82c088f5 Mon Sep 17 00:00:00 2001 From: antpb Date: Thu, 25 Aug 2022 21:44:25 -0500 Subject: [PATCH 04/48] adds rotation data to messages --- blocks/environment/components/Controls.js | 21 ++++++-- .../components/EnvironmentFront.js | 28 ++++------- blocks/environment/components/Networking.js | 10 ++-- blocks/environment/frontend.js | 49 ++++++++++++------- 4 files changed, 64 insertions(+), 44 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 299fd0f..ed1f5ac 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -18,28 +18,32 @@ const Controls = (props) => { controlsRef.current.moveForward( velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]}]}`; + let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveLeft ) { controlsRef.current.moveRight( -velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]}]}`; + let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveBackward ) { controlsRef.current.moveForward( -velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]}]}`; + let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveRight ) { controlsRef.current.moveRight( velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]}]}`; + let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } } @@ -122,6 +126,15 @@ const Controls = (props) => { } ); } } } + onChange={ () => { + if(p2pcf && controlsRef){ + let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; + let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); + console.log(rotation); + } + }} ref={ controlsRef } /> ); diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 94f2dc4..5248e87 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -20,20 +20,21 @@ import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' import TeleportTravel from './TeleportTravel'; import defaultVRM from '../../../inc/avatars/mummy.vrm'; import Controls from './Controls'; -import Networking from './Networking'; import { useAspect } from '@react-three/drei' function Participant( participant ) { - const [participantPosition, setParticipantPosition] = useState([]); + const theScene = useThree(); participant.p2pcf.on('msg', (peer, data) => { let finalData = new TextDecoder('utf-8').decode(data); const participantData = JSON.parse( finalData ); - console.log(participantData[peer.client_id][0]["position"]); - setParticipantPosition(participantData[peer.client_id][0]["position"]); - }) - + const participantObject = theScene.scene.getObjectByName(peer.client_id); + if(participantObject){ + participantObject.position.set(participantData[peer.client_id][0]["position"][0], participantData[peer.client_id][0]["position"][1], participantData[peer.client_id][0]["position"][2] ); + participantObject.rotation.set(participantData[peer.client_id][1]["rotation"][0], participantData[peer.client_id][1]["rotation"][1], participantData[peer.client_id][1]["rotation"][2] ); + } + }); return ( - + { participants && participants.map((item, index)=>{ - console.log("stuff", item); + // console.log("stuff", item); return ( <> -
-

Peers

-
-

Messages

-
-
Send Button
-
Video Button
- { const p2pcf = new P2PCF( 'user-' + userProfileName, document.location.hash.substring(1), - { workerUrl: "https://p2pcf.sxpdigital.workers.dev/" } - ) - window.p2pcf = p2pcf + { + workerUrl: "https://p2pcf.sxpdigital.workers.dev/", + slowPollingRateMs: 5000, + fastPollingRateMs: 1500 + } + ); + window.p2pcf = p2pcf; console.log("client id:", p2pcf.clientId); const removePeerUi = clientId => { diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index 737da4b..6013f42 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -1,6 +1,7 @@ const { Component, render } = wp.element; import EnvironmentFront from './components/EnvironmentFront'; +import Networking from './components/Networking'; const threeApp = document.querySelectorAll( '.three-object-three-app-environment' ); const modelsToAdd = document.querySelectorAll( '.three-object-three-app-model-block' ); @@ -47,24 +48,36 @@ threeApp.forEach( ( threeApp ) => { : ''; render( - , + <> +
+

Peers

+
+

Messages

+
+
Send Button
+
Video Button
+ + , threeApp ); } From 79ee101c10ccfc3fcc600e13835a58e17a73e125 Mon Sep 17 00:00:00 2001 From: antpb Date: Thu, 25 Aug 2022 22:14:06 -0500 Subject: [PATCH 05/48] let there be janky avatars --- blocks/environment/components/Controls.js | 2 +- .../components/EnvironmentFront.js | 58 +++++++++++++------ 2 files changed, 41 insertions(+), 19 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index ed1f5ac..5488cbd 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -13,7 +13,7 @@ const Controls = (props) => { const [ moveRight, setMoveRight ] = useState( false ); useFrame( () => { - const velocity = 0.5; + const velocity = 0.4; if ( moveForward ) { controlsRef.current.moveForward( velocity ); if(p2pcf){ diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 5248e87..92cb115 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -23,24 +23,46 @@ import Controls from './Controls'; import { useAspect } from '@react-three/drei' function Participant( participant ) { - const theScene = useThree(); - participant.p2pcf.on('msg', (peer, data) => { - let finalData = new TextDecoder('utf-8').decode(data); - const participantData = JSON.parse( finalData ); - const participantObject = theScene.scene.getObjectByName(peer.client_id); - if(participantObject){ - participantObject.position.set(participantData[peer.client_id][0]["position"][0], participantData[peer.client_id][0]["position"][1], participantData[peer.client_id][0]["position"][2] ); - participantObject.rotation.set(participantData[peer.client_id][1]["rotation"][0], participantData[peer.client_id][1]["rotation"][1], participantData[peer.client_id][1]["rotation"][2] ); - } - }); - return ( - - - - - ); + + + // Player controller. + const fallbackURL = threeObjectPlugin + defaultVRM; + const playerURL = userData.vrm ? userData.vrm : fallbackURL + + const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { + loader.register( ( parser ) => { + return new VRMLoaderPlugin( parser ); + } ); + } ); + + if(someSceneState?.userData?.gltfExtensions?.VRM){ + const playerController = someSceneState.userData.vrm; + VRMUtils.rotateVRM0( playerController ); + const rotationVRM = playerController.scene.rotation.y; + playerController.scene.rotation.set( 0, rotationVRM, 0 ); + playerController.scene.scale.set( 1, 1, 1 ); + const theScene = useThree(); + participant.p2pcf.on('msg', (peer, data) => { + let finalData = new TextDecoder('utf-8').decode(data); + const participantData = JSON.parse( finalData ); + const participantObject = theScene.scene.getObjectByName(peer.client_id); + if(participantObject){ + participantObject.position.set(participantData[peer.client_id][0]["position"][0], participantData[peer.client_id][0]["position"][1], participantData[peer.client_id][0]["position"][2] ); + participantObject.rotation.set(participantData[peer.client_id][1]["rotation"][0], participantData[peer.client_id][1]["rotation"][1], participantData[peer.client_id][1]["rotation"][2] ); + } + }); + return ( + <> + {playerController && } + {/* + + + */} + + ); + } } function SavedObject( props ) { From 9ee9510c5df21d8ed0411515d7262690771b5559 Mon Sep 17 00:00:00 2001 From: Anthony Burchell Date: Thu, 25 Aug 2022 23:29:19 -0500 Subject: [PATCH 06/48] clean up comments --- .../components/EnvironmentFront.js | 62 +------------------ blocks/environment/components/Networking.js | 2 - 2 files changed, 1 insertion(+), 63 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 92cb115..515a3e1 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -5,14 +5,11 @@ import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; import { Physics, RigidBody } from "@react-three/rapier"; import { - OrthographicCamera, - OrbitControls, useAnimations, } from '@react-three/drei'; import { GLTFAudioEmitterExtension } from 'three-omi'; import { VRCanvas, - ARCanvas, DefaultXRControllers, Hands, } from '@react-three/xr'; @@ -23,9 +20,7 @@ import Controls from './Controls'; import { useAspect } from '@react-three/drei' function Participant( participant ) { - - - // Player controller. + // Participant VRM. const fallbackURL = threeObjectPlugin + defaultVRM; const playerURL = userData.vrm ? userData.vrm : fallbackURL @@ -54,12 +49,6 @@ function Participant( participant ) { return ( <> {playerController && } - {/* - - - */} ); } @@ -78,7 +67,6 @@ function SavedObject( props ) { }) } - const [ url, set ] = useState( props.url ); useEffect( () => { setTimeout( () => set( props.url ), 2000 ); @@ -159,7 +147,6 @@ function SavedObject( props ) { return(<> { participants && participants.map((item, index)=>{ - // console.log("stuff", item); return ( <> ); } - // if ( props.deviceTarget === '2d' ) { - // return ( - // <> - // - // - // - // - // { props.threeUrl && ( - // - // ) } - // - // - // - // { props.hasTip === '1' ? ( - //

Click and drag ^

- // ) : ( - //

- // ) } - // - // ); - // } } diff --git a/blocks/environment/components/Networking.js b/blocks/environment/components/Networking.js index f2c012a..70923dc 100644 --- a/blocks/environment/components/Networking.js +++ b/blocks/environment/components/Networking.js @@ -71,8 +71,6 @@ const Networking = (props) => { }) p2pcf.on('msg', (peer, data) => { - // let finalData = new TextDecoder('utf-8').decode(data); - // console.log(JSON.parse(finalData)); addMessage( peer.id.substring(0, 5) + ': ' + new TextDecoder('utf-8').decode(data) ) From d91736b45de522aff9757659978f89d602370e97 Mon Sep 17 00:00:00 2001 From: antpb Date: Sat, 27 Aug 2022 23:21:56 -0500 Subject: [PATCH 07/48] adds physics controller movement --- blocks/environment/components/Controls.js | 44 ++++++++-- .../components/EnvironmentFront.js | 67 ++++++++------ blocks/environment/components/Player.js | 87 +++++++++++++++++++ yarn.lock | 6 +- 4 files changed, 166 insertions(+), 38 deletions(-) create mode 100644 blocks/environment/components/Player.js diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 5488cbd..fdb3c09 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -1,7 +1,10 @@ import React, { useRef, useState } from 'react'; +import { Raycaster, Vector3 } from 'three'; + import { useFrame } from '@react-three/fiber'; -import { PointerLockControls } from '@react-three/drei'; +import { PointerLockControls, OrbitControls } from '@react-three/drei'; import previewOptions from '@wordpress/block-editor/build/components/preview-options'; +import { RigidBody, MeshCollider, useRapier, BallCollider, useRigidBody, RigidBodyApi, useCollider } from '@react-three/rapier'; const Controls = (props) => { const p2pcf = window.p2pcf; @@ -11,10 +14,22 @@ const Controls = (props) => { const [ moveBackward, setMoveBackward ] = useState( false ); const [ moveLeft, setMoveLeft ] = useState( false ); const [ moveRight, setMoveRight ] = useState( false ); + const [ jump, setJump ] = useState( false ); + const currentRigidbody = useRigidBody(); + const {world} = useRapier(); + + + // const rigidBody = useRapier(); + // const { world } = useRapier(); useFrame( () => { + const playerThing = world.getRigidBody(props.something.current.handle); + playerThing.setRotation({ x: controlsRef.current.camera.rotation.x, y:controlsRef.current.camera.rotation.y, z: controlsRef.current.camera.rotation, w: 0 }) + const velocity = 0.4; if ( moveForward ) { + playerThing.lockRotations(true); + playerThing.applyImpulse({x:0, y:0, z:0.1}, true); controlsRef.current.moveForward( velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; @@ -23,6 +38,8 @@ const Controls = (props) => { p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveLeft ) { + playerThing.lockRotations(true); + playerThing.applyImpulse({x:0.1, y:0, z:0}, true); controlsRef.current.moveRight( -velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; @@ -31,6 +48,8 @@ const Controls = (props) => { p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveBackward ) { + playerThing.lockRotations(true); + playerThing.applyImpulse({x:0, y:0, z:-0.1}, true); controlsRef.current.moveForward( -velocity ); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; @@ -39,17 +58,21 @@ const Controls = (props) => { p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveRight ) { + playerThing.lockRotations(true); + playerThing.applyImpulse({x:-0.1, y:0, z:-0}, true); controlsRef.current.moveRight( velocity ); + // rigidBody.applyImpulse(controlsRef.current.vec); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } + } else if ( jump ) { } } ); - const onKeyDown = function ( event ) { + const onKeyDown = function ( event, props ) { switch ( event.code ) { case 'ArrowUp': case 'KeyW': @@ -71,12 +94,12 @@ const Controls = (props) => { setMoveRight( true ); break; case "Space": - window.addEventListener('keydown', (e) => { - if (e.keyCode === 32 && e.target === document.body) { - e.preventDefault(); - } - }); - console.log("boing"); + window.addEventListener('keydown', (e) => { + if (e.keyCode === 32 && e.target === document.body) { + e.preventDefault(); + } + }); + setJump(true); break; default: return; @@ -100,6 +123,10 @@ const Controls = (props) => { setMoveBackward( false ); break; + case "Space": + setJump(false); + break; + case 'ArrowRight': case 'KeyD': setMoveRight( false ); @@ -132,7 +159,6 @@ const Controls = (props) => { let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); - console.log(rotation); } }} ref={ controlsRef } diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 515a3e1..aaf453c 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -2,7 +2,7 @@ import * as THREE from 'three'; import React, { Suspense, useRef, useState, useEffect } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { Physics, RigidBody } from "@react-three/rapier"; +import { Physics, RigidBody, MeshCollider, Debug } from "@react-three/rapier"; import { useAnimations, @@ -15,8 +15,8 @@ import { } from '@react-three/xr'; import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' import TeleportTravel from './TeleportTravel'; +import Player from './Player'; import defaultVRM from '../../../inc/avatars/mummy.vrm'; -import Controls from './Controls'; import { useAspect } from '@react-three/drei' function Participant( participant ) { @@ -46,6 +46,17 @@ function Participant( participant ) { participantObject.rotation.set(participantData[peer.client_id][1]["rotation"][0], participantData[peer.client_id][1]["rotation"][1], participantData[peer.client_id][1]["rotation"][2] ); } }); + + participant.p2pcf.on('peerclose', peer => { + const participantObject = theScene.scene.getObjectByName(peer.client_id); + // theScene.scene.remove(participantObject.name); + theScene.scene.remove(...participantObject.children); + // console.log(participantObject); + console.log('Peer close', peer.id, peer); + // removePeerUi(peer.id) + }) + + return ( <> {playerController && } @@ -58,7 +69,7 @@ function SavedObject( props ) { const [ participants, setParticipant ] = useState([]); const meshRef = useRef(); - console.log(participants); + // console.log(participants); const p2pcf = window.p2pcf; if(p2pcf){ @@ -145,7 +156,9 @@ function SavedObject( props ) { gltf.scene.rotation.set( 0, props.rotationY, 0 ); gltf.scene.scale.set( props.scale, props.scale, props.scale ); return(<> - + {/* */} + + {/* */} { participants && participants.map((item, index)=>{ return ( <> @@ -241,7 +254,7 @@ function ThreeImage( threeImage ) { } function ThreeVideo(threeVideo) { - console.log(threeVideo); + // console.log(threeVideo); const clicked = true; const [video] = useState(() => Object.assign(document.createElement('video'), { src: threeVideo.url, crossOrigin: 'Anonymous', loop: true, muted: true })); @@ -260,8 +273,8 @@ function ThreeVideo(threeVideo) { function Floor( props ) { return ( - - + + - - + + + { props.threeUrl && ( <> - - - + + { props.threeUrl && ( <> @@ -505,10 +517,13 @@ export default function EnvironmentFront( props ) { rotationZ={modelRotationZ} />); })} + + + - - - ) } diff --git a/blocks/environment/components/Player.js b/blocks/environment/components/Player.js new file mode 100644 index 0000000..1fa6dfe --- /dev/null +++ b/blocks/environment/components/Player.js @@ -0,0 +1,87 @@ +import { Raycaster, Vector3 } from 'three'; +import { useXR, Interactive } from '@react-three/xr'; +import { useFrame, useLoader, useThree } from '@react-three/fiber'; +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import Controls from './Controls'; + +import { useCallback, useRef, useState } from 'react'; +import { RigidBody, MeshCollider, useRapier, usePhysics, useRigidBody, BallCollider, RigidBodyApi } from '@react-three/rapier'; +import defaultVRM from '../../../inc/avatars/mummy.vrm'; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' + +export default function Player( props ) { + + const { camera, scene } = useThree(); + const participantObject = scene.getObjectByName("playerOne"); + console.log(participantObject); + const [ rapierId, setRapierId ] = useState(""); + const [ contactPoint, setContactPoint ] = useState(""); + const rigidRef = useRef(); + + useFrame( () => { + // console.log(rigidBodyEvents); + if(participantObject){ + // console.log(participantObject.parent.position.x, participantObject.parent.position.y, participantObject.parent.position.z); + camera.position.set(participantObject.parent.position.x, participantObject.parent.position.y + 1, participantObject.parent.position.z - 3); + } + } ); + + // Participant VRM. + const fallbackURL = threeObjectPlugin + defaultVRM; + const playerURL = userData.vrm ? userData.vrm : fallbackURL + + const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { + loader.register( ( parser ) => { + return new VRMLoaderPlugin( parser ); + } ); + } ); + + if(someSceneState?.userData?.gltfExtensions?.VRM){ + const playerController = someSceneState.userData.vrm; + VRMUtils.rotateVRM0( playerController ); + const rotationVRM = playerController.scene.rotation.y; + playerController.scene.rotation.set( 0, rotationVRM, 0 ); + playerController.scene.scale.set( 1, 1, 1 ); + + return ( + <> + {playerController && + ( + <> + { + // console.log("data1", target.colliderSet.map.data[1]); + // console.log("target", target); + // console.log("handle", target.handle); + console.log("should only be once"); + setRapierId(target.colliderSet.map.data[1]); + setContactPoint(manifold.solverContactPoint(0)); + }} + onCollisionExit={ () => { + console.log('Collision at world position'); + }} + > + + + + + + ) + } + + ); + } +} diff --git a/yarn.lock b/yarn.lock index b8ca723..1348811 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1809,9 +1809,9 @@ zustand "^3.7.1" "@react-three/rapier@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@react-three/rapier/-/rapier-0.4.1.tgz#66382f28b3ebd9b25cbaa21de37315428f5d98c5" - integrity sha512-1bL7RRMRI7COiqHjf1g1XD4FKSovRPm9YwbCqTBRIQLfeOhJATVRwSMwEQotN466ZGOzEeZ+FTtITU05AE2+3Q== + version "0.4.3" + resolved "https://registry.yarnpkg.com/@react-three/rapier/-/rapier-0.4.3.tgz#e25f5c3fda91709be5fbd3459636fbf56b140e94" + integrity sha512-TMieNRHNvWp1CY2v9vIWftsyi5TJsCqvN3dRGqOBajqc2n5Y8spa1Kg8Y9Zx5lbc33/uH2rX1uTaI0QwU/E3OQ== dependencies: "@dimforge/rapier3d-compat" "0.8.1" use-asset "^1.0.4" From 33015596c99debcd760b4932d20b3475b3d4c12a Mon Sep 17 00:00:00 2001 From: Anthony Burchell Date: Mon, 29 Aug 2022 08:29:29 -0500 Subject: [PATCH 08/48] dont lose the weekends work this pr adds raycast based controller --- blocks/environment/components/Controls.js | 62 +++++++++++++++---- .../components/EnvironmentFront.js | 6 +- blocks/environment/components/Player.js | 9 ++- blocks/environment/frontend.js | 4 +- package.json | 2 +- yarn.lock | 8 +-- 6 files changed, 63 insertions(+), 28 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index fdb3c09..a968862 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -1,5 +1,5 @@ import React, { useRef, useState } from 'react'; -import { Raycaster, Vector3 } from 'three'; +import { Raycaster, Vector3, Math } from 'three'; import { useFrame } from '@react-three/fiber'; import { PointerLockControls, OrbitControls } from '@react-three/drei'; @@ -16,21 +16,36 @@ const Controls = (props) => { const [ moveRight, setMoveRight ] = useState( false ); const [ jump, setJump ] = useState( false ); const currentRigidbody = useRigidBody(); - const {world} = useRapier(); - - - // const rigidBody = useRapier(); - // const { world } = useRapier(); + const {world, rapier} = useRapier(); + let ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }); useFrame( () => { - const playerThing = world.getRigidBody(props.something.current.handle); - playerThing.setRotation({ x: controlsRef.current.camera.rotation.x, y:controlsRef.current.camera.rotation.y, z: controlsRef.current.camera.rotation, w: 0 }) + const playerThing = world.getRigidBody(props.something.current.handle); + const playerThingColliders = world.getCollider(props.something.current.handle); + + // playerThing.restrictRotations({enableX: false, enableY: false, enableZ: false}, true); + playerThing.lockRotations(true, true); + // playerThing.setRotation({x: Math.radToDeg(controlsRef.current.camera.rotation.x), y: Math.radToDeg(controlsRef.current.camera.rotation.y), z: Math.radToDeg(controlsRef.current.camera.rotation.z), w: 0}, true); + ray.origin.x = playerThing.translation().x + ray.origin.y = playerThing.translation().y + ray.origin.z = playerThing.translation().z const velocity = 0.4; + world.raw().step(); + let maxToi = 14; + let solid = true; + if ( moveForward ) { - playerThing.lockRotations(true); - playerThing.applyImpulse({x:0, y:0, z:0.1}, true); + // playerThing.applyImpulse({x:0, y:0, z:0.1}, true); controlsRef.current.moveForward( velocity ); + let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); + + if (hit) { + let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` + console.log("hit!", hitPoint); + playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z - 3 }); + + } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; @@ -39,8 +54,15 @@ const Controls = (props) => { } } else if ( moveLeft ) { playerThing.lockRotations(true); - playerThing.applyImpulse({x:0.1, y:0, z:0}, true); controlsRef.current.moveRight( -velocity ); + let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); + + if (hit) { + let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` + console.log("hit!", hitPoint); + playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z - 3 }); + + } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; @@ -49,8 +71,15 @@ const Controls = (props) => { } } else if ( moveBackward ) { playerThing.lockRotations(true); - playerThing.applyImpulse({x:0, y:0, z:-0.1}, true); controlsRef.current.moveForward( -velocity ); + let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); + + if (hit) { + let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` + console.log("hit!", hitPoint); + playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z - 3 }); + + } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; @@ -59,8 +88,15 @@ const Controls = (props) => { } } else if ( moveRight ) { playerThing.lockRotations(true); - playerThing.applyImpulse({x:-0.1, y:0, z:-0}, true); controlsRef.current.moveRight( velocity ); + let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); + + if (hit) { + let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` + console.log("hit!", hitPoint); + playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z - 3 }); + + } // rigidBody.applyImpulse(controlsRef.current.vec); if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index aaf453c..9432c6e 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -156,9 +156,9 @@ function SavedObject( props ) { gltf.scene.rotation.set( 0, props.rotationY, 0 ); gltf.scene.scale.set( props.scale, props.scale, props.scale ); return(<> - {/* */} + - {/* */} + { participants && participants.map((item, index)=>{ return ( <> @@ -518,7 +518,7 @@ export default function EnvironmentFront( props ) { />); })} diff --git a/blocks/environment/components/Player.js b/blocks/environment/components/Player.js index 1fa6dfe..b98b248 100644 --- a/blocks/environment/components/Player.js +++ b/blocks/environment/components/Player.js @@ -13,7 +13,7 @@ export default function Player( props ) { const { camera, scene } = useThree(); const participantObject = scene.getObjectByName("playerOne"); - console.log(participantObject); + // console.log(participantObject) const [ rapierId, setRapierId ] = useState(""); const [ contactPoint, setContactPoint ] = useState(""); const rigidRef = useRef(); @@ -22,7 +22,7 @@ export default function Player( props ) { // console.log(rigidBodyEvents); if(participantObject){ // console.log(participantObject.parent.position.x, participantObject.parent.position.y, participantObject.parent.position.z); - camera.position.set(participantObject.parent.position.x, participantObject.parent.position.y + 1, participantObject.parent.position.z - 3); + // camera.position.set(participantObject.parent.position.x, participantObject.parent.position.y + 1, participantObject.parent.position.z - 3); } } ); @@ -50,7 +50,7 @@ export default function Player( props ) { <> { - console.log('Collision at world position'); + // console.log('Collision at world position'); }} > {
Send Button
Video Button
- + /> */} Date: Mon, 29 Aug 2022 22:51:14 -0500 Subject: [PATCH 09/48] adds rotations on key press --- blocks/environment/components/Controls.js | 11 +++++++++-- blocks/environment/components/Player.js | 4 ++-- blocks/environment/frontend.js | 4 ++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index a968862..5aa88ad 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -39,12 +39,13 @@ const Controls = (props) => { // playerThing.applyImpulse({x:0, y:0, z:0.1}, true); controlsRef.current.moveForward( velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); - + playerThing.lockRotations(true, true); + playerThing.setRotation({x: 0, y: 1, z: 0, w: 0}, true); + if (hit) { let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` console.log("hit!", hitPoint); playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z - 3 }); - } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; @@ -54,6 +55,8 @@ const Controls = (props) => { } } else if ( moveLeft ) { playerThing.lockRotations(true); + playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); + controlsRef.current.moveRight( -velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); @@ -71,6 +74,8 @@ const Controls = (props) => { } } else if ( moveBackward ) { playerThing.lockRotations(true); + playerThing.setRotation({x: 0, y: 0, z: 0, w: -1}, true); + controlsRef.current.moveForward( -velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); @@ -88,6 +93,8 @@ const Controls = (props) => { } } else if ( moveRight ) { playerThing.lockRotations(true); + playerThing.setRotation({x: 0, y: 0.707107, z: 0, w: 0.707107}, true); + controlsRef.current.moveRight( velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); diff --git a/blocks/environment/components/Player.js b/blocks/environment/components/Player.js index b98b248..443e847 100644 --- a/blocks/environment/components/Player.js +++ b/blocks/environment/components/Player.js @@ -22,7 +22,7 @@ export default function Player( props ) { // console.log(rigidBodyEvents); if(participantObject){ // console.log(participantObject.parent.position.x, participantObject.parent.position.y, participantObject.parent.position.z); - // camera.position.set(participantObject.parent.position.x, participantObject.parent.position.y + 1, participantObject.parent.position.z - 3); + camera.position.setY( participantObject.parent.position.y + 1); } } ); @@ -57,7 +57,7 @@ export default function Player( props ) { type={"dynamic"} onCollisionEnter={ ({manifold, target}) => { // console.log("data1", target.colliderSet.map.data[1]); - // console.log("target", target); + console.log("target", target); // console.log("handle", target.handle); setRapierId(target.colliderSet.map.data[1]); setContactPoint(manifold.solverContactPoint(0)); diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index d3724ed..c432bf5 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -49,14 +49,14 @@ threeApp.forEach( ( threeApp ) => { render( <> -
+ {/*

Peers

Messages

Send Button
Video Button
- {/* */} From ee6fa3a8c14ad64c8b3842faaf75337155883c9d Mon Sep 17 00:00:00 2001 From: Anthony Burchell Date: Fri, 2 Sep 2022 18:16:34 -0500 Subject: [PATCH 10/48] Usdz support (#9) * initial pass at usdz support using 144 threejs * add file type handling for uploads and prepare 062 * Adds changelog --- blocks/three-object-block/Edit.js | 1 + .../components/ThreeObjectEdit.js | 15 +++++-- .../components/ThreeObjectFront.js | 9 ++++ inc/functions.php | 42 ++++++++----------- package.json | 4 +- readme.txt | 8 +++- three-object-viewer.php | 2 +- yarn.lock | 8 ++-- 8 files changed, 54 insertions(+), 35 deletions(-) diff --git a/blocks/three-object-block/Edit.js b/blocks/three-object-block/Edit.js index 9127305..004aa28 100644 --- a/blocks/three-object-block/Edit.js +++ b/blocks/three-object-block/Edit.js @@ -68,6 +68,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { const ALLOWED_MEDIA_TYPES = [ 'model/gltf-binary', 'application/octet-stream', + 'model/vnd.usdz+zip' ]; const MyDropZone = () => { diff --git a/blocks/three-object-block/components/ThreeObjectEdit.js b/blocks/three-object-block/components/ThreeObjectEdit.js index e21206c..5e1b2ce 100644 --- a/blocks/three-object-block/components/ThreeObjectEdit.js +++ b/blocks/three-object-block/components/ThreeObjectEdit.js @@ -1,4 +1,5 @@ import * as THREE from 'three'; +import { USDZLoader } from 'three/examples/jsm/loaders/USDZLoader'; import React, { Suspense, useRef, useState, useEffect } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; @@ -14,6 +15,7 @@ import { GLTFAudioEmitterExtension } from 'three-omi'; function ThreeObject( props ) { const [ url, set ] = useState( props.url ); + const {scene} = useThree(); useEffect( () => { setTimeout( () => set( props.url ), 2000 ); }, [] ); @@ -23,6 +25,14 @@ function ThreeObject( props ) { camera.add( listener ); } ); + // USDZ loader. + if(props.url.split(/[#?]/)[0].split('.').pop().trim() === "usdz") { + + const usdz = useLoader( USDZLoader, url); + + return ; + } + const gltf = useLoader( GLTFLoader, url, ( loader ) => { loader.register( ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) @@ -31,10 +41,8 @@ function ThreeObject( props ) { return new VRMLoaderPlugin( parser ); - } ); - + } ); } ); - const { actions } = useAnimations( gltf.animations, gltf.scene ); const animationList = props.animations ? props.animations.split( ',' ) : ''; @@ -58,6 +66,7 @@ function ThreeObject( props ) { vrm.scene.scale.set( props.scale, props.scale, props.scale ); return ; } + gltf.scene.position.set( 0, props.positionY, 0 ); gltf.scene.rotation.set( 0, props.rotationY, 0 ); gltf.scene.scale.set( props.scale, props.scale, props.scale ); diff --git a/blocks/three-object-block/components/ThreeObjectFront.js b/blocks/three-object-block/components/ThreeObjectFront.js index 6911287..95f6b5a 100644 --- a/blocks/three-object-block/components/ThreeObjectFront.js +++ b/blocks/three-object-block/components/ThreeObjectFront.js @@ -3,6 +3,7 @@ import React, { Suspense, useRef, useState, useEffect } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; import { Physics, RigidBody } from "@react-three/rapier"; +import { USDZLoader } from 'three/examples/jsm/loaders/USDZLoader'; import { OrthographicCamera, @@ -30,6 +31,14 @@ function SavedObject( props ) { camera.add( listener ); } ); + // USDZ loader. + if(props.url.split(/[#?]/)[0].split('.').pop().trim() === "usdz") { + + const usdz = useLoader( USDZLoader, url); + + return ; + } + const gltf = useLoader( GLTFLoader, url, ( loader ) => { loader.register( ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) diff --git a/inc/functions.php b/inc/functions.php index 8e5926f..e9291ef 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -37,9 +37,9 @@ function threeobjectviewer_enqueue_threeobjectloaderinit() { ); } -add_filter('upload_mimes', 'threeobjectviewer_add_file_types_to_uploads', 1, 1); +add_filter('upload_mimes', __NAMESPACE__ . '\threeobjectviewer_add_file_types_to_uploads', 10, 4); /** -* Adds glb and vrm types to allowed uploads. +* Adds glb vrm and usdz types to allowed uploads. */ function threeobjectviewer_add_file_types_to_uploads($file_types){ $new_filetypes = array(); @@ -47,31 +47,25 @@ function threeobjectviewer_add_file_types_to_uploads($file_types){ // $new_filetypes['glb'] = 'model/gltf-binary'; $new_filetypes['glb'] = 'application/octet-stream'; $new_filetypes['vrm'] = 'application/octet-stream'; - $file_types = array_merge($file_types, $new_filetypes ); - return $file_types; + $new_filetypes['usdz'] = 'model/vnd.usdz+zip'; + return $new_filetypes; } -add_filter('wp_check_filetype_and_ext', __NAMESPACE__ . '\threeobjectviewer_checkfiletypes', 10, 4); -/** - * Check the filetypes - */ -function threeobjectviewer_checkfiletypes($data, $file, $filename, $mimes) { - if (!$data['type']) { - $wp_filetype = wp_check_filetype($filename, $mimes); - $ext = $wp_filetype['ext']; - $type = $wp_filetype['type']; - $proper_filename = $filename; - if ($type && 0 === strpos($type, 'model/') && $ext !== 'glb') { - $ext = $type = false; - } - if ($type && 0 === strpos($type, 'model/') && $ext !== 'vrm') { - $ext = $type = false; - } - $data['ext'] = $ext; - $data['type'] = $type; - $data['proper_filename'] = $proper_filename; +add_filter( 'wp_check_filetype_and_ext', __NAMESPACE__ . '\three_object_viewer_check_for_usdz', 10, 4 ); +function three_object_viewer_check_for_usdz( $types, $file, $filename, $mimes ) { + if ( false !== strpos( $filename, '.usdz' ) ) { + $types['ext'] = 'usdz'; + $types['type'] = 'model/vnd.usdz+zip'; + } + if ( false !== strpos( $filename, '.glb' ) ) { + $types['ext'] = 'glb'; + $types['type'] = 'application/octet-stream'; + } + if ( false !== strpos( $filename, '.vrm' ) ) { + $types['ext'] = 'vrm'; + $types['type'] = 'application/octet-stream'; } - return $data; + return $types; } add_action('wp_enqueue_scripts', __NAMESPACE__ . '\threeobjectviewer_frontend_assets'); diff --git a/package.json b/package.json index 0cc79ba..b7eb1f5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@antpb/three-object-viewer", "private": true, - "version": "0.6.0", + "version": "0.6.2", "license": "GPL-2.0-or-later", "main": "build/index.js", "scripts": { @@ -30,7 +30,7 @@ "@wordpress/components": "^14", "@wordpress/element": "^3", "@wordpress/i18n": "^4", - "three": "^0.137.2", + "three": "0.144.0", "three-omi": "^0.1.5" } } diff --git a/readme.txt b/readme.txt index 233f18d..d01fbdd 100644 --- a/readme.txt +++ b/readme.txt @@ -2,7 +2,7 @@ Requires at least: 5.7 Tested up to: 6.0 Requires PHP: 7.2 -Stable tag: 0.6.1 +Stable tag: 0.6.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Author: antpb @@ -44,6 +44,12 @@ It can also be installed manually using a zip file. == Changelog == += 0.6.2 = + +* Adds USDZ support to block (note, usdz files must not contain usdc files) +* Updates Three.js to 144 +* Allows uploads of usdz files + = 0.6.1 = * Update rigibody types for vr objects. Sorry for the bouncy files! :) diff --git a/three-object-viewer.php b/three-object-viewer.php index e9f7d4e..b8c5a81 100644 --- a/three-object-viewer.php +++ b/three-object-viewer.php @@ -3,7 +3,7 @@ * Plugin Name: Three Object Viewer * Plugin URI: https://3ov.xyz/ * Description: A plugin for viewing 3D files with support for WebXR and Open Metaverse Interoperability GLTF Extensions. -* Version: 0.6.1 +* Version: 0.6.2 * Requires at least: 5.7 * Requires PHP: 7.1.0 * Author: antpb diff --git a/yarn.lock b/yarn.lock index 8bba3f3..3644942 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11220,10 +11220,10 @@ three-stdlib@^2.8.6, three-stdlib@^2.8.9: potpack "^1.0.1" zstddec "^0.0.2" -three@^0.137.2: - version "0.137.5" - resolved "https://registry.yarnpkg.com/three/-/three-0.137.5.tgz#a1e34bedd0412f2d8797112973dfadac78022ce6" - integrity sha512-rTyr+HDFxjnN8+N/guZjDgfVxgHptZQpf6xfL/Mo7a5JYIFwK6tAq3bzxYYB4Ae0RosDZlDuP+X5aXDXz+XnHQ== +three@0.144.0: + version "0.144.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.144.0.tgz#2818517169f8ff94eea5f664f6ff1fcdcd436cc8" + integrity sha512-R8AXPuqfjfRJKkYoTQcTK7A6i3AdO9++2n8ubya/GTU+fEHhYKu1ZooRSCPkx69jbnzT7dD/xEo6eROQTt2lJw== throat@^5.0.0: version "5.0.0" From 025334016f985f1595e5106ac2c4c8a1d33947fb Mon Sep 17 00:00:00 2001 From: Anthony Burchell Date: Sat, 3 Sep 2022 22:45:50 -0500 Subject: [PATCH 11/48] restore array merge for uploads (#10) --- inc/functions.php | 4 +++- package.json | 2 +- readme.txt | 5 ++++- three-object-viewer.php | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index e9291ef..ab7a5f4 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -48,7 +48,9 @@ function threeobjectviewer_add_file_types_to_uploads($file_types){ $new_filetypes['glb'] = 'application/octet-stream'; $new_filetypes['vrm'] = 'application/octet-stream'; $new_filetypes['usdz'] = 'model/vnd.usdz+zip'; - return $new_filetypes; + $file_types = array_merge($file_types, $new_filetypes ); + + return $file_types; } add_filter( 'wp_check_filetype_and_ext', __NAMESPACE__ . '\three_object_viewer_check_for_usdz', 10, 4 ); diff --git a/package.json b/package.json index b7eb1f5..dba2889 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@antpb/three-object-viewer", "private": true, - "version": "0.6.2", + "version": "0.6.3", "license": "GPL-2.0-or-later", "main": "build/index.js", "scripts": { diff --git a/readme.txt b/readme.txt index d01fbdd..7d0812b 100644 --- a/readme.txt +++ b/readme.txt @@ -2,7 +2,7 @@ Requires at least: 5.7 Tested up to: 6.0 Requires PHP: 7.2 -Stable tag: 0.6.2 +Stable tag: 0.6.3 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Author: antpb @@ -44,6 +44,9 @@ It can also be installed manually using a zip file. == Changelog == += 0.6.3 = +* Fix: Uploads were not merging allowed types. This update restores prior upload functionality with new usdz type. + = 0.6.2 = * Adds USDZ support to block (note, usdz files must not contain usdc files) diff --git a/three-object-viewer.php b/three-object-viewer.php index b8c5a81..31602c3 100644 --- a/three-object-viewer.php +++ b/three-object-viewer.php @@ -3,7 +3,7 @@ * Plugin Name: Three Object Viewer * Plugin URI: https://3ov.xyz/ * Description: A plugin for viewing 3D files with support for WebXR and Open Metaverse Interoperability GLTF Extensions. -* Version: 0.6.2 +* Version: 0.6.3 * Requires at least: 5.7 * Requires PHP: 7.1.0 * Author: antpb From 93a57bef029a9b9e974f040ffa2b026fd9bab06c Mon Sep 17 00:00:00 2001 From: antpb Date: Sun, 4 Sep 2022 00:56:28 -0500 Subject: [PATCH 12/48] adds scaffolding for portal block --- blocks/environment/Edit.js | 2 +- .../components/EnvironmentFront.js | 144 ++++++- blocks/environment/frontend.js | 2 + blocks/three-audio-block/Save.js | 26 +- blocks/three-portal-block/Edit.js | 383 ++++++++++++++++++ blocks/three-portal-block/Edit.test.js | 57 +++ blocks/three-portal-block/Save.js | 31 ++ blocks/three-portal-block/block.json | 68 ++++ .../components/ModelEdit.js | 105 +++++ blocks/three-portal-block/editor.scss | 55 +++ blocks/three-portal-block/index.js | 197 +++++++++ blocks/three-portal-block/init.php | 10 + blocks/three-portal-block/style.scss | 44 ++ blocks/three-video-block/Edit.js | 22 +- blocks/three-video-block/Save.js | 4 +- pluginMachine.json | 4 +- three-object-viewer.php | 3 + 17 files changed, 1113 insertions(+), 44 deletions(-) create mode 100644 blocks/three-portal-block/Edit.js create mode 100644 blocks/three-portal-block/Edit.test.js create mode 100644 blocks/three-portal-block/Save.js create mode 100644 blocks/three-portal-block/block.json create mode 100644 blocks/three-portal-block/components/ModelEdit.js create mode 100644 blocks/three-portal-block/editor.scss create mode 100644 blocks/three-portal-block/index.js create mode 100644 blocks/three-portal-block/init.php create mode 100644 blocks/three-portal-block/style.scss diff --git a/blocks/environment/Edit.js b/blocks/environment/Edit.js index b9e4ddb..c210d3f 100644 --- a/blocks/environment/Edit.js +++ b/blocks/environment/Edit.js @@ -23,7 +23,7 @@ import { more } from '@wordpress/icons'; import ThreeObjectEdit from './components/ThreeObjectEdit'; export default function Edit( { attributes, setAttributes, isSelected } ) { - const ALLOWED_BLOCKS = ['three-object-viewer/model-block', 'three-object-viewer/sky-block', 'three-object-viewer/npc-block', 'three-object-viewer/three-image-block', 'three-object-viewer/three-video-block', 'three-object-viewer/three-audio-block' ]; + const ALLOWED_BLOCKS = ['three-object-viewer/three-portal-block', 'three-object-viewer/model-block', 'three-object-viewer/sky-block', 'three-object-viewer/npc-block', 'three-object-viewer/three-image-block', 'three-object-viewer/three-video-block', 'three-object-viewer/three-audio-block' ]; const onChangeAnimations = ( animations ) => { setAttributes( { animations: animations } ); }; diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 9432c6e..99a6a6a 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -224,6 +224,58 @@ function ModelObject( model ) { ; } +function Portal( model ) { + const [ url, set ] = useState( model.url ); + useEffect( () => { + setTimeout( () => set( model.url ), 2000 ); + }, [] ); + const [ listener ] = useState( () => new THREE.AudioListener() ); + + useThree( ( { camera } ) => { + camera.add( listener ); + } ); + + const gltf = useLoader( GLTFLoader, url, ( loader ) => { + loader.register( + ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + ); + loader.register( ( parser ) => { + return new VRMLoaderPlugin( parser ); + } ); + } ); + + const { actions } = useAnimations( gltf.animations, gltf.scene ); + + const animationList = model.animations ? model.animations.split( ',' ) : ''; + useEffect( () => { + if ( animationList ) { + animationList.forEach( ( name ) => { + if ( Object.keys( actions ).includes( name ) ) { + actions[ name ].play(); + } + } ); + } + }, [] ); + if(gltf?.userData?.gltfExtensions?.VRM){ + const vrm = gltf.userData.vrm; + vrm.scene.position.set( model.positionX, model.positionY, model.positionZ ); + VRMUtils.rotateVRM0( vrm ); + const rotationVRM = vrm.scene.rotation.y + parseFloat(0); + vrm.scene.rotation.set( 0, rotationVRM, 0 ); + vrm.scene.scale.set( 1, 1, 1 ); + // vrm.scene.scale.set( props.scale, props.scale, props.scale ); + return ; + } + gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); + gltf.scene.rotation.set( 0, 0, 0 ); + gltf.scene.scale.set(model.scaleX , model.scaleY, model.scaleZ ); + // console.log(model.rotationX, model.rotationY, model.rotationZ); + gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); + // gltf.scene.scale.set( props.scale, props.scale, props.scale ); + return <> + + ; +} function Sky( sky ) { // console.log(sky.src); @@ -261,7 +313,7 @@ function ThreeVideo(threeVideo) { useEffect(() => void (clicked && video.play()), [video, clicked]); return ( - + @@ -270,7 +322,6 @@ function ThreeVideo(threeVideo) { ); } - function Floor( props ) { return ( @@ -311,7 +362,7 @@ export default function EnvironmentFront( props ) { - + {/* */} { props.threeUrl && ( <> @@ -433,10 +484,10 @@ export default function EnvironmentFront( props ) { ? item.querySelector( 'p.video-block-rotationZ' ).innerText : ''; - const videoUrl = item.querySelector( 'p.video-block-url' ) - ? item.querySelector( 'p.video-block-url' ).innerText + const videoUrl = item.querySelector( 'div.video-block-url' ) + ? item.querySelector( 'div.video-block-url' ).innerText : ''; - console.log("no url?", videoUrl); + console.log("no url?", item.querySelector( 'div.video-block-url' )); console.log(item); const aspectHeight = item.querySelector( 'p.video-block-aspect-height' ) @@ -449,21 +500,21 @@ export default function EnvironmentFront( props ) { return(); })} - { Object.values(props.modelsToAdd).map((model, index)=>{ +{ Object.values(props.modelsToAdd).map((model, index)=>{ const modelPosX = model.querySelector( 'p.model-block-position-x' ) ? model.querySelector( 'p.model-block-position-x' ).innerText : ''; @@ -516,6 +567,67 @@ export default function EnvironmentFront( props ) { rotationY={modelRotationY} rotationZ={modelRotationZ} />); + })} + { Object.values(props.portalsToAdd).map((model, index)=>{ + const modelPosX = model.querySelector( 'p.three-portal-block-position-x' ) + ? model.querySelector( 'p.three-portal-block-position-x' ).innerText + : ''; + + const modelPosY = model.querySelector( 'p.three-portal-block-position-y' ) + ? model.querySelector( 'p.three-portal-block-position-y' ).innerText + : ''; + + const modelPosZ = model.querySelector( 'p.three-portal-block-position-z' ) + ? model.querySelector( 'p.three-portal-block-position-z' ).innerText + : ''; + + const modelScaleX = model.querySelector( 'p.three-portal-block-scale-x' ) + ? model.querySelector( 'p.three-portal-block-scale-x' ).innerText + : ''; + + const modelScaleY = model.querySelector( 'p.three-portal-block-scale-y' ) + ? model.querySelector( 'p.three-portal-block-scale-y' ).innerText + : ''; + + const modelScaleZ = model.querySelector( 'p.three-portal-block-scale-z' ) + ? model.querySelector( 'p.three-portal-block-scale-z' ).innerText + : ''; + + const modelRotationX = model.querySelector( 'p.three-portal-block-rotation-x' ) + ? model.querySelector( 'p.three-portal-block-rotation-x' ).innerText + : ''; + + const modelRotationY = model.querySelector( 'p.three-portal-block-rotation-y' ) + ? model.querySelector( 'p.three-portal-block-rotation-y' ).innerText + : ''; + + const modelRotationZ = model.querySelector( 'p.three-portal-block-rotation-z' ) + ? model.querySelector( 'p.three-portal-block-rotation-z' ).innerText + : ''; + + const url = model.querySelector( 'p.three-portal-block-url' ) + ? model.querySelector( 'p.three-portal-block-url' ).innerText + : ''; + + const destinationUrl = model.querySelector( 'p.three-portal-block-destination-url' ) + ? model.querySelector( 'p.three-portal-block-destination-url' ).innerText + : ''; + + console.log("where are we going?", destinationUrl); + + return(); })} { userData={userData} postSlug={postSlug} modelsToAdd={ modelsToAdd } + portalsToAdd={ portalsToAdd } imagesToAdd={ imagesToAdd } videosToAdd={ videosToAdd } sky={ sky } diff --git a/blocks/three-audio-block/Save.js b/blocks/three-audio-block/Save.js index 2cfa1de..90f194b 100644 --- a/blocks/three-audio-block/Save.js +++ b/blocks/three-audio-block/Save.js @@ -5,41 +5,41 @@ export default function save( { attributes } ) { return (
<> -
-

+

+

{ attributes.audioUrl }

-

+

{ attributes.scaleX }

-

+

{ attributes.scaleY }

-

+

{ attributes.scaleZ }

-

+

{ attributes.positionX }

-

+

{ attributes.positionY }

-

+

{ attributes.positionZ }

-

+

{ attributes.rotationX }

-

+

{ attributes.rotationY }

-

+

{ attributes.rotationZ }

-

+

{ attributes.aspectHeight }

-

+

{ attributes.aspectWidth }

diff --git a/blocks/three-portal-block/Edit.js b/blocks/three-portal-block/Edit.js new file mode 100644 index 0000000..810ebe5 --- /dev/null +++ b/blocks/three-portal-block/Edit.js @@ -0,0 +1,383 @@ +import { __ } from '@wordpress/i18n'; +import React, { useState } from 'react'; +import { DropZone } from '@wordpress/components'; +import './editor.scss'; +import { + useBlockProps, + ColorPalette, + InspectorControls, + MediaUpload, +} from '@wordpress/block-editor'; +import { + Panel, + PanelBody, + PanelRow, + RangeControl, + ToggleControl, + SelectControl, + TextControl, +} from '@wordpress/components'; +import { more } from '@wordpress/icons'; + +import ModelEdit from './components/ModelEdit'; + +export default function Edit( { attributes, setAttributes, isSelected } ) { + + const onChangePositionX = ( positionX ) => { + setAttributes( { positionX: positionX } ); + }; + const onChangePositionY = ( positionY ) => { + setAttributes( { positionY: positionY } ); + }; + const onChangePositionZ = ( positionZ ) => { + setAttributes( { positionZ: positionZ } ); + }; + + const onChangeRotationX = ( rotationX ) => { + setAttributes( { rotationX: rotationX } ); + }; + const onChangeRotationY = ( rotationY ) => { + setAttributes( { rotationY: rotationY } ); + }; + const onChangeRotationZ = ( rotationZ ) => { + setAttributes( { rotationZ: rotationZ } ); + }; + + const onChangeScaleX = ( scaleX ) => { + setAttributes( { scaleX: scaleX } ); + }; + const onChangeScaleY = ( scaleY ) => { + setAttributes( { scaleY: scaleY } ); + }; + const onChangeScaleZ = ( scaleZ ) => { + setAttributes( { scaleZ: scaleZ } ); + }; + + const onChangeAnimations = ( animations ) => { + setAttributes( { animations: animations } ); + }; + + const onChangeDestinationUrl = ( destination ) => { + setAttributes( { destinationUrl: destination } ); + }; + + const onImageSelect = ( imageObject ) => { + setAttributes( { threeObjectUrl: null } ); + setAttributes( { threeObjectUrl: imageObject.url } ); + }; + + const onChangeCollidable = ( collidableSetting ) => { + setAttributes( { collidable: collidableSetting } ); + }; + + const [ enteredURL, setEnteredURL ] = useState( "" ); + + const { mediaUpload } = wp.editor; + + const ALLOWED_MEDIA_TYPES = [ + 'model/gltf-binary', + 'application/octet-stream', + ]; + + const MyDropZone = () => { + const [ hasDropped, setHasDropped ] = useState( false ); + return ( +
+ { hasDropped ? 'Dropped!' : 'Drop a glb here or' } + + mediaUpload( { + allowedTypes: ALLOWED_MEDIA_TYPES, + filesList: files, + onFileChange: ( [ images ] ) => { + onImageSelect( images ); + }, + } ) + } + /> +
+ ); + }; + + function handleClick(objectURL){ + if(objectURL){ + console.log("success good job", objectURL); + onImageSelect(objectURL); + } + console.log("fail", objectURL); + } + + + return ( +
+ + + + + + select a glb file from your media library to + render an object in the canvas: + + + + + onImageSelect( imageObject ) + } + type="image" + label="GLB File" + allowedTypes={ ALLOWED_MEDIA_TYPES } + value={ attributes.threeObjectUrl } + render={ ( { open } ) => ( + + ) } + /> + + + + + + onChangeDestinationUrl( value ) + } + /> + + + { + onChangeCollidable( e ); + } } + /> + + + + onChangeAnimations( value ) + } + /> + + + + { __( 'Position', 'three-object-viewer' ) } + + + + + onChangePositionX( value ) + } + /> + + onChangePositionY( value ) + } + /> + + onChangePositionZ( value ) + } + /> + + + + { __( 'Rotation', 'three-object-viewer' ) } + + + + + onChangeRotationX( value ) + } + /> + + onChangeRotationY( value ) + } + /> + + onChangeRotationZ( value ) + } + /> + + + + { __( 'Scale', 'three-object-viewer' ) } + + + + + onChangeScaleX( value ) + } + /> + + onChangeScaleY( value ) + } + /> + + onChangeScaleZ( value ) + } + /> + + + + + { isSelected ? ( + <> + { attributes.threeObjectUrl ? ( + + ) : ( +
+ + +
+ + Select a glb file to render in the canvas: + + {/*
+ setEnteredURL(e.target.value)}> + +
*/} + + onImageSelect( imageObject ) + } + type="image" + allowedTypes={ ALLOWED_MEDIA_TYPES } + value={ attributes.threeObjectUrl } + render={ ( { open } ) => ( + + ) } + /> +
+
+ ) } + + ) : ( + <> + { attributes.threeObjectUrl ? ( + + ) : ( +
+ +
+ + Select a glb file to render in the canvas: + + {/*
+ console.log(e.target.value) && setEnteredURL(e.target.value)}> + +
*/} +
+ + onImageSelect( imageObject ) + } + type="image" + allowedTypes={ ALLOWED_MEDIA_TYPES } + value={ attributes.threeObjectUrl } + render={ ( { open } ) => ( + + ) } + /> +
+ ) } + + ) } +
+ ); +} diff --git a/blocks/three-portal-block/Edit.test.js b/blocks/three-portal-block/Edit.test.js new file mode 100644 index 0000000..ab10afe --- /dev/null +++ b/blocks/three-portal-block/Edit.test.js @@ -0,0 +1,57 @@ + +//Import React +import React from 'react'; +//Import test renderer +import { render, fireEvent, cleanup } from '@testing-library/react'; +//Import component to test +import { Editor } from './Edit'; + + +describe("Editor componet", () => { + afterEach(cleanup); + it('matches snapshot when selected', () => { + const onChange = jest.fn(); + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it('matches snapshot when not selected', () => { + const onChange = jest.fn(); + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render(); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); + + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render(); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); \ No newline at end of file diff --git a/blocks/three-portal-block/Save.js b/blocks/three-portal-block/Save.js new file mode 100644 index 0000000..6e7181e --- /dev/null +++ b/blocks/three-portal-block/Save.js @@ -0,0 +1,31 @@ +import { __ } from '@wordpress/i18n'; +import { useBlockProps } from '@wordpress/block-editor'; + +export default function save( { attributes } ) { + return ( +
+ <> +
+

+ { attributes.threeObjectUrl } +

+

+ { attributes.destinationUrl } +

+

{ attributes.scaleX }

+

{ attributes.scaleY }

+

{ attributes.scaleZ }

+

{ attributes.positionX }

+

{ attributes.positionY }

+

{ attributes.positionZ }

+

{ attributes.rotationX }

+

{ attributes.rotationY }

+

{ attributes.rotationZ }

+

+ { attributes.animations } +

+
+ +
+ ); +} diff --git a/blocks/three-portal-block/block.json b/blocks/three-portal-block/block.json new file mode 100644 index 0000000..df48ea8 --- /dev/null +++ b/blocks/three-portal-block/block.json @@ -0,0 +1,68 @@ +{ + "name": "three-object-viewer/three-portal-block", + "title": "Portal Block", + "description": "A 3D portal", + "attributes": { + "scaleX": { + "type": "int", + "default":1 + }, + "scaleY": { + "type": "int", + "default":1 + }, + "scaleZ": { + "type": "int", + "default":1 + }, + "positionX": { + "type": "int", + "default":0 + }, + "positionY": { + "type": "int", + "default":0 + }, + "positionZ": { + "type": "int", + "default":0 + }, + "rotationX": { + "type": "int", + "default":0 + }, + "rotationY": { + "type": "int", + "default":0 + }, + "rotationZ": { + "type": "int", + "default":0 + }, + "threeObjectUrl": { + "type": "string", + "default": null + }, + "destinationUrl": { + "type": "string", + "default": null + }, + "animations": { + "type": "string", + "default": "" + }, + "collidable": { + "type": "boolean", + "default": false + } + }, + "category": "3D", + "apiVersion": 2, + "supports": { + "html": false, + "multiple": true + }, + "editorScript": "file:../../build/block-three-portal-block.js", + "editorStyle": "file:../../build/block-three-portal-block.css", + "style": "file:../../build/block-three-portal-block.css" +} diff --git a/blocks/three-portal-block/components/ModelEdit.js b/blocks/three-portal-block/components/ModelEdit.js new file mode 100644 index 0000000..c71bd1b --- /dev/null +++ b/blocks/three-portal-block/components/ModelEdit.js @@ -0,0 +1,105 @@ +import * as THREE from 'three'; +import React, { Suspense, useRef, useState, useEffect } from 'react'; +import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import { + OrthographicCamera, + PerspectiveCamera, + OrbitControls, + useAnimations, +} from '@react-three/drei'; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' +import { GLTFAudioEmitterExtension } from 'three-omi'; + + +function ThreeObject( props ) { + const [ url, set ] = useState( props.url ); + useEffect( () => { + setTimeout( () => set( props.url ), 2000 ); + }, [] ); + const [ listener ] = useState( () => new THREE.AudioListener() ); + + useThree( ( { camera } ) => { + camera.add( listener ); + } ); + + const gltf = useLoader( GLTFLoader, url, ( loader ) => { + loader.register( + ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + ); + loader.register( ( parser ) => { + + return new VRMLoaderPlugin( parser ); + + } ); + + } ); + + const { actions } = useAnimations( gltf.animations, gltf.scene ); + + const animationList = props.animations ? props.animations.split( ',' ) : ''; + + useEffect( () => { + if ( animationList ) { + animationList.forEach( ( name ) => { + if ( Object.keys( actions ).includes( name ) ) { + actions[ name ].play(); + } + } ); + } + }, [] ); + + if(gltf?.userData?.gltfExtensions?.VRM){ + const vrm = gltf.userData.vrm; + vrm.scene.position.set( 0, props.positionY, 0 ); + VRMUtils.rotateVRM0( vrm ); + const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); + vrm.scene.rotation.set( 0, rotationVRM, 0 ); + vrm.scene.scale.set( props.scale, props.scale, props.scale ); + return ; + } + gltf.scene.position.set( 0, 0, 0 ); + gltf.scene.rotation.set( 0, 0, 0 ); + gltf.scene.scale.set( 1, 1, 1 ); + return ; +} + +export default function ModelEdit( props ) { + return ( + <> + + + + + { props.url && ( + + + + ) } + + + { props.hasTip && ( +

Click and drag ^

+ ) } + + ); +} diff --git a/blocks/three-portal-block/editor.scss b/blocks/three-portal-block/editor.scss new file mode 100644 index 0000000..9ed5c19 --- /dev/null +++ b/blocks/three-portal-block/editor.scss @@ -0,0 +1,55 @@ + + .wp-block-three-object-block { + border: 1px dotted #f00; +} + .glb-preview-container { + padding: 100px; + text-align: center; + align-items: center; + align-content: center; + background-color:#f2f2f2; + } + + .glb-preview-container button{ + padding: 15px; + border-radius: 30px; +} + +.three-object-viewer-button { + background-color:rgb(199, 254, 0); + color: black; + border: solid 1.5px black; +} + +.glb-preview-container button:hover{ + border-radius: 30px; + background-color:rgb(156, 199, 0); + cursor: pointer; +} +.three-object-block-tip { + overflow-wrap: break-word; + background-color: black; + color: white; + padding: 10px; + font-weight: 500; + max-width: 160px; + font-size: 12px; + margin-top: 0px; + margin: 0 auto; + text-align: center; +} + +.three-object-block-url-input { + padding-bottom: 20px; +} + +.three-object-block-url-input input{ + height: 40px; +} + +.block-editor-block-inspector .components-base-control.position-inputs:last-child { + margin-bottom: 24px !important; +} +.block-editor-block-inspector .components-base-control.position-inputs { + padding-right: 5px; +} diff --git a/blocks/three-portal-block/index.js b/blocks/three-portal-block/index.js new file mode 100644 index 0000000..22b14b6 --- /dev/null +++ b/blocks/three-portal-block/index.js @@ -0,0 +1,197 @@ +import { registerBlockType } from '@wordpress/blocks'; +import Edit from './Edit'; +import Save from './Save'; +import { useBlockProps } from '@wordpress/block-editor'; + +const icon = ( + + + + + +); + +const blockConfig = require( './block.json' ); +registerBlockType( blockConfig.name, { + ...blockConfig, + icon: icon, + apiVersion: 2, + edit: Edit, + save: Save, + deprecated: [ + { + attributes: { + bg_color: { + type: 'string', + default: '#FFFFFF', + }, + zoom: { + type: 'integer', + default: 90, + }, + scale: { + type: 'integer', + default: 1, + }, + positionX: { + type: 'integer', + default: 0, + }, + positionY: { + type: 'integer', + default: 0, + }, + rotationY: { + type: 'integer', + default: 0, + }, + threeObjectUrl: { + type: 'string', + default: null, + }, + hasZoom: { + type: 'bool', + default: false, + }, + hasTip: { + type: 'bool', + default: true, + }, + deviceTarget: { + type: 'string', + default: '2d', + }, + }, + save( props ) { + return ( +
+ <> +
+

+ { props.attributes.deviceTarget } +

+

+ { props.attributes.threeObjectUrl } +

+

+ { props.attributes.scale } +

+

+ { props.attributes.bg_color } +

+

+ { props.attributes.zoom } +

+

+ { props.attributes.hasZoom ? 1 : 0 } +

+

+ { props.attributes.hasTip ? 1 : 0 } +

+

+ { props.attributes.positionY } +

+

+ { props.attributes.rotationY } +

+

+ { props.attributes.scale } +

+
+ +
+ ); + }, + }, + { + attributes: { + bg_color: { + type: 'string', + default: '#FFFFFF', + }, + zoom: { + type: 'integer', + default: 90, + }, + scale: { + type: 'integer', + default: 1, + }, + positionX: { + type: 'integer', + default: 0, + }, + positionY: { + type: 'integer', + default: 0, + }, + rotationY: { + type: 'integer', + default: 0, + }, + threeObjectUrl: { + type: 'string', + default: null, + }, + hasZoom: { + type: 'bool', + default: false, + }, + hasTip: { + type: 'bool', + default: true, + }, + deviceTarget: { + type: 'string', + default: '2d', + }, + animations: { + type: 'string', + default: '', + } + }, + save( props ) { + return ( +
+ <> +
+

+ { props.attributes.deviceTarget } +

+

+ { props.attributes.threeObjectUrl } +

+

{ props.attributes.scale }

+

+ { props.attributes.bg_color } +

+

{ props.attributes.zoom }

+

+ { props.attributes.hasZoom ? 1 : 0 } +

+

+ { props.attributes.hasTip ? 1 : 0 } +

+

+ { props.attributes.positionY } +

+

+ { props.attributes.rotationY } +

+

{ props.attributes.scale }

+

+ { props.attributes.animations } +

+
+ +
+ ); + }, + }, + ], +} ); diff --git a/blocks/three-portal-block/init.php b/blocks/three-portal-block/init.php new file mode 100644 index 0000000..6ed001c --- /dev/null +++ b/blocks/three-portal-block/init.php @@ -0,0 +1,10 @@ + { console.log(imageObject); - setAttributes( { audioUrl: null } ); - setAttributes( { audioUrl: imageObject.url, aspectHeight: imageObject.height, aspectWidth: imageObject.width } ); + setAttributes( { videoUrl: null } ); + setAttributes( { videoUrl: imageObject.url, aspectHeight: imageObject.height, aspectWidth: imageObject.width } ); }; const onChangePositionX = ( positionX ) => { setAttributes( { positionX: positionX } ); @@ -120,10 +120,10 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { type="image" label="Image File" allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.audioUrl } + value={ attributes.videoUrl } render={ ( { open } ) => ( @@ -246,10 +246,10 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { { isSelected ? ( <> - { attributes.audioUrl ? ( + { attributes.videoUrl ? ( <> @@ -267,10 +267,10 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { } type="video" allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.audioUrl } + value={ attributes.videoUrl } render={ ( { open } ) => ( @@ -282,10 +282,10 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) : ( <> - { attributes.audioUrl ? ( + { attributes.videoUrl ? ( <> @@ -312,7 +312,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { } type="image" allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.audioUrl } + value={ attributes.videoUrl } render={ ( { open } ) => ( +
*/} + /> { const [ hasDropped, setHasDropped ] = useState( false ); return ( @@ -290,15 +290,21 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { { isSelected ? ( <> { attributes.threeObjectUrl ? ( - - ) : ( +
+ + + + + +

Model block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : (
@@ -337,17 +343,21 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) : ( <> { attributes.threeObjectUrl ? ( - - ) : ( +
+ + + + + +

Model block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : (
diff --git a/blocks/sky-block/Edit.js b/blocks/sky-block/Edit.js index 45242d1..c1b6fd0 100644 --- a/blocks/sky-block/Edit.js +++ b/blocks/sky-block/Edit.js @@ -107,7 +107,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.skyUrl ? ( <> - +
+ + + + + +

Sky block

+ {/*

URL: {attributes.skyUrl}

*/} +
) : (
@@ -139,7 +152,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.skyUrl ? ( <> - +
+ + + + + +

Sky block

+ {/*

URL: {attributes.skyUrl}

*/} +
) : (
diff --git a/blocks/three-audio-block/components/ImageEdit.js b/blocks/three-audio-block/components/ImageEdit.js index 16e566c..27f3ca6 100644 --- a/blocks/three-audio-block/components/ImageEdit.js +++ b/blocks/three-audio-block/components/ImageEdit.js @@ -47,7 +47,7 @@ export default function ImageEdit( props ) { shadowMap style={ { margin: '0 Auto', - height: '500px', + height: '100px', width: '90%', } } > diff --git a/blocks/three-image-block/Edit.js b/blocks/three-image-block/Edit.js index 853cd5a..3494177 100644 --- a/blocks/three-image-block/Edit.js +++ b/blocks/three-image-block/Edit.js @@ -233,13 +233,21 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { { isSelected ? ( <> { attributes.imageUrl ? ( - <> - - ) : ( +
+ + + + + +

Image block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : (
@@ -269,13 +277,21 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) : ( <> { attributes.imageUrl ? ( - <> - - ) : ( +
+ + + + + +

Image block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : (
diff --git a/blocks/three-image-block/components/ImageEdit.js b/blocks/three-image-block/components/ImageEdit.js index f1d475a..452b775 100644 --- a/blocks/three-image-block/components/ImageEdit.js +++ b/blocks/three-image-block/components/ImageEdit.js @@ -41,7 +41,7 @@ export default function ImageEdit( props ) { shadowMap style={ { margin: '0 Auto', - height: '500px', + height: '100px', width: '90%', } } > diff --git a/blocks/three-portal-block/Edit.js b/blocks/three-portal-block/Edit.js index 810ebe5..5bda2de 100644 --- a/blocks/three-portal-block/Edit.js +++ b/blocks/three-portal-block/Edit.js @@ -289,15 +289,21 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { { isSelected ? ( <> { attributes.threeObjectUrl ? ( - - ) : ( +
+ + + + + +

Portal block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : (
@@ -336,15 +342,21 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) : ( <> { attributes.threeObjectUrl ? ( - - ) : ( +
+ + + + + +

Portal block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : (
diff --git a/blocks/three-video-block/Edit.js b/blocks/three-video-block/Edit.js index 8064294..5157daa 100644 --- a/blocks/three-video-block/Edit.js +++ b/blocks/three-video-block/Edit.js @@ -247,13 +247,21 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { { isSelected ? ( <> { attributes.videoUrl ? ( - <> - - ) : ( +
+ + + + + +

Video block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : (
@@ -283,13 +291,21 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) : ( <> { attributes.videoUrl ? ( - <> - - ) : ( +
+ + + + + +

Video block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : (
diff --git a/blocks/three-video-block/components/VideoEdit.js b/blocks/three-video-block/components/VideoEdit.js index 7e3cfad..6e03a5a 100644 --- a/blocks/three-video-block/components/VideoEdit.js +++ b/blocks/three-video-block/components/VideoEdit.js @@ -47,7 +47,7 @@ export default function VideoEdit( props ) { shadowMap style={ { margin: '0 Auto', - height: '500px', + height: '100px', width: '90%', } } > From eaa0287af013681bfca576dcf4a91ddc17396177 Mon Sep 17 00:00:00 2001 From: antpb Date: Thu, 22 Sep 2022 00:58:24 -0500 Subject: [PATCH 18/48] adds editor styling --- blocks/environment/block.json | 8 +++-- blocks/environment/editor.scss | 16 ++++++++-- blocks/model-block/Edit.js | 26 +++++++++------- blocks/model-block/block.json | 2 +- blocks/sky-block/Edit.js | 50 +++++++++++++++-------------- blocks/three-image-block/Edit.js | 52 +++++++++++++++++-------------- blocks/three-portal-block/Edit.js | 52 +++++++++++++++++-------------- blocks/three-video-block/Edit.js | 52 +++++++++++++++++-------------- 8 files changed, 146 insertions(+), 112 deletions(-) diff --git a/blocks/environment/block.json b/blocks/environment/block.json index 273c6c9..7b03563 100644 --- a/blocks/environment/block.json +++ b/blocks/environment/block.json @@ -1,8 +1,12 @@ { "name": "three-object-viewer/environment", "title": "Environment Block", - "description": "A 3D environment component for VersePress", + "description": "A 3D environment component for XP Portal", "attributes": { + "align": { + "type": "string", + "default": "full" + }, "scale": { "type": "integer", "default": 1 @@ -36,7 +40,7 @@ "apiVersion": 2, "supports": { "html": false, - "multiple": true, + "multiple": false, "align": ["full"] }, "editorScript": "file:../../build/block-environment.js", diff --git a/blocks/environment/editor.scss b/blocks/environment/editor.scss index 29c8c07..41b090a 100644 --- a/blocks/environment/editor.scss +++ b/blocks/environment/editor.scss @@ -27,14 +27,18 @@ padding-left:10px; height: auto; padding-right: 10px; - background-color: rgb(42, 42, 42); + // background-color: rgb(42, 42, 42); } .wp-block-three-object-viewer-environment .block-editor-inner-blocks { background-color: rgb(42, 42, 42); height: 210px; + overflow: scroll; } +.three-object-viewer-inner-edit-container { + margin: 9% auto; +} .wp-block-three-object-viewer-environment .block-editor-inner-blocks .block-editor-button-block-appender { width: 60px; height: 60px; @@ -44,14 +48,17 @@ width: 40px; height: 40px; } - +.wp-block-three-object-viewer-environment .block-editor-inner-blocks .block-editor-button-block-appender{ + margin: 0px 0px -60px; +} .wp-block-three-object-viewer-environment { background-color: rgb(42, 42, 42); } .three-object-viewer-inner { - background-color: #e7e7e7; + background-color: #3f3f3f; padding: 10px; + color: white; box-sizing: border-box; margin-bottom: 20px; margin-top: 20px; @@ -60,10 +67,13 @@ height: 100px; font-size: 0.8em; text-align: center; + border-radius: 8px; + box-shadow:0px 1px 5px 1px #1e1e1e; } .three-object-viewer-inner svg { max-height: 30px; + filter: invert(88%) ; } .three-object-viewer-inner p { diff --git a/blocks/model-block/Edit.js b/blocks/model-block/Edit.js index 0563a3a..c8753e8 100644 --- a/blocks/model-block/Edit.js +++ b/blocks/model-block/Edit.js @@ -291,6 +291,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.threeObjectUrl ? (
+

Model block

+
{/*

URL: {attributes.threeObjectUrl}

*/}
) : ( @@ -344,18 +346,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.threeObjectUrl ? (
- - - - - -

Model block

+
+ + + + + +

Model block

{/*

URL: {attributes.threeObjectUrl}

*/} +
) : (
diff --git a/blocks/model-block/block.json b/blocks/model-block/block.json index dbaf562..582dbaf 100644 --- a/blocks/model-block/block.json +++ b/blocks/model-block/block.json @@ -1,7 +1,7 @@ { "name": "three-object-viewer/model-block", "title": "Model Block", - "description": "A 3D model for your VersePress environment", + "description": "A 3D model for your XP Portal environment", "attributes": { "scaleX": { "type": "int", diff --git a/blocks/sky-block/Edit.js b/blocks/sky-block/Edit.js index c1b6fd0..36a849c 100644 --- a/blocks/sky-block/Edit.js +++ b/blocks/sky-block/Edit.js @@ -108,18 +108,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { { attributes.skyUrl ? ( <>
- - - - - -

Sky block

- {/*

URL: {attributes.skyUrl}

*/} +
+ + + + + +

Sky block

+ {/*

URL: {attributes.skyUrl}

*/} +
) : (
@@ -153,18 +155,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { { attributes.skyUrl ? ( <>
- - - - - -

Sky block

+
+ + + + + +

Sky block

{/*

URL: {attributes.skyUrl}

*/} +
) : (
diff --git a/blocks/three-image-block/Edit.js b/blocks/three-image-block/Edit.js index 3494177..3af394f 100644 --- a/blocks/three-image-block/Edit.js +++ b/blocks/three-image-block/Edit.js @@ -234,18 +234,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.imageUrl ? (
- - - - - -

Image block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

Image block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
) : (
@@ -278,18 +280,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.imageUrl ? (
- - - - - -

Image block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

Image block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
) : (
diff --git a/blocks/three-portal-block/Edit.js b/blocks/three-portal-block/Edit.js index 5bda2de..a5c59c6 100644 --- a/blocks/three-portal-block/Edit.js +++ b/blocks/three-portal-block/Edit.js @@ -290,18 +290,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.threeObjectUrl ? (
- - - - - -

Portal block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

Portal block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
) : (
@@ -343,18 +345,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.threeObjectUrl ? (
- - - - - -

Portal block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

Portal block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
) : (
diff --git a/blocks/three-video-block/Edit.js b/blocks/three-video-block/Edit.js index 5157daa..3439d37 100644 --- a/blocks/three-video-block/Edit.js +++ b/blocks/three-video-block/Edit.js @@ -248,18 +248,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.videoUrl ? (
- - - - - -

Video block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

Video block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
) : (
@@ -292,18 +294,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { <> { attributes.videoUrl ? (
- - - - - -

Video block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

Video block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
) : (
From dac1ad915ca7aa46664ac6c63d0098c95bfdeb30 Mon Sep 17 00:00:00 2001 From: antpb Date: Thu, 22 Sep 2022 23:22:48 -0500 Subject: [PATCH 19/48] styles editor --- blocks/environment/block.json | 2 +- blocks/environment/editor.scss | 6 +- blocks/model-block/Edit.js | 99 +++++++++++++-------------- blocks/model-block/block.json | 2 +- blocks/model-block/editor.scss | 9 +-- blocks/npc-block/block.json | 2 +- blocks/sky-block/Edit.js | 52 +++++++------- blocks/sky-block/block.json | 2 +- blocks/sky-block/editor.scss | 6 -- blocks/three-audio-block/Edit.js | 52 +++++++------- blocks/three-audio-block/block.json | 2 +- blocks/three-audio-block/editor.scss | 6 -- blocks/three-image-block/Edit.js | 54 ++++++++------- blocks/three-image-block/block.json | 2 +- blocks/three-image-block/editor.scss | 6 -- blocks/three-object-block/editor.scss | 6 -- blocks/three-portal-block/Edit.js | 63 ++++++++--------- blocks/three-portal-block/block.json | 2 +- blocks/three-portal-block/editor.scss | 6 -- blocks/three-video-block/Edit.js | 56 +++++++-------- blocks/three-video-block/block.json | 2 +- blocks/three-video-block/editor.scss | 6 -- 22 files changed, 200 insertions(+), 243 deletions(-) diff --git a/blocks/environment/block.json b/blocks/environment/block.json index 7b03563..9615a27 100644 --- a/blocks/environment/block.json +++ b/blocks/environment/block.json @@ -1,6 +1,6 @@ { "name": "three-object-viewer/environment", - "title": "Environment Block", + "title": "3D Environment", "description": "A 3D environment component for XP Portal", "attributes": { "align": { diff --git a/blocks/environment/editor.scss b/blocks/environment/editor.scss index 41b090a..439d515 100644 --- a/blocks/environment/editor.scss +++ b/blocks/environment/editor.scss @@ -16,12 +16,14 @@ } .three-object-viewer-button { - background-color:rgb(199, 254, 0); color: black; border: solid 1.5px black; + border-radius: 8px; + cursor: pointer; + } -.wp-block-three-object-viewer-sky-block, .wp-block-three-object-viewer-model-block, .wp-block-three-object-viewer-three-image-block, .wp-block-three-object-viewer-three-portal-block, .wp-block-three-object-viewer-three-video-block { +.wp-block-three-object-viewer-sky-block, .wp-block-three-object-viewer-model-block, .wp-block-three-object-viewer-three-image-block, .wp-block-three-object-viewer-three-audio-block, .wp-block-three-object-viewer-three-portal-block, .wp-block-three-object-viewer-three-video-block { display: flex; float: left; padding-left:10px; diff --git a/blocks/model-block/Edit.js b/blocks/model-block/Edit.js index c8753e8..74510fa 100644 --- a/blocks/model-block/Edit.js +++ b/blocks/model-block/Edit.js @@ -307,23 +307,19 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { {/*

URL: {attributes.threeObjectUrl}

*/}
) : ( -
- - -
- - Select a glb file to render in the canvas: - - {/*
- setEnteredURL(e.target.value)}> - -
*/} - +
+ + + + + + onImageSelect( imageObject ) } @@ -333,13 +329,13 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { render={ ( { open } ) => ( ) } - /> -
-
+ /> +
+
) } ) : ( @@ -362,37 +358,36 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- -
- - Select a glb file to render in the canvas: - - {/*
- console.log(e.target.value) && setEnteredURL(e.target.value)}> - -
*/} -
- - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } - /> +
+
+ + + + + + + onImageSelect( imageObject ) + } + type="image" + allowedTypes={ ALLOWED_MEDIA_TYPES } + value={ attributes.threeObjectUrl } + render={ ( { open } ) => ( + + ) } + />
- ) } +
+ ) } ) }
diff --git a/blocks/model-block/block.json b/blocks/model-block/block.json index 582dbaf..69da0e7 100644 --- a/blocks/model-block/block.json +++ b/blocks/model-block/block.json @@ -1,6 +1,6 @@ { "name": "three-object-viewer/model-block", - "title": "Model Block", + "title": "3D Model", "description": "A 3D model for your XP Portal environment", "attributes": { "scaleX": { diff --git a/blocks/model-block/editor.scss b/blocks/model-block/editor.scss index 9ed5c19..5f49231 100644 --- a/blocks/model-block/editor.scss +++ b/blocks/model-block/editor.scss @@ -15,17 +15,12 @@ border-radius: 30px; } -.three-object-viewer-button { - background-color:rgb(199, 254, 0); - color: black; - border: solid 1.5px black; -} - .glb-preview-container button:hover{ border-radius: 30px; - background-color:rgb(156, 199, 0); + // background-color:rgb(156, 199, 0); cursor: pointer; } + .three-object-block-tip { overflow-wrap: break-word; background-color: black; diff --git a/blocks/npc-block/block.json b/blocks/npc-block/block.json index e197d03..a37d5fd 100644 --- a/blocks/npc-block/block.json +++ b/blocks/npc-block/block.json @@ -1,6 +1,6 @@ { "name": "three-object-viewer/npc-block", - "title": "NPC Block", + "title": "3D NPC", "description": "A NPC Block to make your experience a bit more personal.", "attributes": { "content": { diff --git a/blocks/sky-block/Edit.js b/blocks/sky-block/Edit.js index 36a849c..9ea8cfc 100644 --- a/blocks/sky-block/Edit.js +++ b/blocks/sky-block/Edit.js @@ -124,13 +124,18 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- - -
- - Select an image to be used as your skybox. 360 spherical panoramics recommended: - +
+
+ + + + + onImageSelect( imageObject ) @@ -142,7 +147,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) } /> @@ -171,22 +176,18 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- -
- - Select an image to be used as your skybox. 360 spherical panoramics recommended: - - {/*
- console.log(e.target.value) && setEnteredURL(e.target.value)}> - -
*/} -
+
+
+ + + + + onImageSelect( imageObject ) @@ -196,11 +197,12 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { value={ attributes.skyUrl } render={ ( { open } ) => ( ) } />
+
) } ) } diff --git a/blocks/sky-block/block.json b/blocks/sky-block/block.json index fa63499..23a1953 100644 --- a/blocks/sky-block/block.json +++ b/blocks/sky-block/block.json @@ -1,6 +1,6 @@ { "name": "three-object-viewer/sky-block", - "title": "Sky Block", + "title": "3D Sky Block", "description": "A sky your environment", "attributes": { "skyUrl": { diff --git a/blocks/sky-block/editor.scss b/blocks/sky-block/editor.scss index a41c19e..4a6a4c4 100644 --- a/blocks/sky-block/editor.scss +++ b/blocks/sky-block/editor.scss @@ -15,12 +15,6 @@ border-radius: 30px; } -.three-object-viewer-button { - background-color:rgb(199, 254, 0); - color: black; - border: solid 1.5px black; -} - .glb-preview-container button:hover{ border-radius: 30px; background-color:rgb(156, 199, 0); diff --git a/blocks/three-audio-block/Edit.js b/blocks/three-audio-block/Edit.js index 9ace978..492b17f 100644 --- a/blocks/three-audio-block/Edit.js +++ b/blocks/three-audio-block/Edit.js @@ -398,13 +398,18 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { aspectWidth={attributes.aspectWidth} /> ) : ( -
- - -
- - Select an image: - +
+
+ + + + + onImageSelect( imageObject ) @@ -416,7 +421,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) } /> @@ -434,22 +439,18 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { aspectWidth={attributes.aspectWidth} /> ) : ( -
- -
- - Select an image to render in your environment: - - {/*
- console.log(e.target.value) && setEnteredURL(e.target.value)}> - -
*/} -
+
+
+ + + + + onImageSelect( imageObject ) @@ -459,11 +460,12 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { value={ attributes.videoUrl } render={ ( { open } ) => ( ) } />
+
) } ) } diff --git a/blocks/three-audio-block/block.json b/blocks/three-audio-block/block.json index 16cbfea..b7f9c53 100644 --- a/blocks/three-audio-block/block.json +++ b/blocks/three-audio-block/block.json @@ -1,6 +1,6 @@ { "name": "three-object-viewer/three-audio-block", - "title": "Three Audio Block", + "title": "3D Audio", "description": "An audio block for your environment", "attributes": { "audioUrl": { diff --git a/blocks/three-audio-block/editor.scss b/blocks/three-audio-block/editor.scss index a41c19e..4a6a4c4 100644 --- a/blocks/three-audio-block/editor.scss +++ b/blocks/three-audio-block/editor.scss @@ -15,12 +15,6 @@ border-radius: 30px; } -.three-object-viewer-button { - background-color:rgb(199, 254, 0); - color: black; - border: solid 1.5px black; -} - .glb-preview-container button:hover{ border-radius: 30px; background-color:rgb(156, 199, 0); diff --git a/blocks/three-image-block/Edit.js b/blocks/three-image-block/Edit.js index 3af394f..aee8f07 100644 --- a/blocks/three-image-block/Edit.js +++ b/blocks/three-image-block/Edit.js @@ -250,14 +250,19 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- - -
- - Select an image: - - +
+ + + + + + onImageSelect( imageObject ) } @@ -268,7 +273,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) } /> @@ -296,22 +301,18 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- -
- - Select an image to render in your environment: - - {/*
- console.log(e.target.value) && setEnteredURL(e.target.value)}> - -
*/} -
+
+
+ + + + + onImageSelect( imageObject ) @@ -321,11 +322,12 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { value={ attributes.imageUrl } render={ ( { open } ) => ( ) } />
+
) } ) } diff --git a/blocks/three-image-block/block.json b/blocks/three-image-block/block.json index b3e904f..648558a 100644 --- a/blocks/three-image-block/block.json +++ b/blocks/three-image-block/block.json @@ -1,6 +1,6 @@ { "name": "three-object-viewer/three-image-block", - "title": "Three Image Block", + "title": "3D Image", "description": "An image block for your environment", "attributes": { "imageUrl": { diff --git a/blocks/three-image-block/editor.scss b/blocks/three-image-block/editor.scss index a41c19e..9fd1cb9 100644 --- a/blocks/three-image-block/editor.scss +++ b/blocks/three-image-block/editor.scss @@ -16,16 +16,10 @@ } .three-object-viewer-button { - background-color:rgb(199, 254, 0); color: black; border: solid 1.5px black; } -.glb-preview-container button:hover{ - border-radius: 30px; - background-color:rgb(156, 199, 0); - cursor: pointer; -} .three-object-block-tip { overflow-wrap: break-word; background-color: black; diff --git a/blocks/three-object-block/editor.scss b/blocks/three-object-block/editor.scss index a41c19e..4a6a4c4 100644 --- a/blocks/three-object-block/editor.scss +++ b/blocks/three-object-block/editor.scss @@ -15,12 +15,6 @@ border-radius: 30px; } -.three-object-viewer-button { - background-color:rgb(199, 254, 0); - color: black; - border: solid 1.5px black; -} - .glb-preview-container button:hover{ border-radius: 30px; background-color:rgb(156, 199, 0); diff --git a/blocks/three-portal-block/Edit.js b/blocks/three-portal-block/Edit.js index a5c59c6..5337625 100644 --- a/blocks/three-portal-block/Edit.js +++ b/blocks/three-portal-block/Edit.js @@ -306,22 +306,18 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- - -
- - Select a glb file to render in the canvas: - - {/*
- setEnteredURL(e.target.value)}> - -
*/} +
+
+ + + + + onImageSelect( imageObject ) @@ -333,7 +329,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) } /> @@ -361,23 +357,19 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- -
- - Select a glb file to render in the canvas: - - {/*
- console.log(e.target.value) && setEnteredURL(e.target.value)}> - -
*/} -
- +
+ + + + + + onImageSelect( imageObject ) } @@ -386,11 +378,12 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { value={ attributes.threeObjectUrl } render={ ( { open } ) => ( ) } />
+
) } ) } diff --git a/blocks/three-portal-block/block.json b/blocks/three-portal-block/block.json index df48ea8..b47c7e4 100644 --- a/blocks/three-portal-block/block.json +++ b/blocks/three-portal-block/block.json @@ -1,6 +1,6 @@ { "name": "three-object-viewer/three-portal-block", - "title": "Portal Block", + "title": "3D Portal", "description": "A 3D portal", "attributes": { "scaleX": { diff --git a/blocks/three-portal-block/editor.scss b/blocks/three-portal-block/editor.scss index 9ed5c19..b89aa07 100644 --- a/blocks/three-portal-block/editor.scss +++ b/blocks/three-portal-block/editor.scss @@ -15,12 +15,6 @@ border-radius: 30px; } -.three-object-viewer-button { - background-color:rgb(199, 254, 0); - color: black; - border: solid 1.5px black; -} - .glb-preview-container button:hover{ border-radius: 30px; background-color:rgb(156, 199, 0); diff --git a/blocks/three-video-block/Edit.js b/blocks/three-video-block/Edit.js index 3439d37..805b758 100644 --- a/blocks/three-video-block/Edit.js +++ b/blocks/three-video-block/Edit.js @@ -264,14 +264,19 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- - -
- - Select an image: - - +
+ + + + + + onImageSelect( imageObject ) } @@ -282,7 +287,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) } /> @@ -310,23 +315,19 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
) : ( -
- -
- - Select an image to render in your environment: - - {/*
- console.log(e.target.value) && setEnteredURL(e.target.value)}> - -
*/} -
- +
+ + + + + + onImageSelect( imageObject ) } @@ -335,11 +336,12 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { value={ attributes.videoUrl } render={ ( { open } ) => ( ) } />
+
) } ) } diff --git a/blocks/three-video-block/block.json b/blocks/three-video-block/block.json index cde1c93..5cea3f7 100644 --- a/blocks/three-video-block/block.json +++ b/blocks/three-video-block/block.json @@ -1,6 +1,6 @@ { "name": "three-object-viewer/three-video-block", - "title": "Three Video Block", + "title": "3D Video", "description": "A video block for your environment", "attributes": { "videoUrl": { diff --git a/blocks/three-video-block/editor.scss b/blocks/three-video-block/editor.scss index a41c19e..4a6a4c4 100644 --- a/blocks/three-video-block/editor.scss +++ b/blocks/three-video-block/editor.scss @@ -15,12 +15,6 @@ border-radius: 30px; } -.three-object-viewer-button { - background-color:rgb(199, 254, 0); - color: black; - border: solid 1.5px black; -} - .glb-preview-container button:hover{ border-radius: 30px; background-color:rgb(156, 199, 0); From 6276dda9d88cfc6fd5597f1cae158fa05f56f207 Mon Sep 17 00:00:00 2001 From: antpb Date: Tue, 27 Sep 2022 19:19:42 -0500 Subject: [PATCH 20/48] adds html block and transform controls for models --- blocks/environment/Edit.js | 4 +- .../components/EnvironmentFront.js | 18 +- .../environment/components/ThreeObjectEdit.js | 70 +++- blocks/environment/editor.scss | 12 +- blocks/three-html-block/Edit.js | 373 ++++++++++++++++++ blocks/three-html-block/Edit.test.js | 57 +++ blocks/three-html-block/Save.js | 31 ++ blocks/three-html-block/block.json | 72 ++++ .../three-html-block/components/ModelEdit.js | 105 +++++ blocks/three-html-block/editor.scss | 49 +++ blocks/three-html-block/index.js | 197 +++++++++ blocks/three-html-block/init.php | 10 + blocks/three-html-block/style.scss | 44 +++ inc/functions.php | 25 ++ pluginMachine.json | 4 +- three-object-viewer.php | 3 + 16 files changed, 1056 insertions(+), 18 deletions(-) create mode 100644 blocks/three-html-block/Edit.js create mode 100644 blocks/three-html-block/Edit.test.js create mode 100644 blocks/three-html-block/Save.js create mode 100644 blocks/three-html-block/block.json create mode 100644 blocks/three-html-block/components/ModelEdit.js create mode 100644 blocks/three-html-block/editor.scss create mode 100644 blocks/three-html-block/index.js create mode 100644 blocks/three-html-block/init.php create mode 100644 blocks/three-html-block/style.scss diff --git a/blocks/environment/Edit.js b/blocks/environment/Edit.js index 81076dd..48562d2 100644 --- a/blocks/environment/Edit.js +++ b/blocks/environment/Edit.js @@ -23,7 +23,7 @@ import { more } from '@wordpress/icons'; import ThreeObjectEdit from './components/ThreeObjectEdit'; export default function Edit( { attributes, setAttributes, isSelected } ) { - const ALLOWED_BLOCKS = ['three-object-viewer/three-portal-block', 'three-object-viewer/model-block', 'three-object-viewer/sky-block', 'three-object-viewer/npc-block', 'three-object-viewer/three-image-block', 'three-object-viewer/three-video-block', 'three-object-viewer/three-audio-block' ]; + const ALLOWED_BLOCKS = allowed_blocks; const onChangeAnimations = ( animations ) => { setAttributes( { animations: animations } ); }; @@ -188,6 +188,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { positionY={ attributes.positionY } animations={ attributes.animations } rotationY={ attributes.rotationY } + selected={isSelected} /> ) : (
@@ -241,6 +242,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { positionY={ attributes.positionY } animations={ attributes.animations } rotationY={ attributes.rotationY } + selected={isSelected} /> ) : (
diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 9034df2..a7fa62f 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -6,6 +6,7 @@ import { Physics, RigidBody, MeshCollider, Debug } from "@react-three/rapier"; import { useAnimations, + Html } from '@react-three/drei'; import { A11y, @@ -285,6 +286,19 @@ function Portal( model ) { ); } +function Markup( model ) { + return(<> + + +
+ {model.markup} +
+ +
+ ); +} + + function Sky( sky ) { const skyUrl = sky.src[0].querySelector( 'p.sky-block-url' ) ? sky.src[0].querySelector( 'p.sky-block-url' ).innerText @@ -497,8 +511,6 @@ export default function EnvironmentFront( props ) { const videoUrl = item.querySelector( 'div.video-block-url' ) ? item.querySelector( 'div.video-block-url' ).innerText : ''; - console.log("no url?", item.querySelector( 'div.video-block-url' )); - console.log(item); const aspectHeight = item.querySelector( 'p.video-block-aspect-height' ) ? item.querySelector( 'p.video-block-aspect-height' ).innerText @@ -636,8 +648,6 @@ export default function EnvironmentFront( props ) { const animations = model.querySelector( 'p.three-portal-block-animations' ) ? model.querySelector( 'p.three-portal-block-animations' ).innerText : ''; - - console.log("where are we going?", destinationUrl); return( + + + + +
+
+ +
+
+ + ); +} function Sky( sky ) { const skyUrl = sky.src.skyUrl; @@ -30,7 +50,6 @@ function Sky( sky ) { function ModelObject( model ) { const [ url, set ] = useState( model.url ); - console.log(url); useEffect( () => { setTimeout( () => set( model.url ), 2000 ); }, [] ); @@ -73,15 +92,29 @@ function ModelObject( model ) { ); } - gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); + // gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); gltf.scene.rotation.set( 0, 0, 0 ); gltf.scene.scale.set(model.scaleX , model.scaleY, model.scaleZ ); // console.log(model.rotationX, model.rotationY, model.rotationZ); gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); // gltf.scene.scale.set( props.scale, props.scale, props.scale ); + const obj = useRef(); return <> - + + //updateBlockAttributes + wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.modelId, { positionX: e?.target.worldPosition.x, positionY: e?.target.worldPosition.y, positionZ: e?.target.worldPosition.z }) + // console.log( model.modelId, e?.target.worldPosition ) + } + > + + + + ; } @@ -89,22 +122,24 @@ function ModelObject( model ) { function ThreeObject( props ) { let skyobject = null; let modelobject = null; + let modelID = null; + let htmlobject = null; const currentBlocks = wp.data.select( 'core/block-editor' ).getBlocks(); if(currentBlocks){ currentBlocks.forEach( ( block ) => { - console.log("block", block); if (block.name === "three-object-viewer/environment"){ const currentInnerBlocks = block.innerBlocks; if (currentInnerBlocks) { currentInnerBlocks.forEach( ( innerBlock ) => { - console.log("inner block", innerBlock); if(innerBlock.name === "three-object-viewer/sky-block"){ skyobject = innerBlock.attributes; - console.log(skyobject) } if(innerBlock.name === "three-object-viewer/model-block"){ modelobject = innerBlock.attributes; - console.log(modelobject); + modelID= innerBlock.clientId; + } + if(innerBlock.name === "three-object-viewer/three-html-block"){ + htmlobject = innerBlock.attributes; } }); } @@ -164,6 +199,20 @@ function ThreeObject( props ) { return( <> {skyobject && } + {htmlobject && + + } {modelobject && modelobject.threeObjectUrl && } @@ -194,7 +245,7 @@ export default function ThreeObjectEdit( props ) { shadowMap style={ { margin: '0 Auto', - height: '500px', + height: '550px', width: '100%', } } > @@ -219,7 +270,8 @@ export default function ThreeObjectEdit( props ) { /> ) } - + + ); diff --git a/blocks/environment/editor.scss b/blocks/environment/editor.scss index 439d515..2398d62 100644 --- a/blocks/environment/editor.scss +++ b/blocks/environment/editor.scss @@ -23,7 +23,13 @@ } -.wp-block-three-object-viewer-sky-block, .wp-block-three-object-viewer-model-block, .wp-block-three-object-viewer-three-image-block, .wp-block-three-object-viewer-three-audio-block, .wp-block-three-object-viewer-three-portal-block, .wp-block-three-object-viewer-three-video-block { +.three-html-block-inner-wrapper{ + border-radius: 20px; + padding: 10px; + box-sizing: border-box; +} + +.wp-block-three-object-viewer-sky-block, .wp-block-three-object-viewer-model-block, .wp-block-three-object-viewer-three-image-block, .wp-block-three-object-viewer-three-audio-block, .wp-block-three-object-viewer-three-portal-block, .wp-block-three-object-viewer-three-video-block, .wp-block-three-object-viewer-three-html-block { display: flex; float: left; padding-left:10px; @@ -64,8 +70,8 @@ box-sizing: border-box; margin-bottom: 20px; margin-top: 20px; - max-width: 100px; - width: 100px; + max-width: 130px; + width: 130px; height: 100px; font-size: 0.8em; text-align: center; diff --git a/blocks/three-html-block/Edit.js b/blocks/three-html-block/Edit.js new file mode 100644 index 0000000..39d2521 --- /dev/null +++ b/blocks/three-html-block/Edit.js @@ -0,0 +1,373 @@ +import { __ } from '@wordpress/i18n'; +import React, { useState } from 'react'; +import { DropZone } from '@wordpress/components'; +import './editor.scss'; +import { + useBlockProps, + ColorPalette, + InspectorControls, + MediaUpload, +} from '@wordpress/block-editor'; +import { + Panel, + PanelBody, + PanelRow, + RangeControl, + ToggleControl, + SelectControl, + TextControl, + TextareaControl +} from '@wordpress/components'; +import { more } from '@wordpress/icons'; + +import ModelEdit from './components/ModelEdit'; + +export default function Edit( { attributes, setAttributes, isSelected } ) { + + const onChangePositionX = ( positionX ) => { + setAttributes( { positionX: positionX } ); + }; + const onChangePositionY = ( positionY ) => { + setAttributes( { positionY: positionY } ); + }; + const onChangePositionZ = ( positionZ ) => { + setAttributes( { positionZ: positionZ } ); + }; + + const onChangeRotationX = ( rotationX ) => { + setAttributes( { rotationX: rotationX } ); + }; + const onChangeRotationY = ( rotationY ) => { + setAttributes( { rotationY: rotationY } ); + }; + const onChangeRotationZ = ( rotationZ ) => { + setAttributes( { rotationZ: rotationZ } ); + }; + + const onChangeScaleX = ( scaleX ) => { + setAttributes( { scaleX: scaleX } ); + }; + const onChangeScaleY = ( scaleY ) => { + setAttributes( { scaleY: scaleY } ); + }; + const onChangeScaleZ = ( scaleZ ) => { + setAttributes( { scaleZ: scaleZ } ); + }; + + const onChangeAnimations = ( animations ) => { + setAttributes( { animations: animations } ); + }; + + const onChangeMarkup = ( html ) => { + setAttributes( { markup: html } ); + }; + + const onChangeDestinationUrl = ( destination ) => { + setAttributes( { destinationUrl: destination } ); + }; + + const onImageSelect = ( imageObject ) => { + setAttributes( { threeObjectUrl: null } ); + setAttributes( { threeObjectUrl: imageObject.url } ); + }; + + const onChangeCollidable = ( collidableSetting ) => { + setAttributes( { collidable: collidableSetting } ); + }; + + const [ enteredURL, setEnteredURL ] = useState( "" ); + + const { mediaUpload } = wp.editor; + + const ALLOWED_MEDIA_TYPES = [ + 'model/gltf-binary', + 'application/octet-stream', + ]; + + const MyDropZone = () => { + const [ hasDropped, setHasDropped ] = useState( false ); + return ( +
+ { hasDropped ? 'Dropped!' : 'Drop a glb here or' } + + mediaUpload( { + allowedTypes: ALLOWED_MEDIA_TYPES, + filesList: files, + onFileChange: ( [ images ] ) => { + onImageSelect( images ); + }, + } ) + } + /> +
+ ); + }; + + function handleClick(objectURL){ + if(objectURL){ + console.log("success good job", objectURL); + onImageSelect(objectURL); + } + console.log("fail", objectURL); + } + + + return ( +
+ + + + + + select a glb file from your media library to + render an object in the canvas: + + + + + onImageSelect( imageObject ) + } + type="image" + label="GLB File" + allowedTypes={ ALLOWED_MEDIA_TYPES } + value={ attributes.threeObjectUrl } + render={ ( { open } ) => ( + + ) } + /> + + + + + + onChangeMarkup( value ) + } + /> + + + { + onChangeCollidable( e ); + } } + /> + + + + onChangeAnimations( value ) + } + /> + + + + { __( 'Position', 'three-object-viewer' ) } + + + + + onChangePositionX( value ) + } + /> + + onChangePositionY( value ) + } + /> + + onChangePositionZ( value ) + } + /> + + + + { __( 'Rotation', 'three-object-viewer' ) } + + + + + onChangeRotationX( value ) + } + /> + + onChangeRotationY( value ) + } + /> + + onChangeRotationZ( value ) + } + /> + + + + { __( 'Scale', 'three-object-viewer' ) } + + + + + onChangeScaleX( value ) + } + /> + + onChangeScaleY( value ) + } + /> + + onChangeScaleZ( value ) + } + /> + + + + + { isSelected ? ( + <> + { attributes.threeObjectUrl ? ( +
+
+ + + + + +

HTML block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+
+ ) : ( +
+
+ + + + + +

HTML block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+
+ ) } + + ) : ( + <> + { attributes.threeObjectUrl ? ( +
+
+ + + + + +

HTML block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+
+ ) : ( +
+
+ + + + + +

HTML block

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+
+ ) } + + ) } +
+ ); +} diff --git a/blocks/three-html-block/Edit.test.js b/blocks/three-html-block/Edit.test.js new file mode 100644 index 0000000..ab10afe --- /dev/null +++ b/blocks/three-html-block/Edit.test.js @@ -0,0 +1,57 @@ + +//Import React +import React from 'react'; +//Import test renderer +import { render, fireEvent, cleanup } from '@testing-library/react'; +//Import component to test +import { Editor } from './Edit'; + + +describe("Editor componet", () => { + afterEach(cleanup); + it('matches snapshot when selected', () => { + const onChange = jest.fn(); + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it('matches snapshot when not selected', () => { + const onChange = jest.fn(); + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render(); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); + + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render(); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); \ No newline at end of file diff --git a/blocks/three-html-block/Save.js b/blocks/three-html-block/Save.js new file mode 100644 index 0000000..6e7181e --- /dev/null +++ b/blocks/three-html-block/Save.js @@ -0,0 +1,31 @@ +import { __ } from '@wordpress/i18n'; +import { useBlockProps } from '@wordpress/block-editor'; + +export default function save( { attributes } ) { + return ( +
+ <> +
+

+ { attributes.threeObjectUrl } +

+

+ { attributes.destinationUrl } +

+

{ attributes.scaleX }

+

{ attributes.scaleY }

+

{ attributes.scaleZ }

+

{ attributes.positionX }

+

{ attributes.positionY }

+

{ attributes.positionZ }

+

{ attributes.rotationX }

+

{ attributes.rotationY }

+

{ attributes.rotationZ }

+

+ { attributes.animations } +

+
+ +
+ ); +} diff --git a/blocks/three-html-block/block.json b/blocks/three-html-block/block.json new file mode 100644 index 0000000..48a2004 --- /dev/null +++ b/blocks/three-html-block/block.json @@ -0,0 +1,72 @@ +{ + "name": "three-object-viewer/three-html-block", + "title": "3D HTML Canvas", + "description": "A 3D HTML Canvas", + "attributes": { + "scaleX": { + "type": "int", + "default":1 + }, + "scaleY": { + "type": "int", + "default":1 + }, + "scaleZ": { + "type": "int", + "default":1 + }, + "positionX": { + "type": "int", + "default":0 + }, + "positionY": { + "type": "int", + "default":0 + }, + "positionZ": { + "type": "int", + "default":0 + }, + "rotationX": { + "type": "int", + "default":0 + }, + "rotationY": { + "type": "int", + "default":0 + }, + "rotationZ": { + "type": "int", + "default":0 + }, + "threeObjectUrl": { + "type": "string", + "default": null + }, + "destinationUrl": { + "type": "string", + "default": null + }, + "markup": { + "type": "string", + "default": null + }, + "animations": { + "type": "string", + "default": "" + }, + "collidable": { + "type": "boolean", + "default": false + } + }, + "category": "3D", + "apiVersion": 2, + "supports": { + "html": false, + "multiple": true + }, + "editorScript": "file:../../build/block-three-html-block.js", + "editorStyle": "file:../../build/block-three-html-block.css", + "style": "file:../../build/block-three-html-block.css" +} diff --git a/blocks/three-html-block/components/ModelEdit.js b/blocks/three-html-block/components/ModelEdit.js new file mode 100644 index 0000000..c71bd1b --- /dev/null +++ b/blocks/three-html-block/components/ModelEdit.js @@ -0,0 +1,105 @@ +import * as THREE from 'three'; +import React, { Suspense, useRef, useState, useEffect } from 'react'; +import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import { + OrthographicCamera, + PerspectiveCamera, + OrbitControls, + useAnimations, +} from '@react-three/drei'; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' +import { GLTFAudioEmitterExtension } from 'three-omi'; + + +function ThreeObject( props ) { + const [ url, set ] = useState( props.url ); + useEffect( () => { + setTimeout( () => set( props.url ), 2000 ); + }, [] ); + const [ listener ] = useState( () => new THREE.AudioListener() ); + + useThree( ( { camera } ) => { + camera.add( listener ); + } ); + + const gltf = useLoader( GLTFLoader, url, ( loader ) => { + loader.register( + ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + ); + loader.register( ( parser ) => { + + return new VRMLoaderPlugin( parser ); + + } ); + + } ); + + const { actions } = useAnimations( gltf.animations, gltf.scene ); + + const animationList = props.animations ? props.animations.split( ',' ) : ''; + + useEffect( () => { + if ( animationList ) { + animationList.forEach( ( name ) => { + if ( Object.keys( actions ).includes( name ) ) { + actions[ name ].play(); + } + } ); + } + }, [] ); + + if(gltf?.userData?.gltfExtensions?.VRM){ + const vrm = gltf.userData.vrm; + vrm.scene.position.set( 0, props.positionY, 0 ); + VRMUtils.rotateVRM0( vrm ); + const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); + vrm.scene.rotation.set( 0, rotationVRM, 0 ); + vrm.scene.scale.set( props.scale, props.scale, props.scale ); + return ; + } + gltf.scene.position.set( 0, 0, 0 ); + gltf.scene.rotation.set( 0, 0, 0 ); + gltf.scene.scale.set( 1, 1, 1 ); + return ; +} + +export default function ModelEdit( props ) { + return ( + <> + + + + + { props.url && ( + + + + ) } + + + { props.hasTip && ( +

Click and drag ^

+ ) } + + ); +} diff --git a/blocks/three-html-block/editor.scss b/blocks/three-html-block/editor.scss new file mode 100644 index 0000000..b89aa07 --- /dev/null +++ b/blocks/three-html-block/editor.scss @@ -0,0 +1,49 @@ + + .wp-block-three-object-block { + border: 1px dotted #f00; +} + .glb-preview-container { + padding: 100px; + text-align: center; + align-items: center; + align-content: center; + background-color:#f2f2f2; + } + + .glb-preview-container button{ + padding: 15px; + border-radius: 30px; +} + +.glb-preview-container button:hover{ + border-radius: 30px; + background-color:rgb(156, 199, 0); + cursor: pointer; +} +.three-object-block-tip { + overflow-wrap: break-word; + background-color: black; + color: white; + padding: 10px; + font-weight: 500; + max-width: 160px; + font-size: 12px; + margin-top: 0px; + margin: 0 auto; + text-align: center; +} + +.three-object-block-url-input { + padding-bottom: 20px; +} + +.three-object-block-url-input input{ + height: 40px; +} + +.block-editor-block-inspector .components-base-control.position-inputs:last-child { + margin-bottom: 24px !important; +} +.block-editor-block-inspector .components-base-control.position-inputs { + padding-right: 5px; +} diff --git a/blocks/three-html-block/index.js b/blocks/three-html-block/index.js new file mode 100644 index 0000000..22b14b6 --- /dev/null +++ b/blocks/three-html-block/index.js @@ -0,0 +1,197 @@ +import { registerBlockType } from '@wordpress/blocks'; +import Edit from './Edit'; +import Save from './Save'; +import { useBlockProps } from '@wordpress/block-editor'; + +const icon = ( + + + + + +); + +const blockConfig = require( './block.json' ); +registerBlockType( blockConfig.name, { + ...blockConfig, + icon: icon, + apiVersion: 2, + edit: Edit, + save: Save, + deprecated: [ + { + attributes: { + bg_color: { + type: 'string', + default: '#FFFFFF', + }, + zoom: { + type: 'integer', + default: 90, + }, + scale: { + type: 'integer', + default: 1, + }, + positionX: { + type: 'integer', + default: 0, + }, + positionY: { + type: 'integer', + default: 0, + }, + rotationY: { + type: 'integer', + default: 0, + }, + threeObjectUrl: { + type: 'string', + default: null, + }, + hasZoom: { + type: 'bool', + default: false, + }, + hasTip: { + type: 'bool', + default: true, + }, + deviceTarget: { + type: 'string', + default: '2d', + }, + }, + save( props ) { + return ( +
+ <> +
+

+ { props.attributes.deviceTarget } +

+

+ { props.attributes.threeObjectUrl } +

+

+ { props.attributes.scale } +

+

+ { props.attributes.bg_color } +

+

+ { props.attributes.zoom } +

+

+ { props.attributes.hasZoom ? 1 : 0 } +

+

+ { props.attributes.hasTip ? 1 : 0 } +

+

+ { props.attributes.positionY } +

+

+ { props.attributes.rotationY } +

+

+ { props.attributes.scale } +

+
+ +
+ ); + }, + }, + { + attributes: { + bg_color: { + type: 'string', + default: '#FFFFFF', + }, + zoom: { + type: 'integer', + default: 90, + }, + scale: { + type: 'integer', + default: 1, + }, + positionX: { + type: 'integer', + default: 0, + }, + positionY: { + type: 'integer', + default: 0, + }, + rotationY: { + type: 'integer', + default: 0, + }, + threeObjectUrl: { + type: 'string', + default: null, + }, + hasZoom: { + type: 'bool', + default: false, + }, + hasTip: { + type: 'bool', + default: true, + }, + deviceTarget: { + type: 'string', + default: '2d', + }, + animations: { + type: 'string', + default: '', + } + }, + save( props ) { + return ( +
+ <> +
+

+ { props.attributes.deviceTarget } +

+

+ { props.attributes.threeObjectUrl } +

+

{ props.attributes.scale }

+

+ { props.attributes.bg_color } +

+

{ props.attributes.zoom }

+

+ { props.attributes.hasZoom ? 1 : 0 } +

+

+ { props.attributes.hasTip ? 1 : 0 } +

+

+ { props.attributes.positionY } +

+

+ { props.attributes.rotationY } +

+

{ props.attributes.scale }

+

+ { props.attributes.animations } +

+
+ +
+ ); + }, + }, + ], +} ); diff --git a/blocks/three-html-block/init.php b/blocks/three-html-block/init.php new file mode 100644 index 0000000..b45fe98 --- /dev/null +++ b/blocks/three-html-block/init.php @@ -0,0 +1,10 @@ + Date: Thu, 29 Sep 2022 18:41:40 -0500 Subject: [PATCH 21/48] adds transform instancing for editor and adds rotation properties to html canvas --- .../components/EnvironmentFront.js | 71 +++++-- .../environment/components/ThreeObjectEdit.js | 195 +++++++++++++----- blocks/environment/frontend.js | 6 +- blocks/three-html-block/Save.js | 35 ++-- 4 files changed, 224 insertions(+), 83 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index a7fa62f..fddcf4b 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -22,7 +22,7 @@ import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' import TeleportTravel from './TeleportTravel'; import Player from './Player'; import defaultVRM from '../../../inc/avatars/mummy.vrm'; -import { useAspect } from '@react-three/drei' +import { useAspect } from '@react-three/drei'; function Participant( participant ) { // Participant VRM. @@ -286,19 +286,6 @@ function Portal( model ) { ); } -function Markup( model ) { - return(<> - - -
- {model.markup} -
- -
- ); -} - - function Sky( sky ) { const skyUrl = sky.src[0].querySelector( 'p.sky-block-url' ) ? sky.src[0].querySelector( 'p.sky-block-url' ).innerText @@ -356,6 +343,23 @@ function Floor( props ) { ); } +function Markup( model ) { + const htmlObj = useRef(); + const {scene}= useThree(); + return(<> + + + + +
+
+ +
+
+ ); +} + + export default function EnvironmentFront( props ) { if ( props.deviceTarget === 'vr' ) { return ( @@ -599,6 +603,45 @@ export default function EnvironmentFront( props ) { alt={alt} animations={animations} />); + })} + { Object.values(props.htmlToAdd).map((model, index)=>{ + const markup = model.querySelector( 'p.three-html-markup' ) + ? model.querySelector( 'p.three-html-markup' ).innerText + : ''; + const rotationX = model.querySelector( 'p.three-html-rotationX' ) + ? model.querySelector( 'p.three-html-rotationX' ).innerText + : ''; + const rotationY = model.querySelector( 'p.three-html-rotationY' ) + ? model.querySelector( 'p.three-html-rotationY' ).innerText + : ''; + const rotationZ = model.querySelector( 'p.three-html-rotationZ' ) + ? model.querySelector( 'p.three-html-rotationZ' ).innerText + : ''; + const positionX = model.querySelector( 'p.three-html-positionX' ) + ? model.querySelector( 'p.three-html-positionX' ).innerText + : ''; + const positionY = model.querySelector( 'p.three-html-positionY' ) + ? model.querySelector( 'p.three-html-positionY' ).innerText + : ''; + const positionZ = model.querySelector( 'p.three-html-positionZ' ) + ? model.querySelector( 'p.three-html-positionZ' ).innerText + : ''; + + console.log("some markup", markup); + return(); })} { Object.values(props.portalsToAdd).map((model, index)=>{ const modelPosX = model.querySelector( 'p.three-portal-block-position-x' ) diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 4efd755..5d9ed49 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -7,7 +7,8 @@ import { OrbitControls, useAnimations, Html, - TransformControls + TransformControls, + Stats } from '@react-three/drei'; import { VRMUtils, VRMLoaderPlugin } from '@pixiv/three-vrm' import { GLTFAudioEmitterExtension } from 'three-omi'; @@ -18,19 +19,36 @@ import EditControls from './EditControls'; import CustomComponent from '../../../../four-object-viewer/blocks/four-portal-block/components/CustomComponent'; function Markup( model ) { - const targetLoc = useRef(); - + const htmlObj = useRef(); + const { scene } = useThree(); return(<> - - - - -
-
- -
-
- + { + const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.htmlobjectId, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + }) + }} + > + + + + +
+
+ +
+
+
); } @@ -92,38 +110,63 @@ function ModelObject( model ) { ); } - // gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); gltf.scene.rotation.set( 0, 0, 0 ); - gltf.scene.scale.set(model.scaleX , model.scaleY, model.scaleZ ); - // console.log(model.rotationX, model.rotationY, model.rotationZ); - gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); - // gltf.scene.scale.set( props.scale, props.scale, props.scale ); const obj = useRef(); - return <> + return ( model.transformMode !== undefined ? (<> - //updateBlockAttributes - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.modelId, { positionX: e?.target.worldPosition.x, positionY: e?.target.worldPosition.y, positionZ: e?.target.worldPosition.z }) - // console.log( model.modelId, e?.target.worldPosition ) + mode={model.transformMode ? model.transformMode : "translate" } + object={ obj } + onObjectChange={ ( e ) => { + const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.modelId, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + }) + } } > - + - ; + ) : (<> + + + + + + ) + ); } function ThreeObject( props ) { - let skyobject = null; - let modelobject = null; - let modelID = null; - let htmlobject = null; + let skyobject; + let skyobjectId; + let modelobject; + let modelID; + let editorModelsToAdd = []; + let editorHtmlToAdd= []; + let htmlobject; + let htmlobjectId; + const currentBlocks = wp.data.select( 'core/block-editor' ).getBlocks(); if(currentBlocks){ currentBlocks.forEach( ( block ) => { @@ -131,15 +174,21 @@ function ThreeObject( props ) { const currentInnerBlocks = block.innerBlocks; if (currentInnerBlocks) { currentInnerBlocks.forEach( ( innerBlock ) => { + // console.log(innerBlock); if(innerBlock.name === "three-object-viewer/sky-block"){ skyobject = innerBlock.attributes; + skyobjectId = innerBlock.clientId; } if(innerBlock.name === "three-object-viewer/model-block"){ modelobject = innerBlock.attributes; - modelID= innerBlock.clientId; + modelID = innerBlock.clientId; + let something = [{modelobject, modelID}] + editorModelsToAdd.push({modelobject, modelID}); } if(innerBlock.name === "three-object-viewer/three-html-block"){ htmlobject = innerBlock.attributes; + htmlobjectId = innerBlock.clientId; + editorHtmlToAdd.push({htmlobject, htmlobjectId}); } }); } @@ -196,24 +245,46 @@ function ThreeObject( props ) { gltf.scene.position.set( 0, props.positionY, 0 ); gltf.scene.rotation.set( 0, props.rotationY, 0 ); gltf.scene.scale.set( props.scale, props.scale, props.scale ); + return( <> - {skyobject && } - {htmlobject && - - } - {modelobject && modelobject.threeObjectUrl && + {skyobject && } + { Object.values(editorModelsToAdd).map((model, index)=>{ + return(); + })} + { Object.values(editorHtmlToAdd).map((markup, index)=>{ + return(); + })} + {/* {modelobject && props.transformMode && modelobject.threeObjectUrl && - } + } */} ); } export default function ThreeObjectEdit( props ) { + + const [ transformMode, setTransformMode ] = useState("translate"); + const onKeyDown = function ( event ) { + switch ( event.code ) { + case 'KeyT': + setTransformMode( "translate" ); + console.log(transformMode) + break; + case 'KeyR': + setTransformMode( "rotate" ); + console.log(transformMode) + break; + default: + return; + } + }; + document.addEventListener( 'keydown', onKeyDown ); + + return ( <> + ) } - diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index 552683e..b53421d 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -5,6 +5,7 @@ import Networking from './components/Networking'; const threeApp = document.querySelectorAll( '.three-object-three-app-environment' ); const modelsToAdd = document.querySelectorAll( '.three-object-three-app-model-block' ); +const htmlToAdd = document.querySelectorAll( '.three-object-three-app-three-html-block' ); const portalsToAdd = document.querySelectorAll( '.three-object-three-app-three-portal-block' ); const sky = document.querySelectorAll( '.three-object-three-app-sky-block' ); const imagesToAdd = document.querySelectorAll( '.three-object-three-app-image-block' ); @@ -50,7 +51,7 @@ threeApp.forEach( ( threeApp ) => { render( <> -
+ {/*

Peers

@@ -63,7 +64,7 @@ threeApp.forEach( ( threeApp ) => { + /> */} { portalsToAdd={ portalsToAdd } imagesToAdd={ imagesToAdd } videosToAdd={ videosToAdd } + htmlToAdd={htmlToAdd} sky={ sky ? sky : '' } />, threeApp diff --git a/blocks/three-html-block/Save.js b/blocks/three-html-block/Save.js index 6e7181e..8719ce7 100644 --- a/blocks/three-html-block/Save.js +++ b/blocks/three-html-block/Save.js @@ -5,24 +5,27 @@ export default function save( { attributes } ) { return (
<> -
-

- { attributes.threeObjectUrl } +

+

+ { attributes.markup }

-

- { attributes.destinationUrl } +

+ { attributes.positionX }

-

{ attributes.scaleX }

-

{ attributes.scaleY }

-

{ attributes.scaleZ }

-

{ attributes.positionX }

-

{ attributes.positionY }

-

{ attributes.positionZ }

-

{ attributes.rotationX }

-

{ attributes.rotationY }

-

{ attributes.rotationZ }

-

- { attributes.animations } +

+ { attributes.positionY } +

+

+ { attributes.positionZ } +

+

+ { attributes.rotationX } +

+

+ { attributes.rotationY } +

+

+ { attributes.rotationZ }

From a18f414acea4b687dfe9a2adfd4916e86b2dc512 Mon Sep 17 00:00:00 2001 From: antpb Date: Fri, 30 Sep 2022 23:27:24 -0500 Subject: [PATCH 22/48] fix edit models --- blocks/environment/components/Networking.js | 8 +++- .../environment/components/ThreeObjectEdit.js | 41 +++++++++++-------- blocks/environment/frontend.js | 5 ++- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/blocks/environment/components/Networking.js b/blocks/environment/components/Networking.js index 33889ad..f2c8760 100644 --- a/blocks/environment/components/Networking.js +++ b/blocks/environment/components/Networking.js @@ -103,9 +103,13 @@ const Networking = (props) => { document.readyState === 'complete' || document.readyState === 'interactive' ) { - go() + document + .getElementById('join-button') + .addEventListener('click', async () => { + go() + }) } else { - window.addEventListener('DOMContentLoaded', go, { once: true }) + // window.addEventListener('DOMContentLoaded', go, { once: true }) } return ( diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 5d9ed49..885d3b5 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -26,6 +26,7 @@ function Markup( model ) { enabled={model.selected} mode={model.transformMode} object={ htmlObj } + size={0.5} onObjectChange={ ( e ) => { const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); rot.setFromQuaternion(e?.target.worldQuaternion); @@ -118,6 +119,7 @@ function ModelObject( model ) { enabled={model.selected} mode={model.transformMode ? model.transformMode : "translate" } object={ obj } + size={0.5} onObjectChange={ ( e ) => { const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); rot.setFromQuaternion(e?.target.worldQuaternion); @@ -250,23 +252,28 @@ function ThreeObject( props ) { <> {skyobject && } { Object.values(editorModelsToAdd).map((model, index)=>{ - return(); + console.log("some model", model) + if(model.modelobject.threeObjectUrl){ + return( + + ); + } })} { Object.values(editorHtmlToAdd).map((markup, index)=>{ return( { render( <> - {/*
+

Peers

@@ -59,12 +59,13 @@ threeApp.forEach( ( threeApp ) => {
Send Button
+
*/} + /> Date: Fri, 30 Sep 2022 23:59:20 -0500 Subject: [PATCH 23/48] adds resizable component --- blocks/environment/components/ThreeObjectEdit.js | 12 +++++++++++- package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 885d3b5..6bb2d53 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -17,6 +17,7 @@ import { } from '@react-three/a11y'; import EditControls from './EditControls'; import CustomComponent from '../../../../four-object-viewer/blocks/four-portal-block/components/CustomComponent'; +import { Resizable } from 're-resizable'; function Markup( model ) { const htmlObj = useRef(); @@ -337,6 +338,14 @@ export default function ThreeObjectEdit( props ) { return ( <> + @@ -373,6 +382,7 @@ export default function ThreeObjectEdit( props ) { ) } + ); } diff --git a/package.json b/package.json index dd9a6d1..d5ac333 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "convert-hex": "^0.1.0", "events": "^3.3.0", "get-browser-rtc": "^1.1.0", + "re-resizable": "^6.9.9", "three": "0.144.0", "three-omi": "^0.1.5", "tiny-simple-peer": "^10.1.1" diff --git a/yarn.lock b/yarn.lock index 54929fb..cb6f851 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12568,6 +12568,11 @@ re-resizable@^6.4.0: dependencies: fast-memoize "^2.5.1" +re-resizable@^6.9.9: + version "6.9.9" + resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.9.9.tgz#99e8b31c67a62115dc9c5394b7e55892265be216" + integrity sha512-l+MBlKZffv/SicxDySKEEh42hR6m5bAHfNu3Tvxks2c4Ah+ldnWjfnVRwxo/nxF27SsUsxDS0raAzFuJNKABXA== + react-addons-shallow-compare@^15.6.2: version "15.6.3" resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.3.tgz#28a94b0dfee71530852c66a69053d59a1baf04cb" From 5830f1fa23c26a6828c2194cad1f9d2673959be0 Mon Sep 17 00:00:00 2001 From: antpb Date: Sun, 2 Oct 2022 20:53:48 -0500 Subject: [PATCH 24/48] adds instnaced object for same object --- .../components/EnvironmentFront.js | 35 +++++--- .../environment/components/ThreeObjectEdit.js | 69 +++++++++------ blocks/environment/editor.scss | 4 + package.json | 1 + yarn.lock | 86 ++++++++++++++++++- 5 files changed, 155 insertions(+), 40 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index fddcf4b..fde23fb 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -1,12 +1,13 @@ import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect } from 'react'; +import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; import { Physics, RigidBody, MeshCollider, Debug } from "@react-three/rapier"; import { useAnimations, - Html + Html, + Stats } from '@react-three/drei'; import { A11y, @@ -18,6 +19,7 @@ import { Hands, XRButton } from '@react-three/xr'; +import { Perf } from 'r3f-perf'; import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' import TeleportTravel from './TeleportTravel'; import Player from './Player'; @@ -161,9 +163,11 @@ function SavedObject( props ) { gltf.scene.position.set( 0, props.positionY, 0 ); gltf.scene.rotation.set( 0, props.rotationY, 0 ); gltf.scene.scale.set( props.scale, props.scale, props.scale ); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) + return(<> - + { participants && participants.map((item, index)=>{ return ( @@ -217,20 +221,23 @@ function ModelObject( model ) { vrm.scene.rotation.set( 0, rotationVRM, 0 ); vrm.scene.scale.set( 1, 1, 1 ); vrm.scene.scale.set( model.scaleX, model.scaleY, model.scaleZ ); - return ( - - ); + return ( + // + + // + ); } gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); gltf.scene.rotation.set( 0, 0, 0 ); gltf.scene.scale.set(model.scaleX , model.scaleY, model.scaleZ ); - // console.log(model.rotationX, model.rotationY, model.rotationZ); gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); - // gltf.scene.scale.set( props.scale, props.scale, props.scale ); + console.log("gltf", gltf); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) + return <> - - - + {/* */} + + {/* */} ; } @@ -272,6 +279,8 @@ function Portal( model ) { // console.log(model.rotationX, model.rotationY, model.rotationZ); gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); // gltf.scene.scale.set( props.scale, props.scale, props.scale ); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) + return(<> - + ); } @@ -375,6 +384,7 @@ export default function EnvironmentFront( props ) { padding: '0', } } > + {/* */} @@ -627,7 +637,6 @@ export default function EnvironmentFront( props ) { ? model.querySelector( 'p.three-html-positionZ' ).innerText : ''; - console.log("some markup", markup); return( { camera.add( listener ); } ); + const {camera} = useThree(); const gltf = useLoader( GLTFLoader, model.url, ( loader ) => { loader.register( @@ -108,30 +109,39 @@ function ModelObject( model ) { vrm.scene.rotation.set( 0, rotationVRM, 0 ); vrm.scene.scale.set( 1, 1, 1 ); vrm.scene.scale.set( model.scaleX, model.scaleY, model.scaleZ ); - return ( - - ); + return ( + // + + // + ); } gltf.scene.rotation.set( 0, 0, 0 ); const obj = useRef(); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) + return ( model.transformMode !== undefined ? (<> - { - const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); - rot.setFromQuaternion(e?.target.worldQuaternion); - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.modelId, { - positionX: e?.target.worldPosition.x, - positionY: e?.target.worldPosition.y, - positionZ: e?.target.worldPosition.z, - rotationX: rot.x, - rotationY: rot.y, - rotationZ: rot.z, - }) + const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.modelId, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + }); + console.log(model.setFocusPosition); + + if(model.shouldFocus){ + // model.setFocusPosition([e?.target.worldPosition.x, e?.target.worldPosition.y, e?.target.worldPosition.z]); + // camera.position.set(model.focusPosition); + } } } > @@ -141,21 +151,18 @@ function ModelObject( model ) { rotation={[ model.rotationX , model.rotationY, model.rotationZ ]} scale={[ model.scaleX , model.scaleY, model.scaleZ ]} > - + - ) : (<> - - + - ) ); } @@ -248,12 +255,12 @@ function ThreeObject( props ) { gltf.scene.position.set( 0, props.positionY, 0 ); gltf.scene.rotation.set( 0, props.rotationY, 0 ); gltf.scene.scale.set( props.scale, props.scale, props.scale ); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) return( <> {skyobject && } { Object.values(editorModelsToAdd).map((model, index)=>{ - console.log("some model", model) if(model.modelobject.threeObjectUrl){ return( ); } @@ -311,7 +320,7 @@ function ThreeObject( props ) { transformMode={props.transformMode} /> } */} - + ); } @@ -319,7 +328,9 @@ function ThreeObject( props ) { export default function ThreeObjectEdit( props ) { const [ transformMode, setTransformMode ] = useState("translate"); - const onKeyDown = function ( event ) { + const [ focusPosition, setFocusPosition ] = useState([0,0,0]); + const [ shouldFocus, setShouldFocus ] = useState(false); + const onKeyUp = function ( event ) { switch ( event.code ) { case 'KeyT': setTransformMode( "translate" ); @@ -329,11 +340,15 @@ export default function ThreeObjectEdit( props ) { setTransformMode( "rotate" ); console.log(transformMode) break; + case 'KeyF': + console.log(focusPosition) + setShouldFocus(true); + break; default: return; } }; - document.addEventListener( 'keydown', onKeyDown ); + document.addEventListener( 'keyup', onKeyUp ); return ( @@ -357,7 +372,7 @@ export default function ThreeObjectEdit( props ) { width: '100%', } } > - + ) } diff --git a/blocks/environment/editor.scss b/blocks/environment/editor.scss index 2398d62..310f04e 100644 --- a/blocks/environment/editor.scss +++ b/blocks/environment/editor.scss @@ -79,6 +79,10 @@ box-shadow:0px 1px 5px 1px #1e1e1e; } +.stats { + margin-top: 200px !important; +} + .three-object-viewer-inner svg { max-height: 30px; filter: invert(88%) ; diff --git a/package.json b/package.json index d5ac333..512bf4c 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "convert-hex": "^0.1.0", "events": "^3.3.0", "get-browser-rtc": "^1.1.0", + "r3f-perf": "4.9.1", "re-resizable": "^6.9.9", "three": "0.144.0", "three-omi": "^0.1.5", diff --git a/yarn.lock b/yarn.lock index cb6f851..30fa4ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1858,6 +1858,11 @@ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== +"@stitches/react@^1.1.0": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@stitches/react/-/react-1.2.8.tgz#954f8008be8d9c65c4e58efa0937f32388ce3a38" + integrity sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA== + "@stylelint/postcss-css-in-js@^0.37.2": version "0.37.2" resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" @@ -2175,6 +2180,11 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== +"@types/offscreencanvas@^2019.6.4": + version "2019.7.0" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz#e4a932069db47bb3eabeb0b305502d01586fa90d" + integrity sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -4660,6 +4670,14 @@ camelcase@^6.0.0, camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +candygraph@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/candygraph/-/candygraph-0.3.1.tgz#cd1d179cf99d47a6eb8d7a02c6af8302c9e3d5cf" + integrity sha512-hKucn1biGRIDYxtYj+a5lIl5L8oQy7reE4aQAFKBteq3EodYfZQnLgmbMoQItBFZMLFa173fm3CLfiLhwM6lZw== + dependencies: + gl-matrix "^3.3.0" + regl "^1.7.0" + caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317: version "1.0.30001332" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" @@ -7940,6 +7958,11 @@ gettext-parser@^1.3.1: encoding "^0.1.12" safe-buffer "^5.1.1" +gl-matrix@^3.3.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.4.3.tgz#fc1191e8320009fd4d20e9339595c6041ddc22c9" + integrity sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA== + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -9987,6 +10010,11 @@ ktx-parse@^0.2.1: resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.2.2.tgz#b037b66044855215b332cb73104590af49e47791" integrity sha512-cFBc1jnGG2WlUf52NbDUXK2obJ+Mo9WUkBRvr6tP6CKxRMvZwDDFNV3JAS4cewETp5KyexByfWm9sm+O8AffiQ== +ktx-parse@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.4.5.tgz#79905e22281a9d3e602b2ff522df1ee7d1813aa6" + integrity sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg== + labeled-stream-splicer@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" @@ -10017,6 +10045,11 @@ lazy-cache@^1.0.3: resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= +lerp@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/lerp/-/lerp-1.0.3.tgz#a18c8968f917896de15ccfcc28d55a6b731e776e" + integrity sha512-70Rh4rCkJDvwWiTsyZ1HmJGvnyfFah4m6iTux29XmasRiZPDBpT9Cfa4ai73+uLZxnlKruUS62jj2lb11wURiA== + leven@3.1.0, leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -12488,6 +12521,20 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +r3f-perf@4.9.1: + version "4.9.1" + resolved "https://registry.yarnpkg.com/r3f-perf/-/r3f-perf-4.9.1.tgz#f9b0e1e076871e8c54ce2ecf8e7a66c7d4923478" + integrity sha512-IGOrpxIjNhdxV46vqmET4X+C1pIuEk3fPpVHafoEknm1+jiysKLxGOtXGSNlmD3plyi9JRx/cC84BHyJ0Czwkw== + dependencies: + "@stitches/react" "^1.1.0" + candygraph "0.3.1" + lerp "^1.0.3" + rafz "^0.1.14" + react-icons "^4.2.0" + three "*" + three-stdlib "^2.4.0" + zustand "^3.5.10" + raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -12495,6 +12542,11 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" +rafz@^0.1.14: + version "0.1.14" + resolved "https://registry.yarnpkg.com/rafz/-/rafz-0.1.14.tgz#164f01cf7cc6094e08467247ef351ef5c8d278fe" + integrity sha512-YiQkedSt1urYtYbvHhTQR3l67M8SZbUvga5eJFM/v4vx/GmDdtXlE2hjJIyRjhhO/PjcdGC+CXCYOUA4onit8w== + railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" @@ -12624,6 +12676,11 @@ react-dom@^17.0.1, react-dom@^17.0.2: object-assign "^4.1.1" scheduler "^0.20.2" +react-icons@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.4.0.tgz#a13a8a20c254854e1ec9aecef28a95cdf24ef703" + integrity sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg== + react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -12988,6 +13045,11 @@ regjsparser@^0.8.2: dependencies: jsesc "~0.5.0" +regl@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/regl/-/regl-1.7.0.tgz#0d185431044a356bf80e9b775b11b935ef2746d3" + integrity sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w== + remark-math@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-1.0.6.tgz#49eb3dd15d298734c9ae21673115389793af4d1b" @@ -14729,6 +14791,23 @@ three-omi@^0.1.5: resolved "https://registry.yarnpkg.com/three-omi/-/three-omi-0.1.5.tgz#51a96d9f998ec770fc0ff58a9ce7bd297e71daef" integrity sha512-0kDTKeEaowN9u0C0wHxbpmDHLJDmsqavbynjIi2ITPoIo/R2znbqxKdd64IfHf9Xv7HgxLnBfL0OM8PDTLu79A== +three-stdlib@^2.4.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.17.0.tgz#5915b110ec6dbf07e0e653bd59889293c7b93407" + integrity sha512-m19X4+ajh+2EJIVcjB288LgbqTli5b8kFahJlg9oNCBfaL8geCgEoM4OUirgV0Ez6Lr58N1MPBR6LjJt7ALfKQ== + dependencies: + "@babel/runtime" "^7.16.7" + "@types/offscreencanvas" "^2019.6.4" + "@webgpu/glslang" "^0.0.15" + chevrotain "^10.1.2" + draco3d "^1.4.1" + fflate "^0.6.9" + ktx-parse "^0.4.5" + mmd-parser "^1.0.4" + opentype.js "^1.3.3" + potpack "^1.0.1" + zstddec "^0.0.2" + three-stdlib@^2.8.6, three-stdlib@^2.8.9: version "2.9.1" resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.9.1.tgz#300abf6cf12ab388e515fd8572217288dffe4736" @@ -14745,6 +14824,11 @@ three-stdlib@^2.8.6, three-stdlib@^2.8.9: potpack "^1.0.1" zstddec "^0.0.2" +three@*: + version "0.145.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.145.0.tgz#a613d71e75effc2aed88be630027ca01e2b6502e" + integrity sha512-EKoHQEtEJ4CB6b2BGMBgLZrfwLjXcSUfoI/MiIXUuRpeYsfK5aPWbYhdtIVWOH+x6X0TouldHKHBuc/LAiFzAw== + three@0.144.0: version "0.144.0" resolved "https://registry.yarnpkg.com/three/-/three-0.144.0.tgz#2818517169f8ff94eea5f664f6ff1fcdcd436cc8" @@ -16203,7 +16287,7 @@ zstddec@^0.0.2: resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz#57e2f28dd1ff56b750e07d158a43f0611ad9eeb4" integrity sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA== -zustand@^3.2.0, zustand@^3.5.13, zustand@^3.7.1: +zustand@^3.2.0, zustand@^3.5.10, zustand@^3.5.13, zustand@^3.7.1: version "3.7.2" resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d" integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA== From 8f3eb3c91b9c57f2f0675ec238cf352f603613f7 Mon Sep 17 00:00:00 2001 From: antpb Date: Wed, 5 Oct 2022 00:12:10 -0500 Subject: [PATCH 25/48] checking in progress to revamp frontend loading and character controller --- blocks/environment/components/Controls.js | 7 ++- .../components/EnvironmentFront.js | 43 ++++++++++++++++--- blocks/environment/components/Player.js | 19 ++++---- blocks/model-block/Save.js | 3 ++ inc/functions.php | 11 ++--- 5 files changed, 56 insertions(+), 27 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 158febb..4c9e8ef 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -1,7 +1,7 @@ import React, { useRef, useState } from 'react'; import { Raycaster, Vector3, Math } from 'three'; -import { useFrame } from '@react-three/fiber'; +import { useFrame, useThree } from '@react-three/fiber'; import { PointerLockControls, OrbitControls } from '@react-three/drei'; import previewOptions from '@wordpress/block-editor/build/components/preview-options'; import { RigidBody, MeshCollider, useRapier, BallCollider, useRigidBody, RigidBodyApi, useCollider } from '@react-three/rapier'; @@ -18,7 +18,7 @@ const Controls = (props) => { const currentRigidbody = useRigidBody(); const {world, rapier} = useRapier(); let ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }); - + const {camera} = useThree(); useFrame( () => { const playerThing = world.getRigidBody(props.something.current.handle); @@ -46,6 +46,7 @@ const Controls = (props) => { let hitPoint = ray.pointAt(hit.toi); // console.log("hit!", hitPoint); playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); + camera.position.setY( hitPoint.y); } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; @@ -56,7 +57,6 @@ const Controls = (props) => { } else if ( moveLeft ) { playerThing.lockRotations(true); playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); - controlsRef.current.moveRight( -velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); @@ -101,7 +101,6 @@ const Controls = (props) => { if (hit) { let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); - } // rigidBody.applyImpulse(controlsRef.current.vec); if(p2pcf){ diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index fde23fb..fb4d935 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -227,18 +227,42 @@ function ModelObject( model ) { // ); } - gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); - gltf.scene.rotation.set( 0, 0, 0 ); - gltf.scene.scale.set(model.scaleX , model.scaleY, model.scaleZ ); - gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); console.log("gltf", gltf); const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) - - return <> + if(model.collidable){ + return(<> + ( + // // window.location.href = model.destinationUrl + // console.log(model.destinationUrl) + // ) + // } + > + + + ); + } else { + return <> {/* */} - + {/* */} ; + } } function Portal( model ) { @@ -598,6 +622,10 @@ export default function EnvironmentFront( props ) { const alt = model.querySelector( 'p.model-block-alt' ) ? model.querySelector( 'p.model-block-alt' ).innerText : ''; + + const collidable = model.querySelector( 'p.model-block-collidable' ) + ? model.querySelector( 'p.model-block-collidable' ).innerText + : false; return(); })} { Object.values(props.htmlToAdd).map((model, index)=>{ diff --git a/blocks/environment/components/Player.js b/blocks/environment/components/Player.js index 8541ea2..afabc54 100644 --- a/blocks/environment/components/Player.js +++ b/blocks/environment/components/Player.js @@ -13,22 +13,19 @@ export default function Player( props ) { const { camera, scene } = useThree(); const participantObject = scene.getObjectByName("playerOne"); - // console.log(participantObject) const [ rapierId, setRapierId ] = useState(""); const [ contactPoint, setContactPoint ] = useState(""); const rigidRef = useRef(); useFrame( () => { - // console.log(rigidBodyEvents); if(participantObject){ - // console.log(participantObject.parent.position.x, participantObject.parent.position.y, participantObject.parent.position.z); - camera.position.setY( participantObject.parent.position.y + 1); + camera.position.setY( participantObject.parent.position.y + 2); } } ); // Participant VRM. const fallbackURL = threeObjectPlugin + defaultVRM; - const playerURL = userData.vrm ? userData.vrm : fallbackURL + const playerURL = userData.vrm ? userData.vrm : fallbackURL; const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { loader.register( ( parser ) => { @@ -57,25 +54,25 @@ export default function Player( props ) { type={"dynamic"} onCollisionEnter={ ({manifold, target}) => { // console.log("data1", target.colliderSet.map.data[1]); - console.log("target", target); + // console.log(manifold.solverContactPoint(0)); // console.log("handle", target.handle); setRapierId(target.colliderSet.map.data[1]); setContactPoint(manifold.solverContactPoint(0)); }} - onCollisionExit={ () => { - // console.log('Collision at world position'); - }} + // onCollisionExit={ () => { + // console.log('Collision at world position'); + // }} > - + ) diff --git a/blocks/model-block/Save.js b/blocks/model-block/Save.js index 3e345b9..6ad1f23 100644 --- a/blocks/model-block/Save.js +++ b/blocks/model-block/Save.js @@ -21,6 +21,9 @@ export default function save( { attributes } ) {

{ attributes.animations }

+

+ { attributes.collidable ? 1 : 0 } +

{ attributes.alt }

diff --git a/inc/functions.php b/inc/functions.php index 409d01c..b2f8109 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -77,7 +77,8 @@ function three_object_viewer_check_for_usdz( $types, $file, $filename, $mimes ) */ function threeobjectviewer_frontend_assets() { - $frontend_js_path = "/assets/js/blocks.frontend.js"; + $default_frontend_js = "../build/assets/js/blocks.frontend-versepress.js"; + $frontend_js = apply_filters( 'three-object-environment-frontend-js', $default_frontend_js ); $current_user = wp_get_current_user(); $vrm = wp_get_attachment_url($current_user->avatar); @@ -87,8 +88,6 @@ function threeobjectviewer_frontend_assets() { 'banner' => $current_user->custom_banner, 'vrm' => $vrm, ); - global $post; - $post_slug = $post->post_name; $three_object_plugin = plugins_url() . '/three-object-viewer/build/'; @@ -97,8 +96,10 @@ function threeobjectviewer_frontend_assets() { // 'userName' => 'someone', // 'vrm' => 'somefile.vrm', // ); + global $post; + $post_slug = $post->post_name; - wp_register_script( 'threeobjectloader-frontend', plugin_dir_url( __FILE__ ) . '../build/assets/js/blocks.frontend.js', ['wp-element', 'wp-data', 'wp-hooks'], '', true ); + // wp_register_script( 'threeobjectloader-frontend', plugin_dir_url( __FILE__ ) . $frontend_js, ['wp-element', 'wp-data', 'wp-hooks'], '', true ); wp_localize_script( 'threeobjectloader-frontend', 'userData', $user_data_passed ); wp_localize_script( 'threeobjectloader-frontend', 'threeObjectPlugin', $three_object_plugin ); @@ -106,7 +107,7 @@ function threeobjectviewer_frontend_assets() { "threeobjectloader-frontend" ); - wp_register_script( 'versepress-frontend', plugin_dir_url( __FILE__ ) . '../build/assets/js/blocks.frontend-versepress.js', ['wp-element', 'wp-data', 'wp-hooks'], '', true ); + wp_register_script( 'versepress-frontend', plugin_dir_url( __FILE__ ) . $frontend_js, ['wp-element', 'wp-data', 'wp-hooks'], '', true ); wp_localize_script( 'versepress-frontend', 'userData', $user_data_passed ); wp_localize_script( 'versepress-frontend', 'postSlug', $post_slug ); wp_localize_script( 'versepress-frontend', 'threeObjectPlugin', $three_object_plugin ); From 8c6c77acce47b6ec1cb7d5c329107e5accc395cd Mon Sep 17 00:00:00 2001 From: antpb Date: Wed, 5 Oct 2022 21:32:34 -0500 Subject: [PATCH 26/48] adds image editor view --- .../components/EnvironmentFront.js | 4 +- .../environment/components/ThreeObjectEdit.js | 211 +++++++++++++++++- 2 files changed, 208 insertions(+), 7 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index fb4d935..ba6c5ea 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -398,7 +398,7 @@ export default function EnvironmentFront( props ) { return ( <> - + {/* */} {/* */} diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index b16b22f..6e37fa6 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -19,6 +19,7 @@ import { Perf } from 'r3f-perf'; import EditControls from './EditControls'; import CustomComponent from '../../../../four-object-viewer/blocks/four-portal-block/components/CustomComponent'; import { Resizable } from 're-resizable'; +import { useAspect } from '@react-three/drei'; function Markup( model ) { const htmlObj = useRef(); @@ -68,6 +69,39 @@ function Sky( sky ) { } } +function ImageObject( threeImage ) { + // console.log(threeImage.aspectWidth, threeImage.aspectHeight); + const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); + const imgObj = useRef(); + + return ( + { + const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(threeImage.imageID, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + }) + }} + > + + + + + + ); +} + + function ModelObject( model ) { const [ url, set ] = useState( model.url ); useEffect( () => { @@ -136,7 +170,6 @@ function ModelObject( model ) { rotationY: rot.y, rotationZ: rot.z, }); - console.log(model.setFocusPosition); if(model.shouldFocus){ // model.setFocusPosition([e?.target.worldPosition.x, e?.target.worldPosition.y, e?.target.worldPosition.z]); @@ -166,13 +199,117 @@ function ModelObject( model ) { ) ); } - + +function PortalObject( model ) { + const [ url, set ] = useState( model.url ); + useEffect( () => { + setTimeout( () => set( model.url ), 2000 ); + }, [] ); + const [ listener ] = useState( () => new THREE.AudioListener() ); + + useThree( ( { camera } ) => { + camera.add( listener ); + } ); + const {camera} = useThree(); + + const gltf = useLoader( GLTFLoader, model.url, ( loader ) => { + loader.register( + ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + ); + loader.register( ( parser ) => { + return new VRMLoaderPlugin( parser ); + } ); + } ); + + const { actions } = useAnimations( gltf.animations, gltf.scene ); + + const animationList = model.animations ? model.animations.split( ',' ) : ''; + useEffect( () => { + if ( animationList ) { + animationList.forEach( ( name ) => { + if ( Object.keys( actions ).includes( name ) ) { + actions[ name ].play(); + } + } ); + } + }, [] ); + if(gltf?.userData?.gltfExtensions?.VRM){ + const vrm = gltf.userData.vrm; + vrm.scene.position.set( model.positionX, model.positionY, model.positionZ ); + VRMUtils.rotateVRM0( vrm ); + const rotationVRM = vrm.scene.rotation.y + parseFloat(0); + vrm.scene.rotation.set( 0, rotationVRM, 0 ); + vrm.scene.scale.set( 1, 1, 1 ); + vrm.scene.scale.set( model.scaleX, model.scaleY, model.scaleZ ); + return ( + // + + // + ); + } + gltf.scene.rotation.set( 0, 0, 0 ); + const obj = useRef(); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) + + return ( model.transformMode !== undefined ? (<> + { + const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.portalID, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + }); + + if(model.shouldFocus){ + // model.setFocusPosition([e?.target.worldPosition.x, e?.target.worldPosition.y, e?.target.worldPosition.z]); + // camera.position.set(model.focusPosition); + } + } + } + > + + + + + ) : (<> + + + + ) + ); +} + function ThreeObject( props ) { let skyobject; let skyobjectId; let modelobject; + let portalobject; let modelID; + let portalID; + let imageID; + let imageobject; + let imageElementsToAdd = []; let editorModelsToAdd = []; + let editorPortalsToAdd = []; let editorHtmlToAdd= []; let htmlobject; let htmlobjectId; @@ -195,6 +332,18 @@ function ThreeObject( props ) { let something = [{modelobject, modelID}] editorModelsToAdd.push({modelobject, modelID}); } + if(innerBlock.name === "three-object-viewer/three-image-block"){ + imageobject = innerBlock.attributes; + imageID = innerBlock.clientId; + let something = [{imageobject, imageID}] + imageElementsToAdd.push({imageobject, imageID}); + } + if(innerBlock.name === "three-object-viewer/three-portal-block"){ + portalobject = innerBlock.attributes; + portalID = innerBlock.clientId; + let something = [{portalobject, portalID}] + editorPortalsToAdd.push({portalobject, portalID}); + } if(innerBlock.name === "three-object-viewer/three-html-block"){ htmlobject = innerBlock.attributes; htmlobjectId = innerBlock.clientId; @@ -285,6 +434,58 @@ function ThreeObject( props ) { ); } })} + { Object.values(editorPortalsToAdd).map((model, index)=>{ + if(model.portalobject.threeObjectUrl){ + return( + + ); + } + })} + { Object.values(imageElementsToAdd).map((model, index)=>{ + if(model.imageobject.imageUrl){ + return( + + ); + } + })} { Object.values(editorHtmlToAdd).map((markup, index)=>{ return( - - + {/* */} + Date: Wed, 5 Oct 2022 21:50:53 -0500 Subject: [PATCH 27/48] fixes innerBlock updates for portal block --- blocks/environment/components/ThreeObjectEdit.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 6e37fa6..08a4dbb 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -451,7 +451,7 @@ function ThreeObject( props ) { alt={model.portalobject.alt} animations={model.portalobject.animations} selected={props.selected} - modelId={model.modelID} + portalID={model.portalID} transformMode={props.transformMode} setFocusPosition={props.setFocusPosition} shouldFocus={props.shouldFocus} @@ -460,7 +460,7 @@ function ThreeObject( props ) { } })} { Object.values(imageElementsToAdd).map((model, index)=>{ - if(model.imageobject.imageUrl){ + if(model.imageobject.imageUrl){ return( Date: Tue, 11 Oct 2022 22:21:53 -0500 Subject: [PATCH 28/48] adds image edit side changes and new name property for models --- blocks/environment/components/EnvironmentFront.js | 4 ++-- blocks/environment/components/ThreeObjectEdit.js | 2 +- blocks/model-block/Edit.js | 14 ++++++++++++++ blocks/model-block/block.json | 3 +++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index ba6c5ea..60275be 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -339,8 +339,8 @@ function ThreeImage( threeImage ) { const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); return ( - - + + ); diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 08a4dbb..d7a3f96 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -94,7 +94,7 @@ function ImageObject( threeImage ) { }} > - +
diff --git a/blocks/model-block/Edit.js b/blocks/model-block/Edit.js index 74510fa..07bc36f 100644 --- a/blocks/model-block/Edit.js +++ b/blocks/model-block/Edit.js @@ -62,6 +62,10 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { setAttributes( { animations: animations } ); }; + const onChangeName = ( name ) => { + setAttributes( { name: name } ); + }; + const onImageSelect = ( imageObject ) => { setAttributes( { threeObjectUrl: null } ); setAttributes( { threeObjectUrl: imageObject.url } ); @@ -118,6 +122,16 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { icon={ more } initialOpen={ true } > + + + onChangeName( value ) + } + /> + select a glb file from your media library to diff --git a/blocks/model-block/block.json b/blocks/model-block/block.json index 69da0e7..c10a735 100644 --- a/blocks/model-block/block.json +++ b/blocks/model-block/block.json @@ -7,6 +7,9 @@ "type": "int", "default":1 }, + "name": { + "type": "string" + }, "scaleY": { "type": "int", "default":1 From 03234606598d71e41714d5d18c5e95a02668ab09 Mon Sep 17 00:00:00 2001 From: antpb Date: Tue, 11 Oct 2022 22:24:38 -0500 Subject: [PATCH 29/48] remove p2pcf worker --- blocks/environment/components/p2pcf/worker.js | 632 ------------------ 1 file changed, 632 deletions(-) delete mode 100644 blocks/environment/components/p2pcf/worker.js diff --git a/blocks/environment/components/p2pcf/worker.js b/blocks/environment/components/p2pcf/worker.js deleted file mode 100644 index 67111a2..0000000 --- a/blocks/environment/components/p2pcf/worker.js +++ /dev/null @@ -1,632 +0,0 @@ -const corsHeaders = { - 'Access-Control-Allow-Origin': '*', - 'Access-Control-Allow-Methods': 'GET,HEAD,POST,DELETE,OPTIONS', - 'Access-Control-Max-Age': '86400' - } - - const IPV4_REGEX = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/ - - const IPV6_REGEX = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/ - - const RATE_LIMITING_SAMPLING_RATE = 100.0 - - function validatePayload (headers, payload) { - if ( - !payload.r || - payload.r.length < 4 || - payload.r.length > 64 || - !payload.r.match(/^[A-Za-z0-9_-]+$/) - ) { - return new Response('Bad room id' + payload.r, { status: 400, headers }) - } - - if (payload.d) { - if ( - !payload.x || - typeof payload.x !== 'number' || - payload.x > 24 * 60 * 60 * 1000 - ) { - return new Response('Bad expiration', { status: 400, headers }) - } - - // Validate timestamp - note date is of last I/O in worker - if ( - !payload.t || - typeof payload.t !== 'number' || - Math.abs(payload.t - new Date().getTime()) > 10 * 60 * 1000 - ) { - return new Response('Bad timestamp', { status: 400, headers }) - } - - if (!payload.k || payload.k.length > 64) { - return new Response('Bad context id', { status: 400, headers }) - } - - // Registering an entry - const d = payload.d - - if (d.length !== 6) { - return new Response('Bad data length', { status: 400, headers }) - } - - // Validate session id + client id + context id - if (!d[0] || d[0].length > 64) { - return new Response('Bad session id', { status: 400, headers }) - } - - if (!d[1] || d[1].length > 64) { - return new Response('Bad client id', { status: 400, headers }) - } - - if (typeof d[2] !== 'boolean') { - return new Response('Bad is symmetric', { status: 400, headers }) - } - - if (!d[3] || d[3].length !== 44) { - return new Response('Bad dtls', { status: 400, headers }) - } - - if (!d[4] || typeof d[4] !== 'number') { - return new Response('Bad joined at timestamp', { status: 400, headers }) - } - - if ( - !d[5] || - typeof d[5] !== 'object' || - d[5].find(ip => !ip.match(IPV4_REGEX) && !ip.match(IPV6_REGEX)) - ) { - return new Response('Bad reflexive IPs', { status: 400, headers }) - } - - try { - atob(d[3]) - } catch (e) { - return new Response('Bad base64 encoding', { status: 400, headers }) - } - } - } - - function getRandomString (length) { - let result = '' - const characters = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' - const charactersLength = characters.length - for (let i = 0; i < length; i++) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)) - } - - return result - } - - function b64toBlob (b64Data, contentType = '', sliceSize = 512) { - const byteCharacters = atob(b64Data) - const byteArrays = [] - - for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { - const slice = byteCharacters.slice(offset, offset + sliceSize) - - const byteNumbers = new Array(slice.length) - for (let i = 0; i < slice.length; i++) { - byteNumbers[i] = slice.charCodeAt(i) - } - - const byteArray = new Uint8Array(byteNumbers) - byteArrays.push(byteArray) - } - - const blob = new Blob(byteArrays, { type: contentType }) - return blob - } - - function getEntryDeleteKey (entry) { - return entry[entry.length - 1] - } - - function getEntryContextId (entry) { - return entry[entry.length - 2] - } - - function getEntryPackages (entry) { - return entry[entry.length - 3] - } - - function getEntryTimestamp (entry) { - return entry[entry.length - 4] - } - - function getEntrySessionId (entry) { - return entry[0] - } - - function getEntryPayloadLength (entry) { - return entry.length - 3 - } - - async function handleGet (request, env) { - const hasStore = !!getStore(env) - - return new Response( - `Hello from P2PCF
${ - hasStore - ? '👍 R2 bucket is configured properly, ready to serve.' - : '❌ Couldn\'t find a configured R2 bucket.
Make sure you created a bucket and connected the worker to it.' - }
`, - { - headers: { - 'Content-Type': 'text.html' - } - } - ) - } - - async function handleOptions (request, env) { - const headers = request.headers - - if ( - headers.get('Origin') !== null && - headers.get('Access-Control-Request-Method') !== null && - headers.get('Access-Control-Request-Headers') !== null - ) { - const respHeaders = { - ...corsHeaders, - 'Access-Control-Allow-Headers': request.headers.get( - 'Access-Control-Request-Headers' - ) - } - - return new Response(null, { - headers: respHeaders - }) - } else { - // Handle standard OPTIONS request. - // If you want to allow other HTTP Methods, you can do that here. - return new Response(null, { - headers: { - Allow: 'GET, POST, DELETE, OPTIONS' - } - }) - } - } - - async function lookupEntries (roomId, store) { - let maxIndex = -1 - const maxIndexEntry = await store.get(`rooms/${roomId}/max_index`) - - if (maxIndexEntry) { - maxIndex = parseInt(await maxIndexEntry.text()) - } - - const entries = [] - const ps = [] - - // read a few ahead of max index just to reduce latency during small groups joining on KV - // read entries as promises first to parallelize reads. if the entries are empty then don't do this. - for (let i = 0; i <= maxIndex; i++) { - const p = store - .get(`rooms/${roomId}/entries:${i}`) - .then(v => (v ? v.json() : v)) - - entries.push(p) - ps.push(p) - - // Connection limit - if (ps.length >= 2) { - await Promise.all(ps) - ps.length = 0 - } - } - - await Promise.all(ps) - - return [entries, maxIndex] - } - - function getStore (env) { - let store = null - - for (const obj of Object.values(env)) { - if (obj.get && obj.put && obj.delete && obj.list) { - store = obj - break - } - } - - return store - } - - async function handleDelete (request, env, context) { - const headers = { ...corsHeaders, Vary: 'Origin' } - const payload = await request.json() - - if (!payload.dk) { - return new Response('Missing delete key', { status: 400, headers }) - } - - const errorResponse = validatePayload(headers, payload) - if (errorResponse) return errorResponse - - const roomId = payload.r - const store = getStore(env) - - const [entries, maxIndex] = await lookupEntries(roomId, store) - - for (let i = 0; i < entries.length; i++) { - const value = await entries[i] - - if (value) { - entries[i] = value - } else { - entries[i] = null - } - } - - for (let i = 0; i < entries.length; i++) { - if (entries[i] === null) continue - - const entry = entries[i] - const entrySessionId = getEntrySessionId(entry) - const entryContextId = getEntryContextId(entry) - const entryDeleteKey = getEntryDeleteKey(entry) - - if ( - payload.k === entryContextId && - payload.d[0] === entrySessionId && - payload.dk === entryDeleteKey - ) { - context.waitUntil(store.delete(`rooms/${roomId}/entries:${i}`)) - - if (maxIndex === i) { - const now = new Date().getTime() - - context.waitUntil( - store.put(`rooms/${roomId}/max_index`, `${i - 1}`, { - customMetadata: { expireAt: now + 8 * 60 * 60 * 1000 } - }) - ) - } - - return new Response('{}', { status: 200, headers }) - } - } - - return new Response('No delete key', { status: 404, headers }) - } - - async function handlePost (request, env, context) { - const headers = { ...corsHeaders, Vary: 'Origin' } - - const payload = await request.json() - const errorResponse = validatePayload(headers, payload) - - if (errorResponse) return errorResponse - const store = getStore(env) - - const roomId = payload.r - const now = new Date().getTime() - - // R2 needs vacuum - const nextVacuumEntry = store.get(`rooms/${roomId}/next_vacuum`) - - const [entries, maxIndex] = await lookupEntries(roomId, store) - - for (let i = 0; i < entries.length; i++) { - const value = await entries[i] - - if (value) { - entries[i] = value - } else { - entries[i] = null - } - } - - const contextId = payload.k - let deleteKeyForEntry = null - - if (payload.d && payload.p) { - // This is the timestamp on the session side of this data set if this changes, we write to the store - const timestamp = payload.t - const packages = payload.p - deleteKeyForEntry = getRandomString(24) - - let shouldSave = true - - // Need to save the entry if it doesn't exist already. - for (let i = 0; i < entries.length; i++) { - if (entries[i] === null) continue - - const entry = entries[i] - const entryContextId = getEntryContextId(entry) - const entryTimestamp = getEntryTimestamp(entry) - const entryDeleteKey = getEntryDeleteKey(entry) - - if (contextId === entryContextId) { - deleteKeyForEntry = entryDeleteKey - - if (entryTimestamp === timestamp) { - shouldSave = false - } - - break - } - } - - if (shouldSave) { - let saved = false - - // Entry is the payload plus additional data that isn't directly returned to the session. - const newEntry = [ - ...payload.d, - timestamp, - packages, - contextId, - deleteKeyForEntry - ] - - // Cap expiration to 15 minutes - const expireIn = Math.min(15 * 60 * 1000, payload.x) - const putOptions = { customMetadata: { expireAt: now + expireIn } } - - // First search for an exisitng one - for (let i = 0; i < entries.length; i++) { - if (entries[i] === null) continue - - const entry = entries[i] - - const entryContextId = getEntryContextId(entry) - if (entryContextId !== contextId) continue - - if (saved) { - // Duplicate, weird - context.waitUntil(store.delete(`rooms/${roomId}/entries:${i}`)) - entries[i] = null - } else { - context.waitUntil( - store.put( - `rooms/${roomId}/entries:${i}`, - JSON.stringify(newEntry), - putOptions - ) - ) - entries[i] = newEntry - saved = true - } - } - - // Could not find an existing slot to replace, so look for an empty slot or add to the end. - if (!saved) { - // Look for a null slot - for (let i = 0; i < entries.length; i++) { - if (entries[i] !== null) continue - context.waitUntil( - store.put( - `rooms/${roomId}/entries:${i}`, - JSON.stringify(newEntry), - putOptions - ) - ) - entries[i] = newEntry - saved = true - break - } - - // Otherwise push a new entry - if (!saved) { - entries.push(newEntry) - context.waitUntil( - store.put( - `rooms/${roomId}/entries:${entries.length - 1}`, - JSON.stringify(newEntry), - putOptions - ) - ) - } - } - } - - for (let i = entries.length - 1; i >= 0; i--) { - if (entries[i] === null) continue - - // max index always increases, rely on expiration to lower watermark - if (maxIndex < i) { - context.waitUntil( - store.put(`rooms/${roomId}/max_index`, `${i}`, { - customMetadata: { expireAt: now + 8 * 60 * 60 * 1000 } - }) - ) - break - } - } - } - - // Build the peer payload, list and the packages. - const map = new Map() - const packages = [] - - for (let i = 0; i < entries.length; i++) { - if (entries[i] === null) continue - - const entry = entries[i] - const entryContextId = getEntryContextId(entry) - if (contextId === entryContextId) continue - - const timestamp = getEntryTimestamp(entry) - - // Get the earliest entry for a given context id. - if (!map.has(entryContextId)) { - map.set(entryContextId, entry.slice(0, getEntryPayloadLength(entry))) - } else { - const existing = map.get(entryContextId) - - if (existing[existing.length - 1] < timestamp) { - map.set(entryContextId, entry.slice(0, getEntryPayloadLength(entry))) - } - } - - // Add to the packages due to this session. - if (payload.d) { - const sessionId = payload.d[0] - const entryPackages = getEntryPackages(entry) - - for (let j = 0; j < entryPackages.length; j++) { - // Package was meant for this session - if (entryPackages[j][0] === sessionId) { - packages.push(entryPackages[j]) - } - } - } - } - - const peers = [...map.values()] - const responseData = { ps: peers, pk: packages } - - if (deleteKeyForEntry) { - responseData.dk = deleteKeyForEntry - } - - // Check for vacuum - const nextVacuumEntryValue = await nextVacuumEntry - - if ( - !nextVacuumEntryValue || - now > parseInt(await nextVacuumEntryValue.text()) - ) { - // Add a random delay and re-check to avoid stampede. - context.waitUntil( - new Promise(res => { - setTimeout(async () => { - const now = new Date().getTime() - const nextVacuumEntry = await store.get(`rooms/${roomId}/next_vacuum`) - - if ( - !nextVacuumEntry || - now > parseInt(await nextVacuumEntry.text()) - ) { - let removed = 0 - - // Vacuum - await store.put(`rooms/${roomId}/next_vacuum`, `${now + 30 * 1000}`) // One mintue room vacuum interval - - const list = await store.list({ - include: ['customMetadata'], - prefix: `rooms/${roomId}/` - }) - const removePromises = [] - - for (const { - key, - customMetadata: { expireAt } - } of list.objects) { - if (!expireAt || now < expireAt) continue - removePromises.push(store.delete(key)) - removed++ - - if (removePromises.length >= 5) { - await Promise.all(removePromises) - removePromises.length = 0 - } - } - - await Promise.all(removePromises) - - console.log( - 'Vacuumed room ' + - roomId + - '. Removed ' + - (removed + 1) + - ' keys.' - ) - } - - res() - }, Math.floor(Math.random() * 10 * 1000)) - }) - ) - } - - return new Response(JSON.stringify(responseData), { status: 200, headers }) - } - - async function getResponseIfDisallowed (request, env) { - // No CORS header, so can't do anything - const origin = request.headers.get('origin') - if (!origin) return null - - let originQuota = env.ORIGIN_QUOTA ? parseInt(env.ORIGIN_QUOTA) : 10000 - - if (env.ALLOWED_ORIGINS) { - if (!env.ORIGIN_QUOTA) { - originQuota = 0 - } - - if (env.ALLOWED_ORIGINS.split(',').includes(origin)) { - return null - } - } - - if (originQuota === 0) { - return new Response('Unauthorized', { status: 401 }) - } - - const store = getStore(env) - - const d = new Date() - const currentCountKey = `join-counts/${d.getYear()}-${d.getMonth()}/${encodeURIComponent( - origin - )}` - const currentCountEntry = await store.get(currentCountKey) - - let currentCount = 0 - - if (currentCountEntry) { - currentCount = parseInt(await currentCountEntry.text()) - } - - if (currentCount >= originQuota) { - return new Response('Over quota', { status: 429 }) - } - - // Do 1 out of RATE_LIMITING_SAMPLING_RATE sampling - if (Math.random() < 1.0 / RATE_LIMITING_SAMPLING_RATE) { - await store.put( - currentCountKey, - (currentCount + Math.floor(RATE_LIMITING_SAMPLING_RATE)).toString() - ) - } - } - - export default { - async fetch (request, env, context) { - const disallowedResponse = await getResponseIfDisallowed(request, env) - - if (disallowedResponse) { - return disallowedResponse - } - - if (request.method === 'GET') { - return handleGet(request, env, context) - } - - if (request.method === 'OPTIONS') { - return handleOptions(request, env, context) - } - - if (request.headers.get('content-type') !== 'application/json') - return new Response('Expected content-type application/json', { - status: 400 - }) - - if ( - request.headers.get('x-worker-method') === 'DELETE' || - request.method === 'DELETE' - ) { - return await handleDelete(request, env, context) - } - - if (request.method === 'POST') { - return await handlePost(request, env, context) - } - - return new Response('Method not allowed', { status: 405 }) - } - } - \ No newline at end of file From 5e1ad7235f983a904e1377bbf822275136fd6f46 Mon Sep 17 00:00:00 2001 From: antpb Date: Wed, 12 Oct 2022 21:51:13 -0500 Subject: [PATCH 30/48] adds name property to models for ease of editing --- blocks/environment/editor.scss | 55 ++++++++++++++++++---------- blocks/model-block/Edit.js | 65 ++++++++++++++++++---------------- 2 files changed, 71 insertions(+), 49 deletions(-) diff --git a/blocks/environment/editor.scss b/blocks/environment/editor.scss index 310f04e..eb18aee 100644 --- a/blocks/environment/editor.scss +++ b/blocks/environment/editor.scss @@ -44,26 +44,29 @@ overflow: scroll; } -.three-object-viewer-inner-edit-container { - margin: 9% auto; +.three-object-viewer-component-container { + display: flex; + flex-direction: column; } -.wp-block-three-object-viewer-environment .block-editor-inner-blocks .block-editor-button-block-appender { - width: 60px; - height: 60px; +.three-object-viewer-component-container p { + font-size: 0.6em; } -.wp-block-three-object-viewer-environment .block-editor-inner-blocks .block-editor-button-block-appender svg{ - width: 40px; - height: 40px; +.three-object-viewer-inner-edit-container p{ + margin: 0 auto; } -.wp-block-three-object-viewer-environment .block-editor-inner-blocks .block-editor-button-block-appender{ - margin: 0px 0px -60px; +.three-object-viewer-inner-edit-container .three-object-viewer-model-name { + font-size: 0.7em; } -.wp-block-three-object-viewer-environment { - background-color: rgb(42, 42, 42); + +.three-object-viewer-inner p { + font-size: 0.8em; + margin: 0; } .three-object-viewer-inner { + z-index:1; + flex: 1; background-color: #3f3f3f; padding: 10px; color: white; @@ -72,24 +75,38 @@ margin-top: 20px; max-width: 130px; width: 130px; - height: 100px; + max-height: 93px; + height: 93px; font-size: 0.8em; text-align: center; border-radius: 8px; box-shadow:0px 1px 5px 1px #1e1e1e; } -.stats { - margin-top: 200px !important; -} - .three-object-viewer-inner svg { max-height: 30px; filter: invert(88%) ; } -.three-object-viewer-inner p { - font-size: 0.8em; +.wp-block-three-object-viewer-environment .block-editor-inner-blocks .block-editor-button-block-appender { + width: 60px; + height: 60px; +} + +.wp-block-three-object-viewer-environment .block-editor-inner-blocks .block-editor-button-block-appender svg{ + width: 40px; + height: 40px; +} +.wp-block-three-object-viewer-environment .block-editor-inner-blocks .block-editor-button-block-appender{ + margin: 0px 0px -60px; +} +.wp-block-three-object-viewer-environment { + background-color: rgb(42, 42, 42); +} + + +.stats { + margin-top: 200px !important; } .glb-preview-container button:hover{ diff --git a/blocks/model-block/Edit.js b/blocks/model-block/Edit.js index 07bc36f..0b49a5c 100644 --- a/blocks/model-block/Edit.js +++ b/blocks/model-block/Edit.js @@ -125,7 +125,7 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { onChangeName( value ) @@ -304,21 +304,24 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { { isSelected ? ( <> { attributes.threeObjectUrl ? ( -
-
- - - - - -

Model block

+ //Not selected +
+
+
+ + + + + +

Model block

+
+

{attributes.name}

- {/*

URL: {attributes.threeObjectUrl}

*/}
) : (
@@ -355,22 +358,24 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) : ( <> { attributes.threeObjectUrl ? ( -
-
- - - - - -

Model block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+
+
+ + + + + +

Model block

+
+

{attributes.name}

-
+
) : (
From dba240a8775fff689d52041b9d8b08a2b52e0bd3 Mon Sep 17 00:00:00 2001 From: antpb Date: Wed, 19 Oct 2022 00:37:05 -0500 Subject: [PATCH 31/48] check in character controller progress --- blocks/environment/components/Controls.js | 42 +++- .../components/EnvironmentFront.js | 216 ++++++++++++------ blocks/environment/components/Player.js | 37 ++- .../environment/components/ThreeObjectEdit.js | 2 +- 4 files changed, 204 insertions(+), 93 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 4c9e8ef..ac4d15a 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -1,5 +1,6 @@ import React, { useRef, useState } from 'react'; -import { Raycaster, Vector3, Math } from 'three'; +// import { Raycaster, Vector3, Math, Euler } from 'three'; +import * as THREE from 'three'; import { useFrame, useThree } from '@react-three/fiber'; import { PointerLockControls, OrbitControls } from '@react-three/drei'; @@ -10,6 +11,7 @@ const Controls = (props) => { const p2pcf = window.p2pcf; const controlsRef = useRef(); const isLocked = useRef( false ); + const [ lock, setLock] = useState(false); const [ moveForward, setMoveForward ] = useState( false ); const [ moveBackward, setMoveBackward ] = useState( false ); const [ moveLeft, setMoveLeft ] = useState( false ); @@ -18,19 +20,25 @@ const Controls = (props) => { const currentRigidbody = useRigidBody(); const {world, rapier} = useRapier(); let ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }); - const {camera} = useThree(); + const {camera, scene} = useThree(); useFrame( () => { const playerThing = world.getRigidBody(props.something.current.handle); const playerThingColliders = world.getCollider(props.something.current.handle); // playerThing.restrictRotations({enableX: false, enableY: false, enableZ: false}, true); - playerThing.lockRotations(true, true); + //maybebringthemback + // playerThing.lockRotations(true, true); + if(lock){ + playerThing.setBodyType(1); + } else { + playerThing.setBodyType(0); + } // playerThing.setRotation({x: Math.radToDeg(controlsRef.current.camera.rotation.x), y: Math.radToDeg(controlsRef.current.camera.rotation.y), z: Math.radToDeg(controlsRef.current.camera.rotation.z), w: 0}, true); ray.origin.x = playerThing.translation().x ray.origin.y = playerThing.translation().y ray.origin.z = playerThing.translation().z - const velocity = 0.4; + const velocity = 0.25; world.raw().step(); let maxToi = 14; let solid = true; @@ -40,13 +48,13 @@ const Controls = (props) => { controlsRef.current.moveForward( velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); playerThing.lockRotations(true, true); - playerThing.setRotation({x: 0, y: 1, z: 0, w: 0}, true); + // playerThing.setRotation({x: 0, y: 1, z: 0, w: 0}, true); if (hit) { let hitPoint = ray.pointAt(hit.toi); // console.log("hit!", hitPoint); playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); - camera.position.setY( hitPoint.y); + camera.position.setY( hitPoint.y + 0.001); } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; @@ -56,7 +64,7 @@ const Controls = (props) => { } } else if ( moveLeft ) { playerThing.lockRotations(true); - playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); + // playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); controlsRef.current.moveRight( -velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); @@ -74,7 +82,7 @@ const Controls = (props) => { } } else if ( moveBackward ) { playerThing.lockRotations(true); - playerThing.setRotation({x: 0, y: 0, z: 0, w: -1}, true); + // playerThing.setRotation({x: 0, y: 0, z: 0, w: -1}, true); controlsRef.current.moveForward( -velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); @@ -93,7 +101,7 @@ const Controls = (props) => { } } else if ( moveRight ) { playerThing.lockRotations(true); - playerThing.setRotation({x: 0, y: 0.707107, z: 0, w: 0.707107}, true); + // playerThing.setRotation({x: 0, y: 0.707107, z: 0, w: 0.707107}, true); controlsRef.current.moveRight( velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); @@ -113,11 +121,12 @@ const Controls = (props) => { } } ); - const onKeyDown = function ( event, props ) { + const onKeyDown = function ( event ) { switch ( event.code ) { case 'ArrowUp': case 'KeyW': setMoveForward( true ); + setLock(false); break; case 'ArrowLeft': @@ -147,11 +156,12 @@ const Controls = (props) => { } }; - const onKeyUp = function ( event ) { + const onKeyUp = function ( event, props ) { switch ( event.code ) { case 'ArrowUp': case 'KeyW': setMoveForward( false ); + setLock(true); break; case 'ArrowLeft': @@ -201,6 +211,16 @@ const Controls = (props) => { let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } + let rotatingPlayer = scene.getObjectByName("playerOne"); + const euler = new THREE.Euler(); + const rotation = euler.setFromQuaternion(controlsRef.current.camera.quaternion); + const radians = rotation.z > 0 + ? rotation.z + : (2 * Math.PI) + rotation.z; + const degrees = THREE.MathUtils.radToDeg(radians); + console.log(radians); + rotatingPlayer.rotation.set(0, radians, 0); + console.log(rotatingPlayer); }} ref={ controlsRef } /> diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 60275be..43fcce5 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -2,7 +2,9 @@ import * as THREE from 'three'; import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader"; import { Physics, RigidBody, MeshCollider, Debug } from "@react-three/rapier"; +import * as SkeletonUtils from 'three/examples/jsm/utils/SkeletonUtils.js'; import { useAnimations, @@ -105,6 +107,32 @@ function SavedObject( props ) { } ); } ); + //OMI_collider logic. + let childrenToParse = []; + let collidersToAdd = []; + let meshesToAdd = []; + + if ( gltf.userData.gltfExtensions?.OMI_collider ) { + var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; + } + gltf.scene.traverse( (child) => { + if ( child.userData.gltfExtensions?.OMI_collider ) { + childrenToParse.push(child); + child.parent.remove(child.name); + } else { + meshesToAdd.push(child); + } + }); + + childrenToParse.forEach( (child) => { + let index = child.userData.gltfExtensions.OMI_collider.collider; + collidersToAdd.push([child, colliders[index]]); + // gltf.scene.remove(child.name); + }); + + // console.log("colliders to add", collidersToAdd); + // End OMI_collider logic. + const { actions } = useAnimations( gltf.animations, gltf.scene ); const animationList = props.animations ? props.animations.split( ',' ) : ''; @@ -118,67 +146,111 @@ function SavedObject( props ) { } }, [] ); - // Player controller. - const fallbackURL = threeObjectPlugin + defaultVRM; - const playerURL = props.playerData.vrm ? props.playerData.vrm : fallbackURL - - const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { - loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) - ); - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); - - if(someSceneState?.userData?.gltfExtensions?.VRM){ - const playerController = someSceneState.userData.vrm; - const { camera } = useThree(); - useFrame(() => { - const offsetZ = camera.position.z - 0.4; - const offsetY = camera.position.y - 10; - playerController.scene.position.set( camera.position.x, offsetY, offsetZ ); - playerController.scene.rotation.set( camera.rotation.x, camera.rotation.y, camera.rotation.z ); - }); - VRMUtils.rotateVRM0( playerController ); - const rotationVRM = playerController.scene.rotation.y; - playerController.scene.rotation.set( 0, rotationVRM, 0 ); - playerController.scene.scale.set( 1, 1, 1 ); - gltf.scene.position.set( 0, props.positionY, 0 ); - gltf.scene.rotation.set( 0, props.rotationY, 0 ); - gltf.scene.scale.set( props.scale, props.scale, props.scale ); - return <>; - } - // End controller. - - if(gltf?.userData?.gltfExtensions?.VRM){ - const vrm = gltf.userData.vrm; - vrm.scene.position.set( 0, props.positionY, 0 ); - VRMUtils.rotateVRM0( vrm ); - const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - vrm.scene.rotation.set( 0, rotationVRM, 0 ); - vrm.scene.scale.set( props.scale, props.scale, props.scale ); - return ; - } - gltf.scene.position.set( 0, props.positionY, 0 ); - gltf.scene.rotation.set( 0, props.rotationY, 0 ); - gltf.scene.scale.set( props.scale, props.scale, props.scale ); - const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) + // // Player controller. + // const fallbackURL = threeObjectPlugin + defaultVRM; + // const playerURL = props.playerData.vrm ? props.playerData.vrm : fallbackURL + + // const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { + // loader.register( + // ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + // ); + // loader.register( ( parser ) => { + // return new VRMLoaderPlugin( parser ); + // } ); + // } ); + + // if(someSceneState?.userData?.gltfExtensions?.VRM){ + // const playerController = someSceneState.userData.vrm; + // const { camera } = useThree(); + // useFrame(() => { + // const offsetZ = camera.position.z - 0.4; + // const offsetY = camera.position.y - 10; + // playerController.scene.position.set( camera.position.x, offsetY, offsetZ ); + // playerController.scene.rotation.set( camera.rotation.x, camera.rotation.y, camera.rotation.z ); + // }); + // VRMUtils.rotateVRM0( playerController ); + // const rotationVRM = playerController.scene.rotation.y; + // playerController.scene.rotation.set( 0, rotationVRM, 0 ); + // playerController.scene.scale.set( 1, 1, 1 ); + // gltf.scene.position.set( 0, props.positionY, 0 ); + // gltf.scene.rotation.set( 0, props.rotationY, 0 ); + // gltf.scene.scale.set( props.scale, props.scale, props.scale ); + // return <>; + // } + // // End controller. + + // if(gltf?.userData?.gltfExtensions?.VRM){ + // const vrm = gltf.userData.vrm; + // vrm.scene.position.set( 0, props.positionY, 0 ); + // VRMUtils.rotateVRM0( vrm ); + // const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); + // vrm.scene.rotation.set( 0, rotationVRM, 0 ); + // vrm.scene.scale.set( props.scale, props.scale, props.scale ); + // return ; + // } + + // gltf.scene.position.set( 0, props.positionY, 0 ); + // gltf.scene.rotation.set( 0, props.rotationY, 0 ); + // gltf.scene.scale.set( props.scale, props.scale, props.scale ); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); - return(<> - - - - { participants && participants.map((item, index)=>{ - return ( - <> - - - )})} - ); + return(<> + { meshesToAdd && meshesToAdd.map((item, index)=>{ + if(item.isObject3D){ + const mixer = new THREE.AnimationMixer(gltf.scene); + + var pos = new THREE.Vector3(); // create once an reuse it + var quat = new THREE.Quaternion(); // create once an reuse it + var rotation = new THREE.Euler(); + var quaternion = item.getWorldQuaternion(quat); + var finalRotation = rotation.setFromQuaternion(quaternion); + + // console.log(item.getWorldPosition(target)); + return() + } + })} + { collidersToAdd && collidersToAdd.map((item, index)=>{ + var pos = new THREE.Vector3(); // create once an reuse it + var quat = new THREE.Quaternion(); // create once an reuse it + var rotation = new THREE.Euler(); + var quaternion = item[0].getWorldQuaternion(quat); + var finalRotation = rotation.setFromQuaternion(quaternion); + + // console.log("someitem", item); + //'ball' | 'cuboid' | 'hull' | 'trimesh' | false; + // rotation={item[0].rotation} position={item[0].position} + if(item[1].type === "mesh"){ + return ( + + ) + } + if(item[1].type === "box"){ + return ( + + ) + } + if(item[1].type === "capsule"){ + return ( + + ) + } + if(item[1].type === "sphere"){ + return ( + + ) + } + })} + { participants && participants.map((item, index)=>{ + return ( + <> + + + )}) + } + ); } function ModelObject( model ) { @@ -202,13 +274,14 @@ function ModelObject( model ) { } ); const { actions } = useAnimations( gltf.animations, gltf.scene ); - + console.log(model.animations); + let animationClips = gltf.animations; const animationList = model.animations ? model.animations.split( ',' ) : ''; useEffect( () => { if ( animationList ) { animationList.forEach( ( name ) => { if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); + console.log(actions[ name ].play()); } } ); } @@ -227,9 +300,12 @@ function ModelObject( model ) { // ); } - console.log("gltf", gltf); - const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) - if(model.collidable){ + // console.log("gltf", gltf); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); + const modelClone = SkeletonUtils.clone(gltf.scene); + console.log("model clone", modelClone); + console.log("scene", gltf.scene); + if(model.collidable === "1"){ return(<> {/* */} - {/* */} + { props.threeUrl && ( <> @@ -745,12 +821,12 @@ export default function EnvironmentFront( props ) { rotationZ={modelRotationZ} />); })} - - + */} ) } diff --git a/blocks/environment/components/Player.js b/blocks/environment/components/Player.js index afabc54..7bfd5a0 100644 --- a/blocks/environment/components/Player.js +++ b/blocks/environment/components/Player.js @@ -4,8 +4,8 @@ import { useFrame, useLoader, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; import Controls from './Controls'; -import { useCallback, useRef, useState } from 'react'; -import { RigidBody, MeshCollider, useRapier, usePhysics, useRigidBody, BallCollider, RigidBodyApi } from '@react-three/rapier'; +import { useCallback, useRef, useState, useEffect } from 'react'; +import { RigidBody, MeshCollider, useRapier, usePhysics, useRigidBody, BallCollider, CapsuleCollider, RigidBodyApi } from '@react-three/rapier'; import defaultVRM from '../../../inc/avatars/mummy.vrm'; import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' @@ -15,11 +15,18 @@ export default function Player( props ) { const participantObject = scene.getObjectByName("playerOne"); const [ rapierId, setRapierId ] = useState(""); const [ contactPoint, setContactPoint ] = useState(""); + const [ headPoint, setHeadPoint ] = useState(""); const rigidRef = useRef(); useFrame( () => { if(participantObject){ - camera.position.setY( participantObject.parent.position.y + 2); + var posY = participantObject.parent.position.y; + // var posY = participantObject.userData.vrm.firstPerson.humanoid.humanBones.head.position.y; + // camera.position.setY( posY + 1.5 ); + camera.position.setY( posY + 1.5 ); + // console.log(camera.rotation.y); + // participantObject.rotation.set([0, camera.rotation.y, 0]); + // participantObject.rotation.set(camera.rotation); } } ); @@ -35,10 +42,17 @@ export default function Player( props ) { if(someSceneState?.userData?.gltfExtensions?.VRM){ const playerController = someSceneState.userData.vrm; - VRMUtils.rotateVRM0( playerController ); - const rotationVRM = playerController.scene.rotation.y; - playerController.scene.rotation.set( 0, rotationVRM, 0 ); - playerController.scene.scale.set( 1, 1, 1 ); + // VRMUtils.rotateVRM0( playerController ); + // console.log("vrm", playerController); + useEffect(()=>{ + console.log(playerController.firstPerson.humanoid.humanBones.head.node); + setHeadPoint(playerController.firstPerson.humanoid.humanBones.head.node.position.y); + }, []) + playerController.firstPerson.humanoid.humanBones.head.node.scale.set([0,0,0]); + // console.log(playerController); + // const rotationVRM = playerController.scene.rotation.y; + // playerController.scene.rotation.set( 0, rotationVRM, 0 ); + // playerController.scene.scale.set( 1, 1, 1 ); return ( <> @@ -48,9 +62,10 @@ export default function Player( props ) { { // console.log("data1", target.colliderSet.map.data[1]); @@ -63,9 +78,9 @@ export default function Player( props ) { // console.log('Collision at world position'); // }} > - - +
From 8921670de87f2fd05325f207ff837c103c63f82f Mon Sep 17 00:00:00 2001 From: antpb Date: Fri, 21 Oct 2022 00:49:20 -0500 Subject: [PATCH 32/48] adds scale controls --- blocks/environment/components/Controls.js | 14 ++- .../components/EnvironmentFront.js | 3 +- blocks/environment/components/Networking.js | 4 +- .../environment/components/ThreeObjectEdit.js | 97 +++++++++++++++++-- 4 files changed, 103 insertions(+), 15 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index ac4d15a..86d0c05 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -63,7 +63,7 @@ const Controls = (props) => { p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveLeft ) { - playerThing.lockRotations(true); + playerThing.lockRotations(true, true); // playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); controlsRef.current.moveRight( -velocity ); let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); @@ -81,7 +81,7 @@ const Controls = (props) => { p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveBackward ) { - playerThing.lockRotations(true); + playerThing.lockRotations(true, true); // playerThing.setRotation({x: 0, y: 0, z: 0, w: -1}, true); controlsRef.current.moveForward( -velocity ); @@ -100,7 +100,7 @@ const Controls = (props) => { p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveRight ) { - playerThing.lockRotations(true); + playerThing.lockRotations(true, true); // playerThing.setRotation({x: 0, y: 0.707107, z: 0, w: 0.707107}, true); controlsRef.current.moveRight( velocity ); @@ -132,16 +132,19 @@ const Controls = (props) => { case 'ArrowLeft': case 'KeyA': setMoveLeft( true ); + setLock(false); break; case 'ArrowDown': case 'KeyS': setMoveBackward( true ); + setLock(false); break; case 'ArrowRight': case 'KeyD': setMoveRight( true ); + setLock(false); break; case "Space": window.addEventListener('keydown', (e) => { @@ -167,11 +170,13 @@ const Controls = (props) => { case 'ArrowLeft': case 'KeyA': setMoveLeft( false ); + setLock(true); break; case 'ArrowDown': case 'KeyS': setMoveBackward( false ); + setLock(true); break; case "Space": @@ -181,6 +186,7 @@ const Controls = (props) => { case 'ArrowRight': case 'KeyD': setMoveRight( false ); + setLock(true); break; default: @@ -218,9 +224,7 @@ const Controls = (props) => { ? rotation.z : (2 * Math.PI) + rotation.z; const degrees = THREE.MathUtils.radToDeg(radians); - console.log(radians); rotatingPlayer.rotation.set(0, radians, 0); - console.log(rotatingPlayer); }} ref={ controlsRef } /> diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 43fcce5..707d40c 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -434,7 +434,7 @@ function ThreeVideo(threeVideo) { - +
); } @@ -651,6 +651,7 @@ export default function EnvironmentFront( props ) { })} { Object.values(props.modelsToAdd).map((model, index)=>{ + console.log("adding", model); const modelPosX = model.querySelector( 'p.model-block-position-x' ) ? model.querySelector( 'p.model-block-position-x' ).innerText : ''; diff --git a/blocks/environment/components/Networking.js b/blocks/environment/components/Networking.js index f2c8760..5b1ada1 100644 --- a/blocks/environment/components/Networking.js +++ b/blocks/environment/components/Networking.js @@ -106,8 +106,8 @@ const Networking = (props) => { document .getElementById('join-button') .addEventListener('click', async () => { - go() - }) + // window.addEventListener('DOMContentLoaded', go, { once: true }) + }) } else { // window.addEventListener('DOMContentLoaded', go, { once: true }) } diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index d7746e6..fe31e41 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -38,7 +38,10 @@ function Markup( model ) { positionZ: e?.target.worldPosition.z, rotationX: rot.x, rotationY: rot.y, - rotationZ: rot.z, + rotationZ: rot.z, + scaleX: e?.target.scale.x, + scaleY: e?.target.scale.y, + scaleZ: e?.target.scale.z }) }} > @@ -89,7 +92,10 @@ function ImageObject( threeImage ) { positionZ: e?.target.worldPosition.z, rotationX: rot.x, rotationY: rot.y, - rotationZ: rot.z, + rotationZ: rot.z, + scaleX: e?.target.scale.x, + scaleY: e?.target.scale.y, + scaleZ: e?.target.scale.z }) }} > @@ -101,6 +107,45 @@ function ImageObject( threeImage ) { ); } +function VideoObject(threeVideo) { + // console.log(threeVideo); + const clicked = true; + const [video] = useState(() => Object.assign(document.createElement('video'), { src: threeVideo.url, crossOrigin: 'Anonymous', loop: true, muted: true })); + const videoObj = useRef(); + + useEffect(() => void (clicked && video.play()), [video, clicked]); + + return ( + { + const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(threeVideo.imageID, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + scaleX: e?.target.scale.x, + scaleY: e?.target.scale.y, + scaleZ: e?.target.scale.z + }) + }} + > + + + + + + + + ); +} function ModelObject( model ) { const [ url, set ] = useState( model.url ); @@ -168,12 +213,15 @@ function ModelObject( model ) { positionZ: e?.target.worldPosition.z, rotationX: rot.x, rotationY: rot.y, - rotationZ: rot.z, + rotationZ: rot.z, + scaleX: e?.target.scale.x, + scaleY: e?.target.scale.y, + scaleZ: e?.target.scale.z }); if(model.shouldFocus){ - // model.setFocusPosition([e?.target.worldPosition.x, e?.target.worldPosition.y, e?.target.worldPosition.z]); - // camera.position.set(model.focusPosition); + setFocusPosition([e?.target.worldPosition.x, e?.target.worldPosition.y, e?.target.worldPosition.z]); + camera.position.set(model.focusPosition); } } } @@ -306,7 +354,10 @@ function ThreeObject( props ) { let modelID; let portalID; let imageID; + let videoID; let imageobject; + let videoobject; + let videoElementsToAdd = []; let imageElementsToAdd = []; let editorModelsToAdd = []; let editorPortalsToAdd = []; @@ -338,6 +389,12 @@ function ThreeObject( props ) { let something = [{imageobject, imageID}] imageElementsToAdd.push({imageobject, imageID}); } + if(innerBlock.name === "three-object-viewer/three-video-block"){ + videoobject = innerBlock.attributes; + videoID = innerBlock.clientId; + let something = [{videoobject, videoID}] + videoElementsToAdd.push({videoobject, videoID}); + } if(innerBlock.name === "three-object-viewer/three-portal-block"){ portalobject = innerBlock.attributes; portalID = innerBlock.clientId; @@ -486,6 +543,31 @@ function ThreeObject( props ) { ); } })} + { Object.values(videoElementsToAdd).map((model, index)=>{ + if(model.videoobject.videoUrl){ + return( + + ); + } + })} { Object.values(editorHtmlToAdd).map((markup, index)=>{ return( Date: Fri, 21 Oct 2022 01:21:18 -0500 Subject: [PATCH 33/48] fixes scaling logic --- .../components/EnvironmentFront.js | 1 - .../environment/components/ThreeObjectEdit.js | 58 ++++++++++++------- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 707d40c..5d73ce4 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -423,7 +423,6 @@ function ThreeImage( threeImage ) { } function ThreeVideo(threeVideo) { - // console.log(threeVideo); const clicked = true; const [video] = useState(() => Object.assign(document.createElement('video'), { src: threeVideo.url, crossOrigin: 'Anonymous', loop: true, muted: true })); diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index fe31e41..44fde6b 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -31,6 +31,7 @@ function Markup( model ) { size={0.5} onObjectChange={ ( e ) => { const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + const scale = e?.target.worldScale; rot.setFromQuaternion(e?.target.worldQuaternion); wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.htmlobjectId, { positionX: e?.target.worldPosition.x, @@ -39,9 +40,9 @@ function Markup( model ) { rotationX: rot.x, rotationY: rot.y, rotationZ: rot.z, - scaleX: e?.target.scale.x, - scaleY: e?.target.scale.y, - scaleZ: e?.target.scale.z + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z }) }} > @@ -85,6 +86,7 @@ function ImageObject( threeImage ) { size={0.5} onObjectChange={ ( e ) => { const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + const scale = e?.target.worldScale; rot.setFromQuaternion(e?.target.worldQuaternion); wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(threeImage.imageID, { positionX: e?.target.worldPosition.x, @@ -93,9 +95,9 @@ function ImageObject( threeImage ) { rotationX: rot.x, rotationY: rot.y, rotationZ: rot.z, - scaleX: e?.target.scale.x, - scaleY: e?.target.scale.y, - scaleZ: e?.target.scale.z + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z }) }} > @@ -123,18 +125,20 @@ function VideoObject(threeVideo) { size={0.5} onObjectChange={ ( e ) => { const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + const scale = e?.target.worldScale; + console.log("videoscale", scale); rot.setFromQuaternion(e?.target.worldQuaternion); - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(threeVideo.imageID, { + wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(threeVideo.videoID, { positionX: e?.target.worldPosition.x, positionY: e?.target.worldPosition.y, positionZ: e?.target.worldPosition.z, rotationX: rot.x, rotationY: rot.y, rotationZ: rot.z, - scaleX: e?.target.scale.x, - scaleY: e?.target.scale.y, - scaleZ: e?.target.scale.z - }) + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z + }) }} > @@ -206,6 +210,8 @@ function ModelObject( model ) { size={0.5} onObjectChange={ ( e ) => { const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + const scale = e?.target.worldScale; + rot.setFromQuaternion(e?.target.worldQuaternion); wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.modelId, { positionX: e?.target.worldPosition.x, @@ -214,9 +220,9 @@ function ModelObject( model ) { rotationX: rot.x, rotationY: rot.y, rotationZ: rot.z, - scaleX: e?.target.scale.x, - scaleY: e?.target.scale.y, - scaleZ: e?.target.scale.z + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z }); if(model.shouldFocus){ @@ -307,6 +313,8 @@ function PortalObject( model ) { size={0.5} onObjectChange={ ( e ) => { const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); + const scale = e?.target.worldScale; + rot.setFromQuaternion(e?.target.worldQuaternion); wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.portalID, { positionX: e?.target.worldPosition.x, @@ -314,7 +322,10 @@ function PortalObject( model ) { positionZ: e?.target.worldPosition.z, rotationX: rot.x, rotationY: rot.y, - rotationZ: rot.z, + rotationZ: rot.z, + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z }); if(model.shouldFocus){ @@ -349,18 +360,23 @@ function PortalObject( model ) { function ThreeObject( props ) { let skyobject; let skyobjectId; + let modelobject; - let portalobject; let modelID; + let editorModelsToAdd = []; + + let portalobject; let portalID; + let editorPortalsToAdd = []; + let imageID; - let videoID; + let imageElementsToAdd = []; let imageobject; + + let videoID; let videoobject; let videoElementsToAdd = []; - let imageElementsToAdd = []; - let editorModelsToAdd = []; - let editorPortalsToAdd = []; + let editorHtmlToAdd= []; let htmlobject; let htmlobjectId; @@ -558,7 +574,7 @@ function ThreeObject( props ) { rotationY={model.videoobject.rotationY} rotationZ={model.videoobject.rotationZ} selected={props.selected} - imageID={model.videoID} + videoID={model.videoID} aspectHeight={model.videoobject.aspectHeight} aspectWidth={model.videoobject.aspectWidth} transformMode={props.transformMode} From f83a8ba4de48998a96d79b73ed159eedf3964999 Mon Sep 17 00:00:00 2001 From: antpb Date: Mon, 24 Oct 2022 22:42:13 -0500 Subject: [PATCH 34/48] renames category and adds enter button --- blocks/environment/Edit.js | 39 + blocks/environment/Save.js | 1 + blocks/environment/block.json | 6 +- blocks/environment/components/Controls.js | 4 + .../components/EnvironmentFront.js | 1050 +++++++++-------- blocks/environment/components/Networking.js | 9 + .../environment/components/ThreeObjectEdit.js | 13 +- blocks/environment/frontend.js | 10 +- blocks/model-block/block.json | 2 +- blocks/sky-block/block.json | 2 +- blocks/three-audio-block/block.json | 2 +- .../three-audio-block/components/ImageEdit.js | 2 +- blocks/three-html-block/block.json | 2 +- blocks/three-image-block/block.json | 2 +- .../three-image-block/components/ImageEdit.js | 2 +- blocks/three-object-block/block.json | 2 +- .../components/ThreeObjectFront.js | 2 +- blocks/three-portal-block/block.json | 2 +- blocks/three-video-block/block.json | 2 +- .../three-video-block/components/VideoEdit.js | 2 +- 20 files changed, 619 insertions(+), 537 deletions(-) diff --git a/blocks/environment/Edit.js b/blocks/environment/Edit.js index 48562d2..a694018 100644 --- a/blocks/environment/Edit.js +++ b/blocks/environment/Edit.js @@ -33,6 +33,13 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { setAttributes( { threeObjectUrl: null } ); setAttributes( { threeObjectUrl: imageObject.url } ); }; + + const onPreviewImageSelect = ( imageObject ) => { + console.log(imageObject); + setAttributes( { threePreviewImage: null } ); + setAttributes( { threePreviewImage: imageObject.url } ); + }; + const onChangePositionY = ( posy ) => { setAttributes( { positionY: posy } ); }; @@ -110,6 +117,38 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) } /> + + + Select an image to be used as the preview image: + + + + + + + + + + onPreviewImageSelect( imageObject ) + } + type="image" + label="Image File" + // allowedTypes={ ALLOWED_MEDIA_TYPES } + value={ attributes.threePreviewImage } + render={ ( { open } ) => ( + + ) } + /> +

{ attributes.scale }

+

{ attributes.threePreviewImage }

{ attributes.animations }

diff --git a/blocks/environment/block.json b/blocks/environment/block.json index 9615a27..9a9c346 100644 --- a/blocks/environment/block.json +++ b/blocks/environment/block.json @@ -27,6 +27,10 @@ "type": "string", "default": null }, + "threePreviewImage": { + "type": "string", + "default": null + }, "deviceTarget": { "type": "string", "default": "vr" @@ -36,7 +40,7 @@ "default": "" } }, - "category": "3D", + "category": "design", "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 86d0c05..67fbb66 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -7,6 +7,10 @@ import { PointerLockControls, OrbitControls } from '@react-three/drei'; import previewOptions from '@wordpress/block-editor/build/components/preview-options'; import { RigidBody, MeshCollider, useRapier, BallCollider, useRigidBody, RigidBodyApi, useCollider } from '@react-three/rapier'; +function touchStarted() { + getAudioContext().resume(); + } + const Controls = (props) => { const p2pcf = window.p2pcf; const controlsRef = useRef(); diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 5d73ce4..1ed05d4 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -2,6 +2,7 @@ import * as THREE from 'three'; import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +// import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader"; import { Physics, RigidBody, MeshCollider, Debug } from "@react-three/rapier"; import * as SkeletonUtils from 'three/examples/jsm/utils/SkeletonUtils.js'; @@ -27,6 +28,7 @@ import TeleportTravel from './TeleportTravel'; import Player from './Player'; import defaultVRM from '../../../inc/avatars/mummy.vrm'; import { useAspect } from '@react-three/drei'; +import { Button } from '@wordpress/components'; function Participant( participant ) { // Participant VRM. @@ -74,185 +76,6 @@ function Participant( participant ) { } } -function SavedObject( props ) { - const [ participants, setParticipant ] = useState([]); - const meshRef = useRef(); - - // console.log(participants); - - const p2pcf = window.p2pcf; - if(p2pcf){ - p2pcf.on('peerconnect', peer => { - console.log(peer); - setParticipant(current => [...current, peer.client_id]); - }) - } - - const [ url, set ] = useState( props.url ); - useEffect( () => { - setTimeout( () => set( props.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); - - useThree( ( { camera } ) => { - camera.add( listener ); - } ); - - const gltf = useLoader( GLTFLoader, url, ( loader ) => { - loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) - ); - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); - - //OMI_collider logic. - let childrenToParse = []; - let collidersToAdd = []; - let meshesToAdd = []; - - if ( gltf.userData.gltfExtensions?.OMI_collider ) { - var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; - } - gltf.scene.traverse( (child) => { - if ( child.userData.gltfExtensions?.OMI_collider ) { - childrenToParse.push(child); - child.parent.remove(child.name); - } else { - meshesToAdd.push(child); - } - }); - - childrenToParse.forEach( (child) => { - let index = child.userData.gltfExtensions.OMI_collider.collider; - collidersToAdd.push([child, colliders[index]]); - // gltf.scene.remove(child.name); - }); - - // console.log("colliders to add", collidersToAdd); - // End OMI_collider logic. - - const { actions } = useAnimations( gltf.animations, gltf.scene ); - - const animationList = props.animations ? props.animations.split( ',' ) : ''; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); - } - } ); - } - }, [] ); - - // // Player controller. - // const fallbackURL = threeObjectPlugin + defaultVRM; - // const playerURL = props.playerData.vrm ? props.playerData.vrm : fallbackURL - - // const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { - // loader.register( - // ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) - // ); - // loader.register( ( parser ) => { - // return new VRMLoaderPlugin( parser ); - // } ); - // } ); - - // if(someSceneState?.userData?.gltfExtensions?.VRM){ - // const playerController = someSceneState.userData.vrm; - // const { camera } = useThree(); - // useFrame(() => { - // const offsetZ = camera.position.z - 0.4; - // const offsetY = camera.position.y - 10; - // playerController.scene.position.set( camera.position.x, offsetY, offsetZ ); - // playerController.scene.rotation.set( camera.rotation.x, camera.rotation.y, camera.rotation.z ); - // }); - // VRMUtils.rotateVRM0( playerController ); - // const rotationVRM = playerController.scene.rotation.y; - // playerController.scene.rotation.set( 0, rotationVRM, 0 ); - // playerController.scene.scale.set( 1, 1, 1 ); - // gltf.scene.position.set( 0, props.positionY, 0 ); - // gltf.scene.rotation.set( 0, props.rotationY, 0 ); - // gltf.scene.scale.set( props.scale, props.scale, props.scale ); - // return <>; - // } - // // End controller. - - // if(gltf?.userData?.gltfExtensions?.VRM){ - // const vrm = gltf.userData.vrm; - // vrm.scene.position.set( 0, props.positionY, 0 ); - // VRMUtils.rotateVRM0( vrm ); - // const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - // vrm.scene.rotation.set( 0, rotationVRM, 0 ); - // vrm.scene.scale.set( props.scale, props.scale, props.scale ); - // return ; - // } - - // gltf.scene.position.set( 0, props.positionY, 0 ); - // gltf.scene.rotation.set( 0, props.rotationY, 0 ); - // gltf.scene.scale.set( props.scale, props.scale, props.scale ); - const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); - - return(<> - { meshesToAdd && meshesToAdd.map((item, index)=>{ - if(item.isObject3D){ - const mixer = new THREE.AnimationMixer(gltf.scene); - - var pos = new THREE.Vector3(); // create once an reuse it - var quat = new THREE.Quaternion(); // create once an reuse it - var rotation = new THREE.Euler(); - var quaternion = item.getWorldQuaternion(quat); - var finalRotation = rotation.setFromQuaternion(quaternion); - - // console.log(item.getWorldPosition(target)); - return() - } - })} - { collidersToAdd && collidersToAdd.map((item, index)=>{ - var pos = new THREE.Vector3(); // create once an reuse it - var quat = new THREE.Quaternion(); // create once an reuse it - var rotation = new THREE.Euler(); - var quaternion = item[0].getWorldQuaternion(quat); - var finalRotation = rotation.setFromQuaternion(quaternion); - - // console.log("someitem", item); - //'ball' | 'cuboid' | 'hull' | 'trimesh' | false; - // rotation={item[0].rotation} position={item[0].position} - if(item[1].type === "mesh"){ - return ( - - ) - } - if(item[1].type === "box"){ - return ( - - ) - } - if(item[1].type === "capsule"){ - return ( - - ) - } - if(item[1].type === "sphere"){ - return ( - - ) - } - })} - { participants && participants.map((item, index)=>{ - return ( - <> - - - )}) - } - ); -} - function ModelObject( model ) { const [ url, set ] = useState( model.url ); useEffect( () => { @@ -416,7 +239,7 @@ function ThreeImage( threeImage ) { return ( - + ); @@ -433,7 +256,7 @@ function ThreeVideo(threeVideo) { - +
); } @@ -467,376 +290,567 @@ function Markup( model ) { ); } +function SavedObject( props ) { + const [ participants, setParticipant ] = useState([]); + const meshRef = useRef(); -export default function EnvironmentFront( props ) { - if ( props.deviceTarget === 'vr' ) { - return ( - <> - - {/* */} - {/* */} - - - - - - - - - { props.threeUrl && ( - <> - - - - { Object.values(props.sky).map((item, index)=>{ - return(<> - - ); - }) - } - { Object.values(props.imagesToAdd).map((item, index)=>{ - const imagePosX = item.querySelector( 'p.image-block-positionX' ) - ? item.querySelector( 'p.image-block-positionX' ).innerText - : ''; - - const imagePosY = item.querySelector( 'p.image-block-positionY' ) - ? item.querySelector( 'p.image-block-positionY' ).innerText - : ''; - - const imagePosZ = item.querySelector( 'p.image-block-positionZ' ) - ? item.querySelector( 'p.image-block-positionZ' ).innerText - : ''; - - const imageScaleX = item.querySelector( 'p.image-block-scaleX' ) - ? item.querySelector( 'p.image-block-scaleX' ).innerText - : ''; - - const imageScaleY = item.querySelector( 'p.image-block-scaleY' ) - ? item.querySelector( 'p.image-block-scaleY' ).innerText - : ''; - - const imageScaleZ = item.querySelector( 'p.image-block-scaleZ' ) - ? item.querySelector( 'p.image-block-scaleZ' ).innerText - : ''; + const p2pcf = window.p2pcf; + if(p2pcf){ + p2pcf.on('peerconnect', peer => { + console.log(peer); + setParticipant(current => [...current, peer.client_id]); + }) + } - const imageRotationX = item.querySelector( 'p.image-block-rotationX' ) - ? item.querySelector( 'p.image-block-rotationX' ).innerText - : ''; + const [ url, set ] = useState( props.url ); + useEffect( () => { + setTimeout( () => set( props.url ), 2000 ); + }, [] ); + const [ listener ] = useState( () => new THREE.AudioListener() ); - const imageRotationY = item.querySelector( 'p.image-block-rotationY' ) - ? item.querySelector( 'p.image-block-rotationY' ).innerText - : ''; + useThree( ( { camera } ) => { + camera.add( listener ); + } ); - const imageRotationZ = item.querySelector( 'p.image-block-rotationZ' ) - ? item.querySelector( 'p.image-block-rotationZ' ).innerText - : ''; + const gltf = useLoader( GLTFLoader, url, ( loader ) => { + // const dracoLoader = new DRACOLoader(); + // dracoLoader.setDecoderPath('https://www.gstatic.com/draco/v1/decoders/'); + // loader.setDRACOLoader(dracoLoader); - const imageUrl = item.querySelector( 'p.image-block-url' ) - ? item.querySelector( 'p.image-block-url' ).innerText - : ''; + loader.register( + ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + ); - const aspectHeight = item.querySelector( 'p.image-block-aspect-height' ) - ? item.querySelector( 'p.image-block-aspect-height' ).innerText - : ''; + loader.register( ( parser ) => { + return new VRMLoaderPlugin( parser ); + } ); + } ); - const aspectWidth = item.querySelector( 'p.image-block-aspect-width' ) - ? item.querySelector( 'p.image-block-aspect-width' ).innerText - : ''; - - return(); - })} - { Object.values(props.videosToAdd).map((item, index)=>{ - const videoPosX = item.querySelector( 'p.video-block-positionX' ) - ? item.querySelector( 'p.video-block-positionX' ).innerText - : ''; + //OMI_collider logic. + let childrenToParse = []; + let collidersToAdd = []; + let meshesToAdd = []; - const videoPosY = item.querySelector( 'p.video-block-positionY' ) - ? item.querySelector( 'p.video-block-positionY' ).innerText - : ''; + if ( gltf.userData.gltfExtensions?.OMI_collider ) { + var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; + } + if ( gltf.userData.gltfExtensions?.KHR_audio ) { + var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; + } - const videoPosZ = item.querySelector( 'p.video-block-positionZ' ) - ? item.querySelector( 'p.video-block-positionZ' ).innerText - : ''; + gltf.scene.traverse( (child) => { + if ( child.userData.gltfExtensions?.OMI_collider ) { + childrenToParse.push(child); + child.parent.remove(child.name); + } else { + meshesToAdd.push(child); + } + }); + + childrenToParse.forEach( (child) => { + let index = child.userData.gltfExtensions.OMI_collider.collider; + collidersToAdd.push([child, colliders[index]]); + // gltf.scene.remove(child.name); + }); - const videoScaleX = item.querySelector( 'p.video-block-scaleX' ) - ? item.querySelector( 'p.video-block-scaleX' ).innerText - : ''; + // console.log("colliders to add", collidersToAdd); + // End OMI_collider logic. - const videoScaleY = item.querySelector( 'p.video-block-scaleY' ) - ? item.querySelector( 'p.video-block-scaleY' ).innerText - : ''; + const { actions } = useAnimations( gltf.animations, gltf.scene ); - const videoScaleZ = item.querySelector( 'p.video-block-scaleZ' ) - ? item.querySelector( 'p.video-block-scaleZ' ).innerText - : ''; + const animationList = props.animations ? props.animations.split( ',' ) : ''; + useEffect( () => { + if ( animationList ) { + animationList.forEach( ( name ) => { + if ( Object.keys( actions ).includes( name ) ) { + actions[ name ].play(); + } + } ); + } + }, [] ); - const videoRotationX = item.querySelector( 'p.video-block-rotationX' ) - ? item.querySelector( 'p.video-block-rotationX' ).innerText - : ''; + // if(gltf?.userData?.gltfExtensions?.VRM){ + // const vrm = gltf.userData.vrm; + // vrm.scene.position.set( 0, props.positionY, 0 ); + // VRMUtils.rotateVRM0( vrm ); + // const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); + // vrm.scene.rotation.set( 0, rotationVRM, 0 ); + // vrm.scene.scale.set( props.scale, props.scale, props.scale ); + // return ; + // } - const videoRotationY = item.querySelector( 'p.video-block-rotationY' ) - ? item.querySelector( 'p.video-block-rotationY' ).innerText - : ''; + // gltf.scene.position.set( 0, props.positionY, 0 ); + // gltf.scene.rotation.set( 0, props.rotationY, 0 ); + // gltf.scene.scale.set( props.scale, props.scale, props.scale ); + // const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); - const videoRotationZ = item.querySelector( 'p.video-block-rotationZ' ) - ? item.querySelector( 'p.video-block-rotationZ' ).innerText - : ''; + if(collidersToAdd.length === 0){ + return ( + + ) + } - const videoUrl = item.querySelector( 'div.video-block-url' ) - ? item.querySelector( 'div.video-block-url' ).innerText - : ''; + return(<> + { meshesToAdd && meshesToAdd.map((item, index)=>{ + if(item.isObject3D){ + const mixer = new THREE.AnimationMixer(gltf.scene); - const aspectHeight = item.querySelector( 'p.video-block-aspect-height' ) - ? item.querySelector( 'p.video-block-aspect-height' ).innerText - : ''; + var pos = new THREE.Vector3(); // create once an reuse it + var quat = new THREE.Quaternion(); // create once an reuse it + var rotation = new THREE.Euler(); + var quaternion = item.getWorldQuaternion(quat); + var finalRotation = rotation.setFromQuaternion(quaternion); - const aspectWidth = item.querySelector( 'p.video-block-aspect-width' ) - ? item.querySelector( 'p.video-block-aspect-width' ).innerText - : ''; - - return(); - })} + // console.log(item.getWorldPosition(target)); + return() + } + })} + { collidersToAdd && collidersToAdd.map((item, index)=>{ + var pos = new THREE.Vector3(); // create once an reuse it + var quat = new THREE.Quaternion(); // create once an reuse it + var rotation = new THREE.Euler(); + var quaternion = item[0].getWorldQuaternion(quat); + var finalRotation = rotation.setFromQuaternion(quaternion); + + // console.log("someitem", item); + //'ball' | 'cuboid' | 'hull' | 'trimesh' | false; + // rotation={item[0].rotation} position={item[0].position} + if(item[1].type === "mesh"){ + return ( + + ) + } + if(item[1].type === "box"){ + return ( + + ) + } + if(item[1].type === "capsule"){ + return ( + + ) + } + if(item[1].type === "sphere"){ + return ( + + ) + } + })} + { participants && participants.map((item, index)=>{ + return ( + <> + + + )}) + } + ); +} - { Object.values(props.modelsToAdd).map((model, index)=>{ - console.log("adding", model); - const modelPosX = model.querySelector( 'p.model-block-position-x' ) - ? model.querySelector( 'p.model-block-position-x' ).innerText +export default function EnvironmentFront( props ) { + const [loaded, setLoaded] = useState(false); + if( loaded === true) { + if ( props.deviceTarget === 'vr' ) { + return ( + <> + + {/* */} + {/* */} + + + + + + + + {/* */} + { props.threeUrl && ( + <> + + + + { Object.values(props.sky).map((item, index)=>{ + return(<> + + ); + }) + } + { Object.values(props.imagesToAdd).map((item, index)=>{ + const imagePosX = item.querySelector( 'p.image-block-positionX' ) + ? item.querySelector( 'p.image-block-positionX' ).innerText : ''; - const modelPosY = model.querySelector( 'p.model-block-position-y' ) - ? model.querySelector( 'p.model-block-position-y' ).innerText + const imagePosY = item.querySelector( 'p.image-block-positionY' ) + ? item.querySelector( 'p.image-block-positionY' ).innerText : ''; - const modelPosZ = model.querySelector( 'p.model-block-position-z' ) - ? model.querySelector( 'p.model-block-position-z' ).innerText - : ''; - - const modelScaleX = model.querySelector( 'p.model-block-scale-x' ) - ? model.querySelector( 'p.model-block-scale-x' ).innerText - : ''; - - const modelScaleY = model.querySelector( 'p.model-block-scale-y' ) - ? model.querySelector( 'p.model-block-scale-y' ).innerText - : ''; - - const modelScaleZ = model.querySelector( 'p.model-block-scale-z' ) - ? model.querySelector( 'p.model-block-scale-z' ).innerText - : ''; - - const modelRotationX = model.querySelector( 'p.model-block-rotation-x' ) - ? model.querySelector( 'p.model-block-rotation-x' ).innerText - : ''; - - const modelRotationY = model.querySelector( 'p.model-block-rotation-y' ) - ? model.querySelector( 'p.model-block-rotation-y' ).innerText - : ''; - - const modelRotationZ = model.querySelector( 'p.model-block-rotation-z' ) - ? model.querySelector( 'p.model-block-rotation-z' ).innerText + const imagePosZ = item.querySelector( 'p.image-block-positionZ' ) + ? item.querySelector( 'p.image-block-positionZ' ).innerText : ''; - - const url = model.querySelector( 'p.model-block-url' ) - ? model.querySelector( 'p.model-block-url' ).innerText - : ''; - - const animations = model.querySelector( 'p.model-block-animations' ) - ? model.querySelector( 'p.model-block-animations' ).innerText - : ''; - - const alt = model.querySelector( 'p.model-block-alt' ) - ? model.querySelector( 'p.model-block-alt' ).innerText - : ''; - - const collidable = model.querySelector( 'p.model-block-collidable' ) - ? model.querySelector( 'p.model-block-collidable' ).innerText - : false; - - return(); - })} - { Object.values(props.htmlToAdd).map((model, index)=>{ - const markup = model.querySelector( 'p.three-html-markup' ) - ? model.querySelector( 'p.three-html-markup' ).innerText - : ''; - const rotationX = model.querySelector( 'p.three-html-rotationX' ) - ? model.querySelector( 'p.three-html-rotationX' ).innerText + + const imageScaleX = item.querySelector( 'p.image-block-scaleX' ) + ? item.querySelector( 'p.image-block-scaleX' ).innerText : ''; - const rotationY = model.querySelector( 'p.three-html-rotationY' ) - ? model.querySelector( 'p.three-html-rotationY' ).innerText + + const imageScaleY = item.querySelector( 'p.image-block-scaleY' ) + ? item.querySelector( 'p.image-block-scaleY' ).innerText : ''; - const rotationZ = model.querySelector( 'p.three-html-rotationZ' ) - ? model.querySelector( 'p.three-html-rotationZ' ).innerText + + const imageScaleZ = item.querySelector( 'p.image-block-scaleZ' ) + ? item.querySelector( 'p.image-block-scaleZ' ).innerText : ''; - const positionX = model.querySelector( 'p.three-html-positionX' ) - ? model.querySelector( 'p.three-html-positionX' ).innerText + + const imageRotationX = item.querySelector( 'p.image-block-rotationX' ) + ? item.querySelector( 'p.image-block-rotationX' ).innerText : ''; - const positionY = model.querySelector( 'p.three-html-positionY' ) - ? model.querySelector( 'p.three-html-positionY' ).innerText + + const imageRotationY = item.querySelector( 'p.image-block-rotationY' ) + ? item.querySelector( 'p.image-block-rotationY' ).innerText : ''; - const positionZ = model.querySelector( 'p.three-html-positionZ' ) - ? model.querySelector( 'p.three-html-positionZ' ).innerText + + const imageRotationZ = item.querySelector( 'p.image-block-rotationZ' ) + ? item.querySelector( 'p.image-block-rotationZ' ).innerText : ''; - - return(); - })} - { Object.values(props.portalsToAdd).map((model, index)=>{ - const modelPosX = model.querySelector( 'p.three-portal-block-position-x' ) - ? model.querySelector( 'p.three-portal-block-position-x' ).innerText + + const imageUrl = item.querySelector( 'p.image-block-url' ) + ? item.querySelector( 'p.image-block-url' ).innerText : ''; - - const modelPosY = model.querySelector( 'p.three-portal-block-position-y' ) - ? model.querySelector( 'p.three-portal-block-position-y' ).innerText + + const aspectHeight = item.querySelector( 'p.image-block-aspect-height' ) + ? item.querySelector( 'p.image-block-aspect-height' ).innerText : ''; + + const aspectWidth = item.querySelector( 'p.image-block-aspect-width' ) + ? item.querySelector( 'p.image-block-aspect-width' ).innerText + : ''; + + return(); + })} + { Object.values(props.videosToAdd).map((item, index)=>{ + const videoPosX = item.querySelector( 'p.video-block-positionX' ) + ? item.querySelector( 'p.video-block-positionX' ).innerText + : ''; + + const videoPosY = item.querySelector( 'p.video-block-positionY' ) + ? item.querySelector( 'p.video-block-positionY' ).innerText + : ''; + + const videoPosZ = item.querySelector( 'p.video-block-positionZ' ) + ? item.querySelector( 'p.video-block-positionZ' ).innerText + : ''; + + const videoScaleX = item.querySelector( 'p.video-block-scaleX' ) + ? item.querySelector( 'p.video-block-scaleX' ).innerText + : ''; + + const videoScaleY = item.querySelector( 'p.video-block-scaleY' ) + ? item.querySelector( 'p.video-block-scaleY' ).innerText + : ''; + + const videoScaleZ = item.querySelector( 'p.video-block-scaleZ' ) + ? item.querySelector( 'p.video-block-scaleZ' ).innerText + : ''; + + const videoRotationX = item.querySelector( 'p.video-block-rotationX' ) + ? item.querySelector( 'p.video-block-rotationX' ).innerText + : ''; + + const videoRotationY = item.querySelector( 'p.video-block-rotationY' ) + ? item.querySelector( 'p.video-block-rotationY' ).innerText + : ''; + + const videoRotationZ = item.querySelector( 'p.video-block-rotationZ' ) + ? item.querySelector( 'p.video-block-rotationZ' ).innerText + : ''; + + const videoUrl = item.querySelector( 'div.video-block-url' ) + ? item.querySelector( 'div.video-block-url' ).innerText + : ''; + + const aspectHeight = item.querySelector( 'p.video-block-aspect-height' ) + ? item.querySelector( 'p.video-block-aspect-height' ).innerText + : ''; + + const aspectWidth = item.querySelector( 'p.video-block-aspect-width' ) + ? item.querySelector( 'p.video-block-aspect-width' ).innerText + : ''; + + return(); + })} + + { Object.values(props.modelsToAdd).map((model, index)=>{ + console.log("adding", model); + const modelPosX = model.querySelector( 'p.model-block-position-x' ) + ? model.querySelector( 'p.model-block-position-x' ).innerText + : ''; - const modelPosZ = model.querySelector( 'p.three-portal-block-position-z' ) - ? model.querySelector( 'p.three-portal-block-position-z' ).innerText - : ''; - - const modelScaleX = model.querySelector( 'p.three-portal-block-scale-x' ) - ? model.querySelector( 'p.three-portal-block-scale-x' ).innerText - : ''; - - const modelScaleY = model.querySelector( 'p.three-portal-block-scale-y' ) - ? model.querySelector( 'p.three-portal-block-scale-y' ).innerText - : ''; - - const modelScaleZ = model.querySelector( 'p.three-portal-block-scale-z' ) - ? model.querySelector( 'p.three-portal-block-scale-z' ).innerText - : ''; - - const modelRotationX = model.querySelector( 'p.three-portal-block-rotation-x' ) - ? model.querySelector( 'p.three-portal-block-rotation-x' ).innerText - : ''; - - const modelRotationY = model.querySelector( 'p.three-portal-block-rotation-y' ) - ? model.querySelector( 'p.three-portal-block-rotation-y' ).innerText - : ''; - - const modelRotationZ = model.querySelector( 'p.three-portal-block-rotation-z' ) - ? model.querySelector( 'p.three-portal-block-rotation-z' ).innerText - : ''; - - const url = model.querySelector( 'p.three-portal-block-url' ) - ? model.querySelector( 'p.three-portal-block-url' ).innerText - : ''; - - const destinationUrl = model.querySelector( 'p.three-portal-block-destination-url' ) - ? model.querySelector( 'p.three-portal-block-destination-url' ).innerText - : ''; - - const animations = model.querySelector( 'p.three-portal-block-animations' ) - ? model.querySelector( 'p.three-portal-block-animations' ).innerText - : ''; - - return(); - })} - {/* - - */} - - - ) } - - - {/* */} - - + const modelPosY = model.querySelector( 'p.model-block-position-y' ) + ? model.querySelector( 'p.model-block-position-y' ).innerText + : ''; + + const modelPosZ = model.querySelector( 'p.model-block-position-z' ) + ? model.querySelector( 'p.model-block-position-z' ).innerText + : ''; + + const modelScaleX = model.querySelector( 'p.model-block-scale-x' ) + ? model.querySelector( 'p.model-block-scale-x' ).innerText + : ''; + + const modelScaleY = model.querySelector( 'p.model-block-scale-y' ) + ? model.querySelector( 'p.model-block-scale-y' ).innerText + : ''; + + const modelScaleZ = model.querySelector( 'p.model-block-scale-z' ) + ? model.querySelector( 'p.model-block-scale-z' ).innerText + : ''; + + const modelRotationX = model.querySelector( 'p.model-block-rotation-x' ) + ? model.querySelector( 'p.model-block-rotation-x' ).innerText + : ''; + + const modelRotationY = model.querySelector( 'p.model-block-rotation-y' ) + ? model.querySelector( 'p.model-block-rotation-y' ).innerText + : ''; + + const modelRotationZ = model.querySelector( 'p.model-block-rotation-z' ) + ? model.querySelector( 'p.model-block-rotation-z' ).innerText + : ''; + + const url = model.querySelector( 'p.model-block-url' ) + ? model.querySelector( 'p.model-block-url' ).innerText + : ''; + + const animations = model.querySelector( 'p.model-block-animations' ) + ? model.querySelector( 'p.model-block-animations' ).innerText + : ''; + + const alt = model.querySelector( 'p.model-block-alt' ) + ? model.querySelector( 'p.model-block-alt' ).innerText + : ''; + + const collidable = model.querySelector( 'p.model-block-collidable' ) + ? model.querySelector( 'p.model-block-collidable' ).innerText + : false; + + return(); + })} + { Object.values(props.htmlToAdd).map((model, index)=>{ + const markup = model.querySelector( 'p.three-html-markup' ) + ? model.querySelector( 'p.three-html-markup' ).innerText + : ''; + const rotationX = model.querySelector( 'p.three-html-rotationX' ) + ? model.querySelector( 'p.three-html-rotationX' ).innerText + : ''; + const rotationY = model.querySelector( 'p.three-html-rotationY' ) + ? model.querySelector( 'p.three-html-rotationY' ).innerText + : ''; + const rotationZ = model.querySelector( 'p.three-html-rotationZ' ) + ? model.querySelector( 'p.three-html-rotationZ' ).innerText + : ''; + const positionX = model.querySelector( 'p.three-html-positionX' ) + ? model.querySelector( 'p.three-html-positionX' ).innerText + : ''; + const positionY = model.querySelector( 'p.three-html-positionY' ) + ? model.querySelector( 'p.three-html-positionY' ).innerText + : ''; + const positionZ = model.querySelector( 'p.three-html-positionZ' ) + ? model.querySelector( 'p.three-html-positionZ' ).innerText + : ''; + + return(); + })} + { Object.values(props.portalsToAdd).map((model, index)=>{ + const modelPosX = model.querySelector( 'p.three-portal-block-position-x' ) + ? model.querySelector( 'p.three-portal-block-position-x' ).innerText + : ''; + + const modelPosY = model.querySelector( 'p.three-portal-block-position-y' ) + ? model.querySelector( 'p.three-portal-block-position-y' ).innerText + : ''; + + const modelPosZ = model.querySelector( 'p.three-portal-block-position-z' ) + ? model.querySelector( 'p.three-portal-block-position-z' ).innerText + : ''; + + const modelScaleX = model.querySelector( 'p.three-portal-block-scale-x' ) + ? model.querySelector( 'p.three-portal-block-scale-x' ).innerText + : ''; + + const modelScaleY = model.querySelector( 'p.three-portal-block-scale-y' ) + ? model.querySelector( 'p.three-portal-block-scale-y' ).innerText + : ''; + + const modelScaleZ = model.querySelector( 'p.three-portal-block-scale-z' ) + ? model.querySelector( 'p.three-portal-block-scale-z' ).innerText + : ''; + + const modelRotationX = model.querySelector( 'p.three-portal-block-rotation-x' ) + ? model.querySelector( 'p.three-portal-block-rotation-x' ).innerText + : ''; + + const modelRotationY = model.querySelector( 'p.three-portal-block-rotation-y' ) + ? model.querySelector( 'p.three-portal-block-rotation-y' ).innerText + : ''; + + const modelRotationZ = model.querySelector( 'p.three-portal-block-rotation-z' ) + ? model.querySelector( 'p.three-portal-block-rotation-z' ).innerText + : ''; + + const url = model.querySelector( 'p.three-portal-block-url' ) + ? model.querySelector( 'p.three-portal-block-url' ).innerText + : ''; + + const destinationUrl = model.querySelector( 'p.three-portal-block-destination-url' ) + ? model.querySelector( 'p.three-portal-block-destination-url' ).innerText + : ''; + + const animations = model.querySelector( 'p.three-portal-block-animations' ) + ? model.querySelector( 'p.three-portal-block-animations' ).innerText + : ''; + + return(); + })} + {/* + + */} + + + ) } + + + {/* */} + + + ); + } + } else { + return( +
+
+ +
+
); } } diff --git a/blocks/environment/components/Networking.js b/blocks/environment/components/Networking.js index 5b1ada1..2349d9c 100644 --- a/blocks/environment/components/Networking.js +++ b/blocks/environment/components/Networking.js @@ -76,6 +76,13 @@ const Networking = (props) => { ) }); + const audio = () => { + document.getElementById('audio-start').addEventListener('click', () => { + console.log(getAudioContext()); + getAudioContext().resume(); + }) + } + const go = () => { document.getElementById('session-id').innerText = p2pcf.sessionId.substring(0, 5) + '@' + p2pcf.roomId + ':'; @@ -106,10 +113,12 @@ const Networking = (props) => { document .getElementById('join-button') .addEventListener('click', async () => { + window.addEventListener('DOMContentLoaded', audio, { once: true }) // window.addEventListener('DOMContentLoaded', go, { once: true }) }) } else { // window.addEventListener('DOMContentLoaded', go, { once: true }) + window.addEventListener('DOMContentLoaded', audio, { once: true }) } return ( diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 44fde6b..c5f4a66 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -2,6 +2,7 @@ import * as THREE from 'three'; import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; import { PerspectiveCamera, OrbitControls, @@ -102,7 +103,7 @@ function ImageObject( threeImage ) { }} > - + @@ -145,7 +146,7 @@ function VideoObject(threeVideo) { - + ); @@ -440,6 +441,10 @@ function ThreeObject( props ) { } ); const gltf = useLoader( GLTFLoader, url, ( loader ) => { + // const dracoLoader = new DRACOLoader(); + // dracoLoader.setDecoderPath('https://www.gstatic.com/draco/v1/decoders/'); + // loader.setDRACOLoader(dracoLoader); + loader.register( ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) ); @@ -477,7 +482,7 @@ function ThreeObject( props ) { gltf.scene.position.set( 0, props.positionY, 0 ); gltf.scene.rotation.set( 0, props.rotationY, 0 ); gltf.scene.scale.set( props.scale, props.scale, props.scale ); - const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) + // const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) return( <> @@ -619,7 +624,7 @@ function ThreeObject( props ) { transformMode={props.transformMode} /> } */} - + ); } diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index 5aaf2da..5ca9781 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -1,4 +1,5 @@ const { Component, render } = wp.element; +import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; import EnvironmentFront from './components/EnvironmentFront'; import Networking from './components/Networking'; @@ -10,12 +11,14 @@ const portalsToAdd = document.querySelectorAll( '.three-object-three-app-three-p const sky = document.querySelectorAll( '.three-object-three-app-sky-block' ); const imagesToAdd = document.querySelectorAll( '.three-object-three-app-image-block' ); const videosToAdd = document.querySelectorAll( '.three-object-three-app-video-block' ); - threeApp.forEach( ( threeApp ) => { if ( threeApp ) { const threeUrl = threeApp.querySelector( 'p.three-object-block-url' ) ? threeApp.querySelector( 'p.three-object-block-url' ).innerText : ''; + const threePreviewImage = threeApp.querySelector( 'p.three-object-preview-image' ) + ? threeApp.querySelector( 'p.three-object-preview-image' ).innerText + : ''; const deviceTarget = threeApp.querySelector( 'p.three-object-block-device-target' ) @@ -58,6 +61,7 @@ threeApp.forEach( ( threeApp ) => {

Messages

Send Button
+
@@ -85,7 +89,9 @@ threeApp.forEach( ( threeApp ) => { videosToAdd={ videosToAdd } htmlToAdd={htmlToAdd} sky={ sky ? sky : '' } - />, + previewImage={threePreviewImage} + /> + , threeApp ); } diff --git a/blocks/model-block/block.json b/blocks/model-block/block.json index c10a735..a288846 100644 --- a/blocks/model-block/block.json +++ b/blocks/model-block/block.json @@ -59,7 +59,7 @@ "default": false } }, - "category": "3D", + "category": "design", "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/sky-block/block.json b/blocks/sky-block/block.json index 23a1953..0b74ce1 100644 --- a/blocks/sky-block/block.json +++ b/blocks/sky-block/block.json @@ -8,7 +8,7 @@ "default": null } }, - "category": "3D", + "category": "design", "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/three-audio-block/block.json b/blocks/three-audio-block/block.json index b7f9c53..e6211f9 100644 --- a/blocks/three-audio-block/block.json +++ b/blocks/three-audio-block/block.json @@ -96,7 +96,7 @@ "default":0 } }, - "category": "3D", + "category": "design", "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/three-audio-block/components/ImageEdit.js b/blocks/three-audio-block/components/ImageEdit.js index 27f3ca6..4445be0 100644 --- a/blocks/three-audio-block/components/ImageEdit.js +++ b/blocks/three-audio-block/components/ImageEdit.js @@ -25,7 +25,7 @@ function Plane(props) { - + ); } diff --git a/blocks/three-html-block/block.json b/blocks/three-html-block/block.json index 48a2004..25fe95c 100644 --- a/blocks/three-html-block/block.json +++ b/blocks/three-html-block/block.json @@ -60,7 +60,7 @@ "default": false } }, - "category": "3D", + "category": "design", "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/three-image-block/block.json b/blocks/three-image-block/block.json index 648558a..9685850 100644 --- a/blocks/three-image-block/block.json +++ b/blocks/three-image-block/block.json @@ -52,7 +52,7 @@ "default":0 } }, - "category": "3D", + "category": "design", "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/three-image-block/components/ImageEdit.js b/blocks/three-image-block/components/ImageEdit.js index 452b775..2688816 100644 --- a/blocks/three-image-block/components/ImageEdit.js +++ b/blocks/three-image-block/components/ImageEdit.js @@ -18,7 +18,7 @@ function Plane(props) { return ( - + ); diff --git a/blocks/three-object-block/block.json b/blocks/three-object-block/block.json index 0d00bc7..49d2eb3 100644 --- a/blocks/three-object-block/block.json +++ b/blocks/three-object-block/block.json @@ -48,7 +48,7 @@ "default": "" } }, - "category": "3D", + "category": "design", "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/three-object-block/components/ThreeObjectFront.js b/blocks/three-object-block/components/ThreeObjectFront.js index 58b9016..166c259 100644 --- a/blocks/three-object-block/components/ThreeObjectFront.js +++ b/blocks/three-object-block/components/ThreeObjectFront.js @@ -108,7 +108,7 @@ function SavedObject( props ) { function Floor( props ) { return ( - + - + ); } From 75160ca1958a60bd62e3ef8cdfb2dd8c07ed4e47 Mon Sep 17 00:00:00 2001 From: antpb Date: Fri, 28 Oct 2022 00:59:36 -0500 Subject: [PATCH 35/48] turns on networking and restructures editor transform gizmo logic --- .../components/EnvironmentFront.js | 81 +++--- blocks/environment/components/Networking.js | 24 +- .../environment/components/ThreeObjectEdit.js | 239 ++++++++++-------- blocks/environment/editor.scss | 20 +- blocks/environment/frontend.js | 4 +- 5 files changed, 207 insertions(+), 161 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 1ed05d4..297495f 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -2,10 +2,11 @@ import * as THREE from 'three'; import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -// import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; +import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader"; import { Physics, RigidBody, MeshCollider, Debug } from "@react-three/rapier"; import * as SkeletonUtils from 'three/examples/jsm/utils/SkeletonUtils.js'; +import Networking from './Networking'; import { useAnimations, @@ -48,15 +49,16 @@ function Participant( participant ) { playerController.scene.rotation.set( 0, rotationVRM, 0 ); playerController.scene.scale.set( 1, 1, 1 ); const theScene = useThree(); - // participant.p2pcf.on('msg', (peer, data) => { - // let finalData = new TextDecoder('utf-8').decode(data); - // const participantData = JSON.parse( finalData ); - // const participantObject = theScene.scene.getObjectByName(peer.client_id); - // if(participantObject){ - // participantObject.position.set(participantData[peer.client_id][0]["position"][0], participantData[peer.client_id][0]["position"][1], participantData[peer.client_id][0]["position"][2] ); - // participantObject.rotation.set(participantData[peer.client_id][1]["rotation"][0], participantData[peer.client_id][1]["rotation"][1], participantData[peer.client_id][1]["rotation"][2] ); - // } - // }); + + participant.p2pcf.on('msg', (peer, data) => { + let finalData = new TextDecoder('utf-8').decode(data); + const participantData = JSON.parse( finalData ); + const participantObject = theScene.scene.getObjectByName(peer.client_id); + if(participantObject){ + participantObject.position.set(participantData[peer.client_id][0]["position"][0], participantData[peer.client_id][0]["position"][1], participantData[peer.client_id][0]["position"][2] ); + participantObject.rotation.set(participantData[peer.client_id][1]["rotation"][0], participantData[peer.client_id][1]["rotation"][1], participantData[peer.client_id][1]["rotation"][2] ); + } + }); // participant.p2pcf.on('peerclose', peer => { // const participantObject = theScene.scene.getObjectByName(peer.client_id); @@ -66,11 +68,12 @@ function Participant( participant ) { // console.log('Peer close', peer.id, peer); // // removePeerUi(peer.id) // }) - + + const modelClone = SkeletonUtils.clone(playerController.scene); return ( <> - {playerController && } + {playerController && } ); } @@ -127,7 +130,7 @@ function ModelObject( model ) { const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); const modelClone = SkeletonUtils.clone(gltf.scene); console.log("model clone", modelClone); - console.log("scene", gltf.scene); + console.log("copygltf", copyGltf); if(model.collidable === "1"){ return(<> ); } else { return <> - {/* */} - {/* */} ; } } @@ -290,10 +291,8 @@ function Markup( model ) { ); } -function SavedObject( props ) { +function Participants( props ) { const [ participants, setParticipant ] = useState([]); - const meshRef = useRef(); - const p2pcf = window.p2pcf; if(p2pcf){ p2pcf.on('peerconnect', peer => { @@ -301,6 +300,23 @@ function SavedObject( props ) { setParticipant(current => [...current, peer.client_id]); }) } + return(<> + { participants && participants.map((item, index)=>{ + return ( + <> + + + )}) + } + ); +} + +function SavedObject( props ) { + const meshRef = useRef(); + const [ url, set ] = useState( props.url ); useEffect( () => { @@ -313,9 +329,9 @@ function SavedObject( props ) { } ); const gltf = useLoader( GLTFLoader, url, ( loader ) => { - // const dracoLoader = new DRACOLoader(); - // dracoLoader.setDecoderPath('https://www.gstatic.com/draco/v1/decoders/'); - // loader.setDRACOLoader(dracoLoader); + const dracoLoader = new DRACOLoader(); + dracoLoader.setDecoderPath('https://www.gstatic.com/draco/v1/decoders/'); + loader.setDRACOLoader(dracoLoader); loader.register( ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) @@ -326,6 +342,7 @@ function SavedObject( props ) { } ); } ); + console.log("hopefordraco", gltf.userData.gltfExtensions); //OMI_collider logic. let childrenToParse = []; let collidersToAdd = []; @@ -353,7 +370,6 @@ function SavedObject( props ) { // gltf.scene.remove(child.name); }); - // console.log("colliders to add", collidersToAdd); // End OMI_collider logic. const { actions } = useAnimations( gltf.animations, gltf.scene ); @@ -386,8 +402,8 @@ function SavedObject( props ) { if(collidersToAdd.length === 0){ return ( - - ) + + ) } return(<> @@ -436,16 +452,6 @@ function SavedObject( props ) {
) } })} - { participants && participants.map((item, index)=>{ - return ( - <> - - - )}) - } ); } @@ -461,7 +467,7 @@ export default function EnvironmentFront( props ) { style={ { backgroundColor: props.backgroundColor, margin: '0', - height: '900px', + height: '100vh', width: '100%', padding: '0', } } @@ -483,9 +489,10 @@ export default function EnvironmentFront( props ) { {/* */} { props.threeUrl && ( - <> + <> + { console.log(peer.client_id); if (stream) { - peer.addStream(stream) + peer.addStream(stream); } peer.on('track', (track, stream) => { console.log('got track', track); @@ -76,23 +76,16 @@ const Networking = (props) => { ) }); - const audio = () => { - document.getElementById('audio-start').addEventListener('click', () => { - console.log(getAudioContext()); - getAudioContext().resume(); - }) - } - const go = () => { document.getElementById('session-id').innerText = p2pcf.sessionId.substring(0, 5) + '@' + p2pcf.roomId + ':'; - document.getElementById('send-button').addEventListener('click', () => { - const box = document.getElementById('send-box'); - addMessage(p2pcf.sessionId.substring(0, 5) + ': ' + box.value); - p2pcf.broadcast(new TextEncoder().encode(box.value)); - box.value = ''; - }) + // document.getElementById('send-button').addEventListener('click', () => { + // const box = document.getElementById('send-box'); + // addMessage(p2pcf.sessionId.substring(0, 5) + ': ' + box.value); + // p2pcf.broadcast(new TextEncoder().encode(box.value)); + // box.value = ''; + // }) document .getElementById('audio-button') @@ -117,8 +110,7 @@ const Networking = (props) => { // window.addEventListener('DOMContentLoaded', go, { once: true }) }) } else { - // window.addEventListener('DOMContentLoaded', go, { once: true }) - window.addEventListener('DOMContentLoaded', audio, { once: true }) + window.addEventListener('DOMContentLoaded', go, { once: true }) } return ( diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index c5f4a66..0a48db4 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -9,7 +9,8 @@ import { useAnimations, Html, TransformControls, - Stats + Stats, + Select } from '@react-three/drei'; import { VRMUtils, VRMLoaderPlugin } from '@pixiv/three-vrm' import { GLTFAudioEmitterExtension } from 'three-omi'; @@ -78,35 +79,43 @@ function ImageObject( threeImage ) { // console.log(threeImage.aspectWidth, threeImage.aspectHeight); const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); const imgObj = useRef(); + const [isSelected, setIsSelected] = useState(); + const threeImageBlockAttributes = wp.data.select( 'core/block-editor' ).getBlockAttributes(threeImage.imageID); return ( - { - const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); - const scale = e?.target.worldScale; - rot.setFromQuaternion(e?.target.worldQuaternion); - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(threeImage.imageID, { - positionX: e?.target.worldPosition.x, - positionY: e?.target.worldPosition.y, - positionZ: e?.target.worldPosition.z, - rotationX: rot.x, - rotationY: rot.y, - rotationZ: rot.z, - scaleX: scale.x, - scaleY: scale.y, - scaleZ: scale.z - }) - }} - > - - - - - + ); } @@ -115,40 +124,61 @@ function VideoObject(threeVideo) { const clicked = true; const [video] = useState(() => Object.assign(document.createElement('video'), { src: threeVideo.url, crossOrigin: 'Anonymous', loop: true, muted: true })); const videoObj = useRef(); + const [isSelected, setIsSelected] = useState(); + const [threeVideoBlockAttributes, setThreeVideoBlockAttributes ] = useState(wp.data.select( 'core/block-editor' ).getBlockAttributes(threeVideo.videoID)); + const TransformController = ({condition, wrap, children}) => condition ? wrap(children) : children; + useEffect(() => void (clicked && video.play()), [video, clicked]); return ( - { - const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); - const scale = e?.target.worldScale; - console.log("videoscale", scale); - rot.setFromQuaternion(e?.target.worldQuaternion); - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(threeVideo.videoID, { - positionX: e?.target.worldPosition.x, - positionY: e?.target.worldPosition.y, - positionZ: e?.target.worldPosition.z, - rotationX: rot.x, - rotationY: rot.y, - rotationZ: rot.z, - scaleX: scale.x, - scaleY: scale.y, - scaleZ: scale.z - }) - }} - > - + ); } @@ -202,57 +232,62 @@ function ModelObject( model ) { gltf.scene.rotation.set( 0, 0, 0 ); const obj = useRef(); const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) - - return ( model.transformMode !== undefined ? (<> - { - const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); - const scale = e?.target.worldScale; - - rot.setFromQuaternion(e?.target.worldQuaternion); - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.modelId, { - positionX: e?.target.worldPosition.x, - positionY: e?.target.worldPosition.y, - positionZ: e?.target.worldPosition.z, - rotationX: rot.x, - rotationY: rot.y, - rotationZ: rot.z, - scaleX: scale.x, - scaleY: scale.y, - scaleZ: scale.z - }); - - if(model.shouldFocus){ - setFocusPosition([e?.target.worldPosition.x, e?.target.worldPosition.y, e?.target.worldPosition.z]); - camera.position.set(model.focusPosition); + const [isSelected, setIsSelected] = useState(); + const [modelBlockAttributes, setModelBlockAttributes ] = useState(wp.data.select( 'core/block-editor' ).getBlockAttributes(model.modelId)); + const TransformController = ({condition, wrap, children}) => condition ? wrap(children) : children; + + return (<> + + ); } function PortalObject( model ) { diff --git a/blocks/environment/editor.scss b/blocks/environment/editor.scss index eb18aee..140d4ed 100644 --- a/blocks/environment/editor.scss +++ b/blocks/environment/editor.scss @@ -2,6 +2,14 @@ .wp-block-three-object-block { border: 1px dotted #f00; } + +.wp-block-three-object-viewer-environment.alignfull { + position: relative; + top: 0; + bottom: 0; + width:100vw; + height: 100vh; +} .glb-preview-container { padding: 100px; text-align: center; @@ -29,12 +37,18 @@ box-sizing: border-box; } -.wp-block-three-object-viewer-sky-block, .wp-block-three-object-viewer-model-block, .wp-block-three-object-viewer-three-image-block, .wp-block-three-object-viewer-three-audio-block, .wp-block-three-object-viewer-three-portal-block, .wp-block-three-object-viewer-three-video-block, .wp-block-three-object-viewer-three-html-block { +.wp-block-three-object-viewer-sky-block, +.wp-block-three-object-viewer-model-block, +.wp-block-three-object-viewer-three-image-block, +.wp-block-three-object-viewer-three-audio-block, +.wp-block-three-object-viewer-three-portal-block, +.wp-block-three-object-viewer-three-video-block, +.wp-block-three-object-viewer-three-html-block { display: flex; float: left; - padding-left:10px; + padding-left:10px !important; height: auto; - padding-right: 10px; + padding-right: 10px !important; // background-color: rgb(42, 42, 42); } diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index 5ca9781..060fbb9 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -60,10 +60,8 @@ threeApp.forEach( ( threeApp ) => {

Messages

-
Send Button
- + {/*
Send Button
*/} -
Date: Wed, 2 Nov 2022 01:16:24 -0500 Subject: [PATCH 36/48] limits inner blocks to environments --- blocks/environment/components/Controls.js | 16 +- .../components/EnvironmentFront.js | 15 +- blocks/environment/components/Player.js | 1 + .../environment/components/ThreeObjectEdit.js | 187 +++++++++++------ blocks/environment/editor.scss | 1 + blocks/environment/frontend.js | 3 + blocks/model-block/block.json | 1 + blocks/sky-block/block.json | 1 + blocks/spawn-point-block/Edit.js | 137 ++++++++++++ blocks/spawn-point-block/Edit.test.js | 57 +++++ blocks/spawn-point-block/Save.js | 31 +++ blocks/spawn-point-block/block.json | 41 ++++ .../spawn-point-block/components/ImageEdit.js | 69 ++++++ blocks/spawn-point-block/editor.scss | 42 ++++ blocks/spawn-point-block/index.js | 197 ++++++++++++++++++ blocks/spawn-point-block/init.php | 10 + blocks/spawn-point-block/style.scss | 44 ++++ blocks/three-audio-block/block.json | 1 + blocks/three-html-block/block.json | 1 + blocks/three-image-block/block.json | 1 + blocks/three-portal-block/block.json | 1 + blocks/three-video-block/block.json | 1 + inc/functions.php | 3 +- pluginMachine.json | 4 +- three-object-viewer.php | 3 + 25 files changed, 799 insertions(+), 69 deletions(-) create mode 100644 blocks/spawn-point-block/Edit.js create mode 100644 blocks/spawn-point-block/Edit.test.js create mode 100644 blocks/spawn-point-block/Save.js create mode 100644 blocks/spawn-point-block/block.json create mode 100644 blocks/spawn-point-block/components/ImageEdit.js create mode 100644 blocks/spawn-point-block/editor.scss create mode 100644 blocks/spawn-point-block/index.js create mode 100644 blocks/spawn-point-block/init.php create mode 100644 blocks/spawn-point-block/style.scss diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 67fbb66..6ced3d2 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -1,4 +1,4 @@ -import React, { useRef, useState } from 'react'; +import React, { useEffect, useRef, useState, componentDidMount } from 'react'; // import { Raycaster, Vector3, Math, Euler } from 'three'; import * as THREE from 'three'; @@ -10,7 +10,7 @@ import { RigidBody, MeshCollider, useRapier, BallCollider, useRigidBody, RigidBo function touchStarted() { getAudioContext().resume(); } - + const Controls = (props) => { const p2pcf = window.p2pcf; const controlsRef = useRef(); @@ -20,11 +20,19 @@ const Controls = (props) => { const [ moveBackward, setMoveBackward ] = useState( false ); const [ moveLeft, setMoveLeft ] = useState( false ); const [ moveRight, setMoveRight ] = useState( false ); + const [ spawnPos, setSpawnPos ] = useState(); const [ jump, setJump ] = useState( false ); const currentRigidbody = useRigidBody(); const {world, rapier} = useRapier(); let ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }); const {camera, scene} = useThree(); + console.log("your spawnpoint", props.spawnPoint); + + useEffect( () => { + setSpawnPos(props.spawnPoint); + // console.log("janky point", spawnPos); + }, []); + useFrame( () => { const playerThing = world.getRigidBody(props.something.current.handle); @@ -151,6 +159,9 @@ const Controls = (props) => { setLock(false); break; case "Space": + // camera.position.set(spawnPos[0], spawnPos[1], spawnPos[2]); + controlsRef.current.camera.position.set(spawnPos[0], spawnPos[1], spawnPos[2]); + setLock(false); window.addEventListener('keydown', (e) => { if (e.keyCode === 32 && e.target === document.body) { e.preventDefault(); @@ -185,6 +196,7 @@ const Controls = (props) => { case "Space": setJump(false); + setLock(true); break; case 'ArrowRight': diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 297495f..d1936ee 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -342,7 +342,6 @@ function SavedObject( props ) { } ); } ); - console.log("hopefordraco", gltf.userData.gltfExtensions); //OMI_collider logic. let childrenToParse = []; let collidersToAdd = []; @@ -428,9 +427,6 @@ function SavedObject( props ) { var quaternion = item[0].getWorldQuaternion(quat); var finalRotation = rotation.setFromQuaternion(quaternion); - // console.log("someitem", item); - //'ball' | 'cuboid' | 'hull' | 'trimesh' | false; - // rotation={item[0].rotation} position={item[0].position} if(item[1].type === "mesh"){ return ( @@ -462,7 +458,12 @@ export default function EnvironmentFront( props ) { return ( <> - + diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 0a48db4..6a87e1c 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -62,19 +62,66 @@ function Markup( model ) { } function Sky( sky ) { - const skyUrl = sky.src.skyUrl; - if(skyUrl){ - const texture_1 = useLoader(THREE.TextureLoader, skyUrl); + const skyUrl = sky.src.skyUrl; + if(skyUrl){ + const texture_1 = useLoader(THREE.TextureLoader, skyUrl); + + return ( + + + + + ); + } +} - return ( - - - - - ); - } +function Spawn( spawn ) { + const spawnObj = useRef(); + const [isSelected, setIsSelected] = useState(); + const spawnBlockAttributes = wp.data.select( 'core/block-editor' ).getBlockAttributes(spawn.spawnpointID); + const TransformController = ({condition, wrap, children}) => condition ? wrap(children) : children; + if(spawn){ + return ( + + ); + } } + function ImageObject( threeImage ) { // console.log(threeImage.aspectWidth, threeImage.aspectHeight); const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); @@ -291,6 +338,10 @@ function ModelObject( model ) { } function PortalObject( model ) { + const [isSelected, setIsSelected] = useState(); + const [portalBlockAttributes, setPortalBlockAttributes ] = useState(wp.data.select( 'core/block-editor' ).getBlockAttributes(model.portalID)); + const TransformController = ({condition, wrap, children}) => condition ? wrap(children) : children; + const [ url, set ] = useState( model.url ); useEffect( () => { setTimeout( () => set( model.url ), 2000 ); @@ -341,62 +392,66 @@ function PortalObject( model ) { const obj = useRef(); const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) - return ( model.transformMode !== undefined ? (<> - { - const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); - const scale = e?.target.worldScale; - - rot.setFromQuaternion(e?.target.worldQuaternion); - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.portalID, { - positionX: e?.target.worldPosition.x, - positionY: e?.target.worldPosition.y, - positionZ: e?.target.worldPosition.z, - rotationX: rot.x, - rotationY: rot.y, - rotationZ: rot.z, - scaleX: scale.x, - scaleY: scale.y, - scaleZ: scale.z - }); - - if(model.shouldFocus){ - // model.setFocusPosition([e?.target.worldPosition.x, e?.target.worldPosition.y, e?.target.worldPosition.z]); - // camera.position.set(model.focusPosition); + return (<> + + ); } function ThreeObject( props ) { let skyobject; let skyobjectId; + let spawnpoint; + let spawnpointID; + let modelobject; let modelID; let editorModelsToAdd = []; @@ -429,6 +484,10 @@ function ThreeObject( props ) { skyobject = innerBlock.attributes; skyobjectId = innerBlock.clientId; } + if(innerBlock.name === "three-object-viewer/spawn-point-block"){ + spawnpoint = innerBlock.attributes; + spawnpointID = innerBlock.clientId; + } if(innerBlock.name === "three-object-viewer/model-block"){ modelobject = innerBlock.attributes; modelID = innerBlock.clientId; @@ -522,6 +581,16 @@ function ThreeObject( props ) { return( <> {skyobject && } + {spawnpoint && + } { Object.values(editorModelsToAdd).map((model, index)=>{ if(model.modelobject.threeObjectUrl){ return( diff --git a/blocks/environment/editor.scss b/blocks/environment/editor.scss index 140d4ed..0864478 100644 --- a/blocks/environment/editor.scss +++ b/blocks/environment/editor.scss @@ -43,6 +43,7 @@ .wp-block-three-object-viewer-three-audio-block, .wp-block-three-object-viewer-three-portal-block, .wp-block-three-object-viewer-three-video-block, +.wp-block-three-object-viewer-spawn-point-block, .wp-block-three-object-viewer-three-html-block { display: flex; float: left; diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index 060fbb9..ead4f33 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -10,9 +10,11 @@ const htmlToAdd = document.querySelectorAll( '.three-object-three-app-three-html const portalsToAdd = document.querySelectorAll( '.three-object-three-app-three-portal-block' ); const sky = document.querySelectorAll( '.three-object-three-app-sky-block' ); const imagesToAdd = document.querySelectorAll( '.three-object-three-app-image-block' ); +const spawnToAdd = document.querySelectorAll( '.three-object-three-app-spawn-point-block' ); const videosToAdd = document.querySelectorAll( '.three-object-three-app-video-block' ); threeApp.forEach( ( threeApp ) => { if ( threeApp ) { + const spawnPoint = [spawnToAdd[0].querySelector( 'p.spawn-point-block-positionX' ).innerText, spawnToAdd[0].querySelector( 'p.spawn-point-block-positionY' ).innerText, spawnToAdd[0].querySelector( 'p.spawn-point-block-positionZ' ).innerText ] const threeUrl = threeApp.querySelector( 'p.three-object-block-url' ) ? threeApp.querySelector( 'p.three-object-block-url' ).innerText : ''; @@ -85,6 +87,7 @@ threeApp.forEach( ( threeApp ) => { portalsToAdd={ portalsToAdd } imagesToAdd={ imagesToAdd } videosToAdd={ videosToAdd } + spawnPoint={ spawnPoint } htmlToAdd={htmlToAdd} sky={ sky ? sky : '' } previewImage={threePreviewImage} diff --git a/blocks/model-block/block.json b/blocks/model-block/block.json index a288846..a70f858 100644 --- a/blocks/model-block/block.json +++ b/blocks/model-block/block.json @@ -60,6 +60,7 @@ } }, "category": "design", + "parent": [ "three-object-viewer/environment" ], "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/sky-block/block.json b/blocks/sky-block/block.json index 0b74ce1..3a0ed3e 100644 --- a/blocks/sky-block/block.json +++ b/blocks/sky-block/block.json @@ -9,6 +9,7 @@ } }, "category": "design", + "parent": [ "three-object-viewer/environment" ], "apiVersion": 2, "supports": { "html": false, diff --git a/blocks/spawn-point-block/Edit.js b/blocks/spawn-point-block/Edit.js new file mode 100644 index 0000000..b6eb73a --- /dev/null +++ b/blocks/spawn-point-block/Edit.js @@ -0,0 +1,137 @@ +import { __ } from '@wordpress/i18n'; +import React, { useState } from 'react'; +import { DropZone } from '@wordpress/components'; +import './editor.scss'; +import { + useBlockProps, + ColorPalette, + InspectorControls, + MediaUpload, +} from '@wordpress/block-editor'; +import { + Panel, + PanelBody, + PanelRow, + RangeControl, + ToggleControl, + SelectControl, + TextControl, +} from '@wordpress/components'; +import { more } from '@wordpress/icons'; + +export default function Edit( { attributes, setAttributes, isSelected } ) { + + const onChangePositionX = ( positionX ) => { + setAttributes( { positionX: positionX } ); + }; + const onChangePositionY = ( positionY ) => { + setAttributes( { positionY: positionY } ); + }; + const onChangePositionZ = ( positionZ ) => { + setAttributes( { positionZ: positionZ } ); + }; + const onChangeRotationX = ( rotationX ) => { + setAttributes( { rotationX: rotationX } ); + }; + const onChangeRotationY = ( rotationY ) => { + setAttributes( { rotationY: rotationY } ); + }; + const onChangeRotationZ = ( rotationZ ) => { + setAttributes( { rotationZ: rotationZ } ); + }; + + return ( +
+ + + + + + onChangePositionX( value ) + } + /> + + onChangePositionY( value ) + } + /> + + onChangePositionZ( value ) + } + /> + + + + { __( 'Rotation', 'three-object-viewer' ) } + + + + + onChangeRotationX( value ) + } + /> + + onChangeRotationY( value ) + } + /> + + onChangeRotationZ( value ) + } + /> + + + + + <> +
+
+ + + + + +

Spawn Point

+
+
+ +
+ ); +} diff --git a/blocks/spawn-point-block/Edit.test.js b/blocks/spawn-point-block/Edit.test.js new file mode 100644 index 0000000..ab10afe --- /dev/null +++ b/blocks/spawn-point-block/Edit.test.js @@ -0,0 +1,57 @@ + +//Import React +import React from 'react'; +//Import test renderer +import { render, fireEvent, cleanup } from '@testing-library/react'; +//Import component to test +import { Editor } from './Edit'; + + +describe("Editor componet", () => { + afterEach(cleanup); + it('matches snapshot when selected', () => { + const onChange = jest.fn(); + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it('matches snapshot when not selected', () => { + const onChange = jest.fn(); + const { container } = render(); + expect(container).toMatchSnapshot(); + }); + + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render(); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); + + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render(); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); \ No newline at end of file diff --git a/blocks/spawn-point-block/Save.js b/blocks/spawn-point-block/Save.js new file mode 100644 index 0000000..0af3e90 --- /dev/null +++ b/blocks/spawn-point-block/Save.js @@ -0,0 +1,31 @@ +import { __ } from '@wordpress/i18n'; +import { useBlockProps } from '@wordpress/block-editor'; + +export default function save( { attributes } ) { + return ( +
+ <> +
+

+ { attributes.positionX } +

+

+ { attributes.positionY } +

+

+ { attributes.positionZ } +

+

+ { attributes.rotationX } +

+

+ { attributes.rotationY } +

+

+ { attributes.rotationZ } +

+
+ +
+ ); +} diff --git a/blocks/spawn-point-block/block.json b/blocks/spawn-point-block/block.json new file mode 100644 index 0000000..26404a4 --- /dev/null +++ b/blocks/spawn-point-block/block.json @@ -0,0 +1,41 @@ +{ + "name": "three-object-viewer/spawn-point-block", + "title": "Spawn Point", + "description": "A spawn point for your users", + "attributes": { + "positionX": { + "type": "int", + "default":0 + }, + "positionY": { + "type": "int", + "default":0 + }, + "positionZ": { + "type": "int", + "default":0 + }, + "rotationX": { + "type": "int", + "default":0 + }, + "rotationY": { + "type": "int", + "default":0 + }, + "rotationZ": { + "type": "int", + "default":0 + } + }, + "category": "design", + "parent": [ "three-object-viewer/environment" ], + "apiVersion": 2, + "supports": { + "html": false, + "multiple": false + }, + "editorScript": "file:../../build/block-spawn-point-block.js", + "editorStyle": "file:../../build/block-spawn-point-block.css", + "style": "file:../../build/block-spawn-point-block.css" +} diff --git a/blocks/spawn-point-block/components/ImageEdit.js b/blocks/spawn-point-block/components/ImageEdit.js new file mode 100644 index 0000000..2688816 --- /dev/null +++ b/blocks/spawn-point-block/components/ImageEdit.js @@ -0,0 +1,69 @@ +import * as THREE from 'three'; +import React, { Suspense, useRef, useState, useEffect } from 'react'; +import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import { + OrthographicCamera, + PerspectiveCamera, + OrbitControls, + useAnimations, +} from '@react-three/drei'; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' +import { GLTFAudioEmitterExtension } from 'three-omi'; +import { useAspect } from '@react-three/drei' + + // Geometry +function Plane(props) { + const texture_1 = useLoader(THREE.TextureLoader, props.url); + + return ( + + + + + ); +} + +function ThreeObject( props ) { + const [ url, set ] = useState( props.src ); + useEffect( () => { + setTimeout( () => set( props.src ), 2000 ); + }, [] ); + + return Plane(props); +} + +export default function ImageEdit( props ) { + return ( + <> + + + + { props.src && ( + + + + ) } + + + + ); +} diff --git a/blocks/spawn-point-block/editor.scss b/blocks/spawn-point-block/editor.scss new file mode 100644 index 0000000..9fd1cb9 --- /dev/null +++ b/blocks/spawn-point-block/editor.scss @@ -0,0 +1,42 @@ + + .wp-block-three-object-block { + border: 1px dotted #f00; +} + .glb-preview-container { + padding: 100px; + text-align: center; + align-items: center; + align-content: center; + background-color:#f2f2f2; + } + + .glb-preview-container button{ + padding: 15px; + border-radius: 30px; +} + +.three-object-viewer-button { + color: black; + border: solid 1.5px black; +} + +.three-object-block-tip { + overflow-wrap: break-word; + background-color: black; + color: white; + padding: 10px; + font-weight: 500; + max-width: 160px; + font-size: 12px; + margin-top: 0px; + margin: 0 auto; + text-align: center; +} + +.three-object-block-url-input { + padding-bottom: 20px; +} + +.three-object-block-url-input input{ + height: 40px; +} diff --git a/blocks/spawn-point-block/index.js b/blocks/spawn-point-block/index.js new file mode 100644 index 0000000..22b14b6 --- /dev/null +++ b/blocks/spawn-point-block/index.js @@ -0,0 +1,197 @@ +import { registerBlockType } from '@wordpress/blocks'; +import Edit from './Edit'; +import Save from './Save'; +import { useBlockProps } from '@wordpress/block-editor'; + +const icon = ( + + + + + +); + +const blockConfig = require( './block.json' ); +registerBlockType( blockConfig.name, { + ...blockConfig, + icon: icon, + apiVersion: 2, + edit: Edit, + save: Save, + deprecated: [ + { + attributes: { + bg_color: { + type: 'string', + default: '#FFFFFF', + }, + zoom: { + type: 'integer', + default: 90, + }, + scale: { + type: 'integer', + default: 1, + }, + positionX: { + type: 'integer', + default: 0, + }, + positionY: { + type: 'integer', + default: 0, + }, + rotationY: { + type: 'integer', + default: 0, + }, + threeObjectUrl: { + type: 'string', + default: null, + }, + hasZoom: { + type: 'bool', + default: false, + }, + hasTip: { + type: 'bool', + default: true, + }, + deviceTarget: { + type: 'string', + default: '2d', + }, + }, + save( props ) { + return ( +
+ <> +
+

+ { props.attributes.deviceTarget } +

+

+ { props.attributes.threeObjectUrl } +

+

+ { props.attributes.scale } +

+

+ { props.attributes.bg_color } +

+

+ { props.attributes.zoom } +

+

+ { props.attributes.hasZoom ? 1 : 0 } +

+

+ { props.attributes.hasTip ? 1 : 0 } +

+

+ { props.attributes.positionY } +

+

+ { props.attributes.rotationY } +

+

+ { props.attributes.scale } +

+
+ +
+ ); + }, + }, + { + attributes: { + bg_color: { + type: 'string', + default: '#FFFFFF', + }, + zoom: { + type: 'integer', + default: 90, + }, + scale: { + type: 'integer', + default: 1, + }, + positionX: { + type: 'integer', + default: 0, + }, + positionY: { + type: 'integer', + default: 0, + }, + rotationY: { + type: 'integer', + default: 0, + }, + threeObjectUrl: { + type: 'string', + default: null, + }, + hasZoom: { + type: 'bool', + default: false, + }, + hasTip: { + type: 'bool', + default: true, + }, + deviceTarget: { + type: 'string', + default: '2d', + }, + animations: { + type: 'string', + default: '', + } + }, + save( props ) { + return ( +
+ <> +
+

+ { props.attributes.deviceTarget } +

+

+ { props.attributes.threeObjectUrl } +

+

{ props.attributes.scale }

+

+ { props.attributes.bg_color } +

+

{ props.attributes.zoom }

+

+ { props.attributes.hasZoom ? 1 : 0 } +

+

+ { props.attributes.hasTip ? 1 : 0 } +

+

+ { props.attributes.positionY } +

+

+ { props.attributes.rotationY } +

+

{ props.attributes.scale }

+

+ { props.attributes.animations } +

+
+ +
+ ); + }, + }, + ], +} ); diff --git a/blocks/spawn-point-block/init.php b/blocks/spawn-point-block/init.php new file mode 100644 index 0000000..4d16124 --- /dev/null +++ b/blocks/spawn-point-block/init.php @@ -0,0 +1,10 @@ + Date: Wed, 2 Nov 2022 02:31:14 -0500 Subject: [PATCH 37/48] adds default avatar and profile picture --- admin/three-object-viewer-settings/App.js | 4 ++-- .../environment/components/EnvironmentFront.js | 3 ++- blocks/environment/components/Player.js | 10 +++++++--- .../components/ThreeObjectFront.js | 2 +- inc/avatars/3ov_default_avatar.vrm | Bin 0 -> 47712 bytes inc/avatars/mummy.vrm | Bin 406580 -> 0 bytes inc/functions.php | 1 + 7 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 inc/avatars/3ov_default_avatar.vrm delete mode 100644 inc/avatars/mummy.vrm diff --git a/admin/three-object-viewer-settings/App.js b/admin/three-object-viewer-settings/App.js index 953795e..00a5795 100644 --- a/admin/three-object-viewer-settings/App.js +++ b/admin/three-object-viewer-settings/App.js @@ -8,7 +8,7 @@ import { useAnimations, } from '@react-three/drei'; import * as THREE from 'three'; -import defaultAikonaut from '../../inc/avatars/mummy.vrm'; +import defaultProfileVRM from '../../inc/avatars/3ov_default_avatar.vrm'; function SavedObject( props ) { const [ url, set ] = useState( props.url ); @@ -20,7 +20,7 @@ function SavedObject( props ) { useThree( ( { camera } ) => { camera.add( listener ); } ); - const fallbackURL = threeObjectPlugin + defaultAikonaut; + const fallbackURL = threeObjectPlugin + defaultProfileVRM; const playerURL = props.url ? props.url : fallbackURL; const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index d1936ee..d4e48d3 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -27,7 +27,8 @@ import { Perf } from 'r3f-perf'; import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' import TeleportTravel from './TeleportTravel'; import Player from './Player'; -import defaultVRM from '../../../inc/avatars/mummy.vrm'; +import defaultVRM from '../../../inc/avatars/3ov_default_avatar.vrm'; + import { useAspect } from '@react-three/drei'; import { Button } from '@wordpress/components'; diff --git a/blocks/environment/components/Player.js b/blocks/environment/components/Player.js index c2df2d0..047896f 100644 --- a/blocks/environment/components/Player.js +++ b/blocks/environment/components/Player.js @@ -1,4 +1,5 @@ -import { Raycaster, Vector3 } from 'three'; +import { Raycaster, Vector3, ImageUtils } from 'three'; +import { TextureLoader } from 'three/src/loaders/TextureLoader' import { useXR, Interactive } from '@react-three/xr'; import { useFrame, useLoader, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; @@ -6,7 +7,7 @@ import Controls from './Controls'; import { useCallback, useRef, useState, useEffect } from 'react'; import { RigidBody, MeshCollider, useRapier, usePhysics, useRigidBody, BallCollider, CapsuleCollider, RigidBodyApi } from '@react-three/rapier'; -import defaultVRM from '../../../inc/avatars/mummy.vrm'; +import defaultVRM from '../../../inc/avatars/3ov_default_avatar.vrm'; import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' export default function Player( props ) { @@ -33,6 +34,7 @@ export default function Player( props ) { // Participant VRM. const fallbackURL = threeObjectPlugin + defaultVRM; const playerURL = userData.vrm ? userData.vrm : fallbackURL; + console.log("profile image url", userData.profileImage); const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { loader.register( ( parser ) => { @@ -42,6 +44,8 @@ export default function Player( props ) { if(someSceneState?.userData?.gltfExtensions?.VRM){ const playerController = someSceneState.userData.vrm; + const loadedProfile = useLoader(TextureLoader, userData.profileImage) + // VRMUtils.rotateVRM0( playerController ); // console.log("vrm", playerController); useEffect(()=>{ @@ -88,7 +92,7 @@ export default function Player( props ) { something={rigidRef} spawnPoint={props.spawnPoint} /> - + ) diff --git a/blocks/three-object-block/components/ThreeObjectFront.js b/blocks/three-object-block/components/ThreeObjectFront.js index 166c259..f7868ae 100644 --- a/blocks/three-object-block/components/ThreeObjectFront.js +++ b/blocks/three-object-block/components/ThreeObjectFront.js @@ -19,7 +19,7 @@ import { } from '@react-three/xr'; import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' import TeleportTravel from './TeleportTravel'; -import defaultVRM from '../../../inc/avatars/mummy.vrm'; +import defaultVRM from '../../../inc/avatars/3ov_default_avatar.vrm'; function SavedObject( props ) { const [ url, set ] = useState( props.url ); diff --git a/inc/avatars/3ov_default_avatar.vrm b/inc/avatars/3ov_default_avatar.vrm new file mode 100644 index 0000000000000000000000000000000000000000..081346e9c6f707f6bb75ff00e94f42d88ea517f9 GIT binary patch literal 47712 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 adA|R|@@zl#u|NOQpChU7Oa5o?Oa2Ry%Ecc5 literal 0 HcmV?d00001 diff --git a/inc/avatars/mummy.vrm b/inc/avatars/mummy.vrm deleted file mode 100644 index 621ceb009d0dedb9d11a267dfa4c0cc0f17e0289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406580 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 z

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 z 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%0AcWg zH2g;GQ};3s6ysT{aT+Xa*v&&_)>y9A8=-W&#WCQ|nB`>$<9&cXKZ^?~_@40f7F|OOZ8{%rLg8ZrDnwbJI5_|UO9*hSqkl`0q zb0bLdepe*eUD4A=1{QZ1iX|mK?VJiYuC&d&I*fFkwsn(SmDUcLd-2{IxtqOxOIyb! z{#1JG{n0JuOLDB$FHKFCD~#b;#buRPzag}BGdPkLF3eE#Lo=2gq_z5OtWn)pHG6gG zIaB?w&5HA1WpL!>4jMU?#PU1$EBUf<_IWUwcc8lRsGDt^voDrPecZWF8#^1FsWRM% zc1N$|zf;9s-s*H!-5KnxY|0Du@B8Kp`1zA5KFFxM+jx3jI)G>{V|1@-l#d0e3-vkv z#BpHa3lsdwMwfqT--!o_ijKy_?>a{TsW7fo0Jt0icAp;K27^-ei9bd5Mid-GK9*M< zFbi(dc7O0EMbruWGY)-(&hRDtaRro$reP^c^e^D!3Qm`6bd=B62$fszy*{b71%wOP zeRI{;XuH9C$5hAog5b1YUGFMxxQOY*f-T`Q`v#0V-*GyuLHc_Qj!brPCq?bT1=*%rW0-Z668CYM69 z^NQIit>7m^l^upnH!d={MKCL!5-oy<_Sgp4GTnZ3y#g%HUe*;~dj&Uv4H z*ZW@Y)jzJ&m7eeSJkMv`_x-savZ$r{IRIT+eyOcJ*#b0PNMX9f(-)g3P8K+e^<(rC zYuJlUKPP^R>hNBxi)BlgH7@^jm{R%dXlBE`mhj=P30X+{(GAhI9Ifi$ r|cSfh` z=Mh_5&bHZFffv)3H+sss-&4G;Sc}XJ!^@>@PlKU;+&vO9QRhQBEINZ}lUV7LzTx3v zEwv9nz6&Gd$Gs|oOsEvHY}+0hoX_1u1|)GcfGp(M*AaI`bKax@a|K&G#ep@w zu5dB`=6gh5Dl0s!FQIRR#Jtht&(sHQ(a9g%qb@Y9B8B5T+1i{H*a!BIVBwknfoVTh zKUEzMIdaIjkhHmG2(RCy{w&VaS79}ESLGtP8zPQ9@2`_+20P5)S=lOAtt$@UPH+#X&lw<;5j{ z53PisUdcIQZI;3(8`UG4*v-_|AA#v{Mg1QzC{1 z@gTQ1cXz+xcN}$Be+l9;=Av?N{NnS)tzEyi>!z}~&bl_)(lg}qCpfFEz9P3f6e(WG zM5qQ{9G`sR{(3U=DUL;dP@w`7kQ^$)285!Alaxm(Y?x4-#mMF1ZqRS^fjA~BL4&Z^ z^`BQI7a?cgoE3kCnNnn*VRRkwM3`?WG9mDAkJ3vKqs9e&9oRbysv-6eeTY1#Fat5D zU-?E-C>WQl${`4wAz9&9@{SF_4rBax1Dleoc(8;H_(IblzLi(R`Xk99Z1fzJsi0 zr>lbY`^zM5j4i)RKC@%46eaWHWZwlSqP2q6e^Kki!(^gKkF1La-IfQ__=MD3_~~yiq*>@>_06nD#*~-gK(m?n%?jj;B$# zooMmnoa5D1yF2ec#b2_3qY>Y?658bPXK=p(1)HRQZE-bVcfQaJPpWC7x~%s>Z~ke}$b_Hj@tF&C zQYiv(t48f3f8`dv>?4-kKJ8|>i_3S|b_rj#4cIA>5EG;C4ZK(8`mvD`Nm_+-kOrYe zTC;iYWYbPc(dX7VV3iV9U4B^&VBV&0FRX^0UzMCy9G$%qpTQp4kzE@k-LOnhtmc+X zzmts?SfK4O7;L@X^b7iE3Xp3*v<7PD7K&P)6nhoZN5E2X)7K~g@xfl{ zbSL6Ew|E-1Ha$#1Z6a>~=6$TYQLA;$-bN(=(W0|%!Zl{Q=x>DgPjtYaJH@qH&3g0? zq>z;S!I*A92WWey2GALj_yS?&@PzC<0#>_`d)&+r;*Gn+NJlg~|9{jy`^yjX~=|$9o5=RP8PVpiLq)AWL%wv zX|CFvo14#6?@w&l6%+5iPdj89-~9XAP85X?VMJTay}1>>K3G3O)}kLoV?Qu^>F{|* zh8;Ps9uv&`IEZnD?15>Iuji>peX8Ea=Wtt+do1AnS`+xJ14x$tu~082n6R3 zKfrrFlROB3i3a`Y z#}FV#xBwNoUinfhUC?FLe?2=?oPoFNwmtLmV0^b7goDJ8fGwqJf&fCVsBqX)5^~9%nyVELdBpv&OcWdfJ73$oAfAcI1|2~Ms z`l+L|hcGjJ&XV5wZYa{IIQNr^U`-*84a-51k>SRx5-igrV>6`5byKGfhQR3c*}EF7 zFPR%!$9jEK`~$Zvuc*!14fi%5Hb#%z2aEK!^6Y4RQ(rFY;xF{l`trIxiS&qyvfgpl zd&=Ar5aw#2mdh<2av)zcA=c;m41WPPS=6X^^$ZFy5ptjE{kCqnc$~qqEr!?jTn>o? zVqra~2>@YC<$2V%D%Vfs&bbKc@ZOcf%YXaagAK-Ds#ZdH;U)DkWni@yk|R-gQf5Jt zqf}(uejClbR4~&~VQ>tHuGL%fXW>qBlo!@85WIJV`l@!- zb8TcMab$VL>;9ok*S7ccl7K~?W3Tk(P`Z%i{Os)2xI}z=h5;SG0vHpd$1l?h{#FHG zN({2?Z6CT6rLxA`f`ha9$iM2hS5xrZYLrWbJ~QFM*+2dbU~`RXkCau{jwM0%5i-V8 zFE=q={bWYladutXAFIxm-D4{izVWOUsn-O6TJ*J@sQ=2+(o$QJ0&!X12}RSUmy|R) zEQe_E^luvwfG%^2$3Z+pZz7=&B7QAA2;)tuOo`aN#0#k!or|8WQJlkyTH&$n+~3Xd ztL+n-^r%otB(-*tVev(QJL>4qK9H!qF}UDfG+L?GvPH^{n0<7s?r;Cv8@S}@fqs-S z@{>iQefY9268Uj^?J~qcy=vVb)HfEv<#fDQrF}H#c5{JwrZ{iEKWU}Bchj9sR*Y3K zz@&pSiVSG{5M2k`^>uYQAu}%Zty>2NmGa-K?nF_x(<#AW2e^=&=`Wt(tRMM}i9+#D z$U^JW3J8qJ>lp96eu@&?xKOQmTy38BP}hE|;_hKqD37Ait)^>+k2kKo>21`2HJ@X- za#O*m%IG;C{{tn&Pj<7N_xCXrg&!?@wtCvNVy+A))m&CFXRxdN2-1(z=KzM+YY0Le zfq5Kbh%YKb%wrtqs}Fm(WcKfOm}i7dLFq{d`mtS;V;(P;!gF4-Nbh0qm(F#dL$c+- zNxgv&J&)l4dY}E-6X1v<3L!fi8{FBd6EhFrt2lHnje}WX1N2ErcmI8XSv@Yn2L zYAbc!#ChHo9<%6E*E+Po&sYULb%F>AkM*6}mxcfjSRio=5K5CO{X^@|E} z7;-$YabJt0&;hLn)J<+dL9_iqkR$^1=p{Y?fu>aXf#SrHdaJmt42=QYeLqW^6Z3L> z3F7-yhDbb2oM*SQbS?~(Pa&P=PF00h^IMG%$s@yCmYJ6A%sg4N z!Fqg&?iw#1#6&gsM3yDWwRa~oI*{K=T%SmiaFpAS#-+q65@C<*T=@bo+rC(k6e$u`3K#7E!f zZXMGiXDz{CBc4^3!$L6DrI`8Hhyn^)Xa`Id(QNXIxyXmW?F-~LUm%cSgGRJneOaMg zl}lEIL4)mC=%&$F3htnZTcDB8?!6bMd81}dWSc^dYBazFP^-s@yl4G~c5OEeRxM}y zIgfI?V7ddCYtcO*db|c5Xl`LDnjQIC`%^OGkwiR*4fdV2VORH%3O?Gc#cwx9{Kv{| zkJ{{7T6M@_g$ZByR#t--`hNVl{|6_D;0Q+;(bYQ=O0K?F(gN4_u}HRt%x{L=0|mCb zhlhdRlY+>ELKSGyYoOzJeMH_BgmVWH5|T?vst-k#N5vu;+Gwl}4oFY)zvqdZWueVv zuI!DuRzkK=*86h79}%APHlkk1G{=ONrHL%({@(7FU->|X(mO$qz=Bvq~v1-Tvj(!#~3%9T<=fL^8I3hyVpPi!VQ` zF(=jcC$|yNT^70#>5to|pBWh*0sfvrk@S(L{MNl>$|Os)TjS#=_wqP7alZjrSqlKA z`*xy@>jwu1bFXoI^uyBh`hX}1)UEiC99c(S;aPDE#5gk%1JxRFR>M}W&$Qr=RDMwP z5@27A-a#A1Wi@ec8FdQoXr5Knk7XZ?aC5wA9ic8ZTLqFtJvhpR*4KB=dx{8Xif()q zyB(i;XYa0F$jz{HCa!1OO!~6!?>B#?<_Kcasi1p-n#cJn7Ztk}#xs!wjQ^TwJ0E^5 zW6mA$qprYfo-m+L_~T(BxvzGSd1gY&GZd?CiJ_{3jD8Yz9ay@$xXAu<6?&+H=aU%z zQ!ftmQaX?;#7C~+uI=5-3N<62lOZeawdE<2A-gp0MnHG8mehYMn_O4lMYJMXX*=6v z3!ncGKOCWWntOgs>0;FqI`DjG07C?l4*%8`U~a${vH%2;^6P}zY(4}Tw-9(h0wkO} zV!YbyBnV~qllR`kQ6CW;-VXo6l`#X@$q(*FCPo#jBof&QWqhD0?evnepJ#&1R@LL6 zt|ij-kuy(SaZMh^kn^Rqm%VhXNh9b6w(){>6CD%$(bgh>WD>KQb0+`x6e1_<4Pvd40}gm)fP_$AMO&t%HqY2pO6 zHXlo#E2!~6C3k0AcKiJJ?BbdDwu@1>n?$$Gmwr1+4stBc_AYT1@Oz>FpJ>LJGLQ|V zknK}X!83U+r+;Z}z5W8B89E~Wp4L*r-r_c~VilCWw!>C8bs8YluYVK&drN5A?x2_U ztgOE*@(szXSEhWry;6L_6Q4${~#0FK~@NIZIX%8<`Zho^WjDU8T{ z%Oy_yq+{z^FJKP_x7SOxw`LEurl}J}Ab*nQlutbs+xjL0r5XS|tVm?V->Nu`=~d5* zCeFTD73){{?hF;2TG}{@d2eqey-N^ANT+cC22d|uUYmseFgP>~7pmdIVt=`E{=UcN zup2Nb2{i_=Xale10f}r~d6^9Dd1%oR_{|)@w>3~GY%GB5J2}O`JB-5~HpF#du?y7N z<9;$L$&c==C;RnPO)S~f>}6;nvY3W5;F|WMb|NO({7ni*{woiv!ZLRo@sHS}BaS`; zML4`MR$@aTM`n=p^s_(oj4gY>Ev_66n(4Cs$8swit*_H0liLJ`{&;XO|GhCFsqv=E z)}HWVJD0LzlLrY<1W*W@n6nE+t?p;l=n$RE5_TOlgKZTJG-LB)ez**pKQg#*SXKp~ zHmKu%)oV>LbQQNFBLV6I<$~Y!7owM01Y9*9RB!fXKD+A@F*$1v_L1IMD#?6X9i`}q zT9E2&^JEDPrQrYgnD)xPjPPx2(q$6iIYsQ?{cDS4Oj^RL>nwMv70i8&L#%%Vid=h9 z_&ipWwkAR^9-nq5mAlx4Q6t&(F!f70lh7bVxq}(7zb7XZc_OiQ42f_VD=4_HVM+y{u%QX7_#}Z!kDb&x!Vp6v%n@#{mu7+L z8vRr(fDIW!+_o$1B`}x1f1)?Go24sVG32xXQ1hI1>o1QedePNSTJ;9gzfQiVZ6d{i zRXeorJQheF(w!p$xF7^{3Mlmo@#MVS_Ye<`HBAVpnF;=Fq0uKQlee6=a-i`_O7d#|&gfN6*aKZ$-HE$9>V1kHVT|T{*bJ@~W$Dfek zf}dxpKQv${7?O)4JyK*m<})t8+H#Y)lG7{>d};FX>TU2t*2I1PT9?vV9X^T!W(^bk zMA~t4Ri~6|`Pf!j$5JO;+j29_aO#pqQsgVgr_xZ^$saD7w~oH(IW6j)b3N%nx}i; zE3*H(>2(ngvbr2(nK{2F3L7N!mZ3+EXH5Fhefz#qS{`2JzY%J^wY_O9zIHtNC?WK7 z#HmH7Dv#r`kVEOjb}pZ;3BAe}sh@mImr#x_ywTKwPUVLo*qYL^BhBV*Sj3!PHK(a} zX)CrxUad5weT2wU%k-fqNlcod)46js{dz5U|^*h2Tb3dHy^D z5VHx8|2mX63-DnV067S#zxKffCjqVh?6{NtBqAGw3+lu`kSXw?AnSljsh5yPA*Tw` zX?u?VM%N<7iYK-b+-jwI%OT()v3=&tb)u7(=bki~yC>@hhWBSlQ5ddwh1Uy~4o%h7 z$I2gmY*20}n&t2J3t`hly?--tE;ju<+^%Z*PfxsfB*A@l+s2YLm^#iaa3^<#?c#Xr zynVjLh37)LCIa;G;GkCWisY&I0fDLmsQn23<*wg8_LI1+evW!Y&4 zlD1fhX0$AU)93@w43`OD`)3F(bzMDRcN04Q_V?7A47RE>Lr=y0r+HW_y$Z|evB{D8 z^JXl{r=hI$o)MP0Y|n*mv7oOwZ=7BjQ*1&gd7OjBh{X1C(V6LKR1=`210Xi=Qe70& zN~_1B#_gJS{h_hS;K(rE%HHa@_!YsK$up4yMN(ldS-Ti$pz=is6)c)O=|;Dda&K?PwBM63Y(@W6SvACyQb2=&TOizN|18=JU}RTN$?v;sU3p{M z+nM{~Da=>6ki$50o9`X@aboe)Z|9;PtL|OM;mx02r@{5bNfeHNBP<725va}N)EN3Q zezFYiam3w&0MkmlK9Y-BE-Nd`_0+=MQrq7<2UR|Z2~h)fqPPc*o58@;(>k~59`Z=( zsL-70-*OvBt@>>vr2`qKuND8ys9u(+S9G0lpkF0xcIS2}Vy|3RTh=CHoF#4@W9mdx zxMRbl_gju-6-i}Op zKg`OQaP{kmSaNF)%EVqbObRta^~K#U+)#qvW-bC?H;@+@5@sLX@GE%Leqm00$11xS zOGwgId2$q$J!d_vV;Wz4CR@Ond0=z@ddnNh;VE^SDksf+2S)*SX}t>5Eg|rm0VWGnqV+6HzrJ#=(w|A)hQ{pjcfA5_Tc~%ptq>0Cziw)H_NIULrMhr*dh^okq+b<}RU*9XE+*Zh7dfh`RTq?*q zwLLO#&w&b+)*VMP@!p>PS8jm8MR0%i{tSFO!b>Q3$M3ocC~$M|nQzQQ5Rg@_!4h?* z%FSs1g*33xdY~Izmgo(V8+i%cdP_kHDe#HnUP_xBdp!PY&xa{DGU#H)CcX zVO$v1Kiv!5gGmJf@GaFq0dnA89zl~Zk5w38SZzUi(D;`gCVb4BUOit`b_8J54JhZu zcx^nafKFA@g@4fJ{VxF%$&1v$#EJ;V;>J;KOA+`hH6y07Z%3SR;*t)I5QWaY;u}Mk z4qE1Pk<*KvIYf9DTRoU!-iz+4$SrZJY59fM&47>Jq{zZ+1f$ul7E7VK9f z^zoaMI7#bX)eD(X<`JoWGG@QCk9N+p@B< zO5T%|O5Qx`%y5w)r_KGR&D!IRy(luh6H!YB?3hW9(k09p53mQsgIOT~ap8~mkolzg zrl~_rdK6@yEOg9x1S}mdX_z-!XwlPBGi6bwZdNxkDwJoE%p5#;BU0j(}W7J;0%) zoNVNTJe#6YYh4{jk%WU)<)Nnil2+uQ&I1@dY(F^` zyJ687p!WeK5X;ChCwRfnB8$JY*pq+an3>^3*xRl)tF8qt+*Rs-bbGm|Vs1bqG~JBp zwQ9!kpeds;YR8`uFa>7qxjF#YE9b=fmYZ-D?0}Ml1Nv9?UpMO9%xd2GJ3bpgl+ghC zH-==$JA49i@%6gwo;Gpf^V4NK;y}){)G%XSXylr{7{E$fei`rvVYe{Bd-_wI(WkYv z!1+Ttdu;R~50A->;zwb5?>)no+{4NB^xyssmx0#w4W<5hv9UmLL~Rf_14=3#bglChfFqqhJJBkJmn+-z+c z?54hED`0+`YisZL@ZlW1&uxFM3nDT-Sa~Sy{2qkiZyhP8#EMmQD#3X`y_H3pN1-)Q zt;8(NRPylY=U$&Af5r{AE6w?C<)3L{x>s77_1fs6<02fZd@!$`!-^3>V!}y}@;6f@ zSDC=u!T3uspndO-V**%NHl=Woh26N6H3Hh7tN>#aumMA-K}UdoVBQ5f0?ILcW4MIxYNE{3=CJMGu~frISc$(70G63bG9QES&>{H z&o;?m&m~7&A6R`P0`RUgYU_Fh`XU-ckcN8(0)uflmn)2#zj*=BiP~uGHbZ06)+Y0nU!(HaU+zx4OTO6 zJ2N)wB3_-79+KF1*mAC#B8`b9Gy=~J4nJ)SzQ_ALe0w|w#mBvt?Viiq{eZWuY^uHY zz6#l?U`#4ztsk=h`H8Zu=KS|0SI>b4))8f=OMFW;^IhGYCB``BBI_g&4kDs>maIRJWMqTsEF%dRGrm&4Gfd`2 zhdjp&9T_Ylm|6vCK&`}Y5gu0;fegbIVabyeQOIT1Uz_^}=!WcR-ntW5beLWP8Yqck zLC(d9!1V4IYtqonOZLdyo&l!|v?25z<8V-_WdK~IjR(;slt{8Os`mDI_l#2NSQt{k zds)Q-8ukDFIiU5J5BuAb+b-@dU2YPOZ*h$bLctciB8V;vFk1|#1#j6MNJ5Q2aBu1U z)>C%Fg0LeJ>tTMP$a=1szp+rwJ1(vBWgnK2#h%BhO-Y5E%T|Q2x|cANI!72XN;5Ud zERbpDiPc{jH!}3vDhGP3GwNXu4*%-A32H;n&Up@Z8=6(i-_%|ApBG}7un!oN;DL4W z&_Bi;V1bTKUvFK&&2OAn9d6bo?FMBAQYRK$5O&NK*kmjeqa}s?e${3ox&# zS$EvRM1D7D8(YwvbDJ`6OepJo{fl6N6^Ei5A~5{G%@T)~5lG3i7pp&dE|MzcivBi` zgl0H2epP12vRIIF?wK6AXMU6G(<-TR`0<5m)KwqUmPUG%9YOj;*ONl!>-_xuH30Bi zOx>d8Sai<4#O6!hq&Q2@wLN2~cImuFnLKff!wEM=)2$7J9{J1V-cBFc#s(wuPsMmS z8UTqCzhV&w0lg(8YNLMPI}U7`5nXACBDo_%#CYLAa4hE7Y*E)i08ujk8$siMEZ)pN z-%tFP@5xPnabYZS!fp`4aPc+&7Q-Hp4n{R{3JpA88R6!|7S}p8x!=QI@T#O`zzlv9 z6L2K7AJM9{jPsB&-{%NS_^CuBVw%6P$L53o5kGig!H{SV?4frZe7iGL`Pq7|u4ZpZ zRitFIakG_lr-hOC;DFhjd~7_Yp7261pzT;aH>J%%g*^=JECG$)AY+y-`ua?~*+rP< zaa{g}!OTe&Oc(kDW3huRF2K%-?KVDykRf?+)GxF``Mf_2FVd3P&(^Txc&Q?+RMtpw zcY+vaB2B&DUz79cU4Zda_AQOTx*gaH#!_8V(Ei){QRQU6svZ()TePoQzJXT~+b)&>L?$;56*MoY7(?B* zPZR@*cb;8;J9#&m#H!r2^bRFfe+_OLbn?BoPEZ7gs8)dLja2+5_+*r ziA!nzfa>`pxVrS_JDQHqFOb5Of>^M#!x_)8RVRI=3rb?e;YgM4_5zx~boRpvc1$dH zGNxViyEYKlo6~@P=16AW=LGm4eCndAask1l%1Q_4X#h7Aw^Kd?WT&T5tYe`uB_xvmIa!A; zO9!V&-gO@{*Krx&lM$Fb%R`4i65ZF&w%M*7?~a`$dKE;TPf6I2hiV*IZmEpm_J9A2 zA%f&UcGS->0cHdYU_Q`4$5*!ui%UbVg$57D zg6H|D#o=Rb&~bGXRXxoQ{w+|z)YOr$O2HIJ!3YRUhM>ba*`<&Z-|mQ-Csc(+A+O=V zSMdl)GLB9y*#`MeB_+}7iq+=DrhIYiG&U+TgX7vX#N}ppd(Ksfq|JV^j3eU6(hR1! zz_Sc&fdJ^8N$T<736;u^j{um4kV&Sv43jrFxv+44bNx0qd7np!8bHjD!p2Sxfy-VH~{nlQs6)Z zB!P7x3HmE_A=D@P_*)6Pn!kO2RF0+TzuW4(cpSsjGPxNqW{&VQ6qfu2ubr~yS$Pok zu7vPS*_}G*kotF7^tr=b#|Cbdqjr+TV*-};JK1l_kD|fg7J$INg%eVxyCKJkd&X6PND0C8o5@vg}soy&cD;2(Z#go8oRkUBV52izjm7tFB)jorCIk7fhYZ z`P|BiAcrVG6=4hI;w+A&xLl|}gU_F6UQ$1!BC7V)Dd)X0p5UQU3_Bqgk>xd6K^*d1_ zdWsW#OKY>laXqYH!X=bRq*# zFE!#P&WMQ%(bq3w+KLKuAA=LdP9k!)I}fZDZHAglDxYPYPbG%Vmp%TXsqD;(QOG=J zg3fJ#H3+#9uUW!<3f%CoNWYx=j}~P3_}-}>aj;KM>t;-asK&@);xSbku;Xb+p&jUD zdOPAu5ms!l$ro3H5WhA1i`VOU{BhQekBPxfzy^`WsX1N;B#%r5cm|nL+pUiFubZ=&N&{u6Iqo0U|M>mo@iP*5VS@y52*Kq{gWT5xa_EgmQ!G#Lu! z*JKDAD1)-T)0G&H{~PB$KmVnPRf@e?`cfG>mP!KQjGTDVQ3P*U3r&eeByF%H}}FI2Lp1bm!)@ksGXH(x4nAxW8UDiWU_L41s)$jeEa-eYPUQqU1sd zi32%O>|g#JM=?nzXxq~i@hDy7pfvT&`!OxE(942QLm(+ay@#N&K4C@x=F1%=CG4DZ zH|avcAQ&$!c@=josMlpM-0YyhDhM9S6sYCYjQpspS4L`;M3d;N+vxL@s5Tz!1#icqpMc9(rtbattlf73-ijA~8!w5DdwT0A>8YWiC-P z(XW+GcbF8^3V3<*C_s_Ze`Xkn6N4OX;QzPKOQ}%7;mLQd#dT{UblDzuIT|n*e>|vY z%29&h4Y6fj>T?6lh3eMUx$KWhIM!2iH)OlOR>EJDhF!stKc#@B8DYzxmz%mgQHxbC zIuEyqv>sZza@;Z5LQD*gOumU$X|71j+}k+KF9}R^8+Kq#Qeti~Tl$uIGgPG=ahK-^ z10mPRl;%6PZ9vN+aE!V#JetwrueIws(#iL>x+506us@Ofm|rw0ddpwqY@){EV2)~Nj%#%U8P59WCL)iw>OINOqvAz1SWjKnEStV<{}+7<>o+F^S2$C zRBeB2r2J<(5hN#s2v<*(=jvLjG#t{6W&Y2jt71=WQqr0rT%4JfHAXz98}^d@OVuYvM%VKd^V^#l zdz)B=A^WX4Q83s|ESTpnc44@kt#}M9!iBW=k*et1KW=sd&yG3|zhY&u5vwA9SYba& zu_GR0W_i^?^CiH_P6XTL&2!S}A+L6hP_2i5mgPezQTh3-qHMRppOU@x?1hrj$E?p) z1u4&ZTkl#N-!^%3&EenboL$T^%G2NU`e|8ClPIkDL#iMRXXe3j+>~J&N!jDHNS1?kX86JRN&?eP;MUi0 z{K#dZjT!kNQQ_W$&&I8UDFgQ!M}BD}<7}Up7OPJMN1tfCvG+s$NrzdfJz;!aeT|j| z{%_~+X<@UCg!scYUnF1$@>u6WJtwxOc*4A6l*$T!Ua;N9oA{i{=qbC$ec@BGv(`dv zdFX0VmrtXJ3Z?BxSGoU}+&k8PIfg4lMrXWTrh8-ltv(MkRLWa#-nCNnM^~&e7pGkC z^Rv0fBAdUVjtU@osy0fv(OAW=Op5ctU~q4)IhtLghOJcjeE|Br|I9Yw))To}nUS;d z=;!isgID0`_WfKKZf>76`GpoEpmI8xppX#g=`G}lHuo(>dgV?NUqO41U$6nXHHfZU z4M`Q09n9A8q4OP_=;;FowI!G;{_jT8aQVl*SO`H!wO?^}_vr$E&XC*}mMTP$i7Cvlb=`)he*Y8te`n(b%kB^USCZ=(FG${kv7O=UvxFlp{ zcORCw^;aRz_U8CrIUZe_JWl~%-!I#Q*K64i(tkQVtWo(X{q3W;-=8$&#KPi9w=ZcY zMY*A9lpd3*ky*p|g&L59_+fPbTOt0o_?Yzkgi7S3cY`hb>4Vb47pIJ5>x^~8GD=N7 z<;!>3eR^m;YT6ZXhk4KfLq-&A+-N??5`U3t;+CY}+_uHp0Dqu0YD>&HeO+gqgDn&TAJ)6Xh@j8r}HHj^a1 zu&Om>iC-C$*k(ygX&X2L6be(?`;WvL$&2XgOXzgrXGcg@gtY|kNP*OWFHPmXf$PQP z9USo2^R0mo@gU(|^g4Gey5vPqZKoerF7Zo=c%ijpR05VCRRUjb^;}bHblS>sQvbrfC-IEa>hg6%*7#Kx?m^sHFOtuUtjTdHI`M z>BE$fMB&0wazh$h04QiAQ;7TxYTYulU?gNb7K)zY-aEVtTuRQsO#3!=+-&BO*>yjd z9jL%RXvg+rvz%(ai%bic6~z(bZ94s`=0wV@x!EiDBYVtpU*F)$JCZOqlz1@|>)_-* z#m^j^fX2rmv(LmYKk^UJxb51|^|}8Lfqf=NHjcjEA_^&&y6ZcmvDXx(_r5pnk2sqH zCnGd_XJJit#RJ@%i_JVF3Y3HQ?VpB%Ee0uUvxs&dyWS-1py?_zt0x|VLy!BCEiEi~ zD+tt1V`;YhH!?+r5gndVkdrcA-(1be zJld?Vg3L|sw;aw9Y9My=?Gr5ZWIL|4*;P8<*D(x15ov*|40I_2IF8^(1=y$G_SMs% zXAT#8dEmLms1uakVtyqjb|qVBQQ^J^gdT>hZJaC}eNXUEaJIwK&FE^rqZ$o>^pj2-#^G`pA5T58YfM{qPF5 z2s~8&+^1+AE9n2@;eRt~X$Yz*9vc_yL7^JOi5kj}ca_!$#g`=qJ|uXQo`LtS`eE@f z>Gm{s-s|Kd`lLUDz~P|wx122yTy!FEy&GFv`1i=tUqQ$V6C9r+t9RO*M#s7h_j1<# z&JUJ!x%Dy*2aa3rbMTf8(Kz6N&)$nuK);fX89K)AQ@kF7yZJpSA|qG%Q2{%zhS1b) zf(vM6;vqV9i>r3yXWLB^xHObmS$n^B@>F}a3AqKj{nYquybOoj$1G>)Can}-2B?UA z`nE`VEl6eh==PT7(Hm#;bg|Y2YS5423Z#b0!^0fz=U-uiarg%BZ7N+|T_33===6>6 zy-D_O^n8VQ#BDi!v+*wkRk6LZciN<8ZPq1+X5Xp|sbpxoOFn-8je7tio^=C+^k|Ce z+cdTyO5)mTU&>LV z(Jq4!Li9KqyCu6~gy}>|;MAV4secjyyCiN=NOlanFPCA*%;>=TS%122TwN2ZOo92m-F z>9IzqxR^0szD8ScDcm1bq_}4DFlBvQpz__$_2ep9BR1%4lBVl+8Bu*>Qxk9U+AX@a zeQHKxPE{nkhFeI;eDk~DuMVM!vThRP*Sh{W#x&EgT6gorV;-pe%Oif(BE5tzu01%| zhtsGabZf)#je{?w&NCf{@G>R&C~SUd(}Y?C0M{-y}NJl)Mjge|UYGxn_ut-IIqdJ!(r6vqY| zXP5lSU>K*co0T;$lDYGK@W%8LIP$aLp=UqYGZfm*J}OK~xHne9eo6_F;M{-r{fX!3 zZEU}sqIa}NwvcreY{5WZvBo~GDN)HB-N8LZq zqMXu)46b0z*av4&3r}qRg0tBb;6WFFa5XNAafF6X^sTFS*5D8Fbg4()Pucj4k9sLq zzN_^kZ1l~3{&2V{^8+qC@z=p#HBs(&2d4}fv)UgYc`?rSQZi&Ye4;ZEe8>4O>PmIM z?h9k4`5F9_&~~aC_EHu4xu2w^S_)crQ**u54}thZ9w8vHh04UQ)FYUk*ogN9r4^PX zLL7nn0~-_?wmpip;r`(43c38aMUrxs;_RwmtFVF<9m>OackcCDU$e(UkHU*$5Q(P-B^pyo0kAN&ChUjwrvUJp6WIR;$Y=pk!&wVQLXFScoorhw5 zXvvz$JpRDv4~)4}8PP3Iy)Mt>5f#R1XA<@Oi6NcmKGwt7TW3~uDbc#O!k85@3#F~q zKRb6#-D)z%LH_uLSoCMC;-4X6;Y&Jx4eI?r67iv}@;q6}c*rEuK6l2xL)Y)?$4rnL zeMj!{%*6rTDAjH(OWx`5F3H~N&xvD6QmH26x6MKx>L1(fuPIgj%4~(g7F}WIBfxgZ zmi{5&;S#dGKfy?hcm}%a_X5&6Xkn^%a!bls*|)~)*8{IUv8rC0nfrTQnigi=KlTMv zEwkUX?Mr)(#E1+C(s2$hj)yhT;dK;?0y|OePT?K%y7DCp)2#2Rn_pOj*8SswHd`wE zBM-1sh?Icsp~ZDL$xDq&I>U>d));T3|jzw>nAnOJXOhBy13srsqr7i8XynSWWRyExhET;&jz6wPH7w58EyH+gflt z+5u=V((C?=L+h7EV-P>0D>P-@pR2tcOl?bLQ)N4)MSrDff&CurQp@Stw>3DhBZ1r- zWFK<@aww)@N!ac63_kA75Z#~fFSE=cZ#@#H@ss)awEkqK6 zbTGdSth;rG-W;j|c#9Q4seBih9Oi|_e3z7AN?`*=p1Iw%)E)92b=$w^QePk+eX8e?)g!X<<{RQ68sTh9S+aeZ3 z3U9SPL|ft<7`p>|>X|1G6-lpPNZr83ob@H((EKDUk`k(f2U}2K0hwj8 z1VL+%9H?;bo^jdB_CszED4Nw~c(8N(YFQQ|T(`yft?Czl&|uNsvZ_y1w6xzlA-b?u zVDq^AOrpOj#PeCG2NUq+{K&ascn6+DD; z{0ovWE7z^bDsjox0_1F*$`q9#EzIwdOC$g96S8)q*^H5OFuRH|*0Y%mLqPaS41FfR z{S&Yi?f6rBTucNk-L`JZ$de}XL&8eq#1wgNT|$nfyt5DFgrVU!#1@Ctv6K`Tc`Tq} zY2%H}UvK&Z%C(Tcp!{UX(!gwqW@yLSJ$NYiDmW1P@BKa+a@f&up(d){5!x^~{5deN zuHg%ta^N2QO4H?3yVb2#p!J!eSvi*$NYtJdxl=4{6HoIg<Lhi_VJ5}Fd`>sW2z^j$?L}8FUN`U%!+17No2ZPlSioXajs=qVt488`39*ysSU^Kow8U6F?u?!d_ z`{VWE-DjMKbzjWu_|M)0qVv`o=PoBBTi-9AAA-C+x?*xS9ADk9Wy-zj&L0armOp6Y zz*FgA=cNeS+x-(P2xU#ehR6{Fv%~MH+P*{=<|wR^B#-moRSKl351_Ti(l84o8>XN~zCyI0kTZSj>6bI#VN*h&7+ z0lq`Nzx4;M3v58b01{5XpM>58p68coazLoMfWN3M^hP9VeB2OtXBlp0mT6J_QW0&E zLlAjr@4f|`?G7)CQF=_B-3V@PlukoY^M2Hu5`x*6qF(tm;v1^L#w9;>XHQtb7ZW6h zUzr=NG#ici=okx{*7-j>M2tr)ZTsC0Khg@2z>h44r)fbYGRP2W-!wH)5QP{d!0D4g z$`dWh_jy0r4pvs+`s)HGC7KngNdouDt<;tDrda1mH#yD_mp^dO#8~s9XME=?pz}}M zv28%?EnjE3DOm5ifOZ@?o-f)C$OMk5ZrhUrIEt0&F(wXhXonU%s$WRBE(5xtV@a3g zX!@+&%@O%9)#Vu;B%=6uN|klylTGoT_PDsXAGCYg#nQJso>WT?X286vClNgZ0|W72 z!iEf4#xJqXH|17u+qhP(y%PXik@{F9$%IN6|FMgso z!<`1bGkN-3KS%R^Z7E9`w7eGgUeN7)i3xOb!MXk|M-d81fa9A9)QWd6K9%si`mbHd zu^rcaX!xgpOy3=nU7k^!z)2;2K3$YlvKK z5ipWANLY4~Y>|FBT9qw+unx8v3AW!YBne2}102*^Bd*d7wwWBO6=^hg*pKhYz50N`^)OI`|2dPuJY*)+``tcVjvX+MNzmeVSj67 zx3BATbx1!RnaHYQ(ZNgziTDe8Ub_UAaEEyk8ldN>=Io$Q=gtGRV8khUz;^f@Kr zys`J!P1xt;L4`FEev%E+zcb6}{@t$7lq z(7zj6qg9{3rlMo>@r|x-|MS(k3y`ukma4tBwL2C5)V4c^ZQHdycB1!vRAIGbd4tTt z|3lPQM@991U*8#qu0ceG6cmwAq&r1HkdzWB5l0c}5b2>&y1Nw+q?Imd2Bo{xL6B}i zcppA~f9qY#e{{L#-uuLfefHVs!?mm^f!OMgL;_r_Uf@6)BV9a<3+MG9~;{^_?{Q` z&2bKMk-zx2*>LEn4%i`yu*JhScl?r;?T>M}gTH34J|wWFZsxruE^2QLrHWuIxVRJZ z6A4xy>4xPqGcQhS6ByXzy+|ElQxd1!r)_jt&L+if(4--L;8&>>fiM^qwF*Ce-n2nI6LH<_)Dsb=j>}?8Y#UKHkd^B>h}Ey-_G^(Rq(;m15C_8(ClW z_?A1APCAzi)p-|hjv`A8x=O&FD1Ux;R~;u>@?ldfdrMEd|HQme+dt#z9D%U`_=(jt zsYZ`|HCYR~ms^QG%S?o7Qf&A|L!EfF%o-{FZ2(m9UbdG zm*;9-1KeRtVSx>fiJ9UJK6l4=mDN)RPOEXT#%IJs0??3{UiIJmEqG=s3{m}PMPnx! z`^2|p)qMW2sYb6xbM@hJF@^jP(EBw%QfMImevFgrB%BC%+Jjcw(Iy`jf-P9 zWobj8DWZc zTJOGoujbP;zdZe6mh8WegnSmxwW@Say$Y_fe!p-i6QJ{HKf>_58&u|qh&4h*M{K=5 z>*QjsjB-(V6~S00Gctf5V{25Ne?=pCZwIRPa#V{7TY({(%5g%Y3fyocRH<- zQF^?Y(Xoom;dGy!pde)%>Kpmi92n(!iWb|O zakamMEbLR1KP|0ah!!f?Cp_CVR*6E`F^=vaOK;2T#kdr2HG=S7Jqkg2Rr;34Ok0Jh zV{uSH0XM|E6SR7ArZ#w)l38*rT0Q3Dy_|TcPW|%zch-c-Rp(38J>`#YNfQ8**xP=P zM&E-hG09AB$GnLh^qrKsZ69M0(`-FV5q1EWkF}8dOAuEMr1S1q1CS^jUv5h;Ag%>p zIQhp6(btDFkeP=4YTrl|OYK?k;Je{h1;Qkik8O~M`*j|p`vuL{o?nN~lhtyuYz|f% zxjdU~ZigG3>EEPRbxj8!${XwY{{bnj=CW0uFSg!L!7>~O<|`;kb;!n{CEjT+yD_6i zh`8hl))Z0y z$N}TOOrjK18Gq!!Q46}G(sv@Z!jbOUf<(@!clc0R*WKpf&8 z&mRV4K~i3nKK6rV{MNQG&)x^mlfzDE!n;u{gQ-t@(strDh93uB_E5X-Kf5J6xwJFN z2t9&i;B%9}82mW%x9CWfaGu#XIb#3^1`RHrYdyhMCqss*VqQ$C^A54w%H@`_^##xT zJ_NHmxn#|#O5LTJ161F7Be10JAXV(uWRWl)cV80$hGPapk4DM2TTg8q_3sIPX4?4< z6%6Mmu(o~ufXRQw_*ydB22>q^A-62Z9;`3<~P5?zC5NZGeuW(?ArCz>#IeRhVhj}&Vy_Igku(6^}kFklf z-%kyRGQZ@Qw)E~b?7 z+rAcXlfX(R)EPzLMu{I)n-*Eb#Ym%jL1}Mu_ReadgaawY#_jAF*O-cZFrc6_y0vfp7C(<$VxL^#ZM9M>nY^>Q*GBrwQqBrHR8>=L8l{%g)5g*(goR~=dLp!a@pM!goMzGb_8UzvKtp%pK)01|KgLS0cA85{oVkgb%^ zT!+;8>2BkMzvbR*WwPdHr3vsO7085SPV30kxemSuXKawm;4w;D35tEIWs#Dlm3{ht z^<)3pRm7GD%$j9mH|%NF*&?U@~IlS#||Z`fwXXze0R z(<@Ulb9czjHpFONFNg&!EZH1TP&q=C9Vgqrd2?{vCGGsS*hoyRUX%!i&VC@LEHWwc zSsZaQdl3rHQVV?xS*b^NZOKVhvkMHzu%4Rw8W4{tge%n>wLY6bxlXXZE|r`0c!ZrG9Mx z3sZzCaP-@ki*^w}z>jinZCZ!`(j|izQd}eWD0klD;(xU-^x!2lYyt8u&BRykuOMnOtSlX{QhZ|zg@)xV)6H_QHFCis! z%vsJhqQw-ou|)fR5#^HRwH6Fs*Gbn8_KCVR2uMDJ&x;GrIoL6AX*?IOyJLb0yW~7# z{r*N$Uzv%nXH|Bpbp60p*by-VxbyL~4-^)!0U?4ORBbw&QfAlgRm*5KFx|kdG|p*J zgHow_I2FwFdt5v!p%kUfBxIEPD`Fx@RIL*!8)Lef8iA%0P7bw~I_C*cM967~={%!- z?_rXLKUHPPFCeRzM#q2Q@LsgdFWdIYY5s~|dt9gs{(Raz=>?~kbkq742KsA%Df@Zp z<2sVjc8mz@C>UaILe;^w9iLxb`H+G4?U~o>7_78n@m?b|*8w}_z?=hv@I|khaSmwF zp0leCQew+KukgllmM-w0_te8MuKGcgZOipxDN0c&b=n6C(1Hf58PtE%NuEVTidJQX zO9Vc9v%Bn?+_Pj2C|MywvUhu@`%cSl9n(h>^wO2?t}-(4(tevKUPl8D??`DqWJygC zCSeU?9jC{WrUoym?%jj3t+!{>2Ab76>%vU?srkW7nz@CBzs`xlDQI*LQI^4hZncMi zMtb;e?Wj{JDF+z}cTcV>PGGU+PrNL%a}CWDQB#!2!}(1WJx>gGIn9}}TSTu-i5OYn z`IzI;!GlW82CGgy)H4lvuT{Q5hAO^J(|CLbHLh|-S(@`jDO;06Cue)W$+ zTN*%eRTm5n#@cphUj;tOtr+CJUrxwLK~=sn@<0OZ`tkg}>G?gR>MPl08}WtIcGDbB3#2#5HHKeF5ZGY&IDG;~4tRKT*3^+6njLvfUh!g9 zGg=iPuxBXQSkt?bFC>1LUP63ZGj`u@!>y%zv*;!J5;vp4z=4A8PSjQxQhaZbj3zHj zflMp#QPqQbo*{3?sy*fNhhsW_qK%jBfwJ?)DHwWobv%b`W`52K@EfuxqPw2oX-_qK zM#QW6_N0fq?|!0wT&x=HTOtLFnf6Azy_Ml2YLmtX<-;R+McXMM;AT)qs~uT8%7^7> z^iJdHPGE(Yx+^uc;T1D&ni#FiAAw-O5&p?!E~u14p5c? zk?_mGgdSgtehEf{1or-;4uIsvUf5`7!C2p!iq?J*!bw72 z^x+|}tHHjcG$r2>)J};c?k|&^cSD}mCx;hBujrX2dd}|U0m_ywc=PXT9!HJ?9 zn~F4LQ!0q_HgER{r!+lJ=CtYt7gk~re^nB`R8ymIO$o+8!A~OTvmx&zYCIt5fvcVU zyD=&v7B`cHU>-C73N(}W!6HilYrd9rmb^4_ehwX>!9}zQ&I)q%xKaf& zhpTRBhYcXbN9YiFt9>dqBjf!cmNA+8zJlb~wVtOAmfs9t9eIcyIug_Mg{Er}c7{tX zp4&an4ZB~!6ORMff&u_*gBk)wrH;7?mMuQWxTTVt96riG^eo=O|9rhl_s9!Yin&~JK#bdb#`J)%hDQpeq|WnTDmquUSW&-DNSWGK+Q zqi4VuBuw3>`JCF#$HaP}d(P&twBFh>GQ$V8~zyyCX|# zxb(r4LvLGqha)FY9=#5-At7icND+8AxNUP~wB}sXC*1?@wIdJdvU6@|28c@3yzUP& z`VW-@tu5Pq_GIs{TCyKDED<|pt8S@IIg=vE3LWy zGvIjM;IR^MgX|UELi57OZH68zuxo z*j0h-rJ$f7+;yWG=h^c7e9`rU%1<6VSI=yeWh)bsMl_{tYP~{L&AeNA|NbmWF#o&* z%$Eb15@4SfibsW+f4fLKz^KbWvfCXRLpq+0;GxTj^mwbTMu zFYz^w%p)BbPst?;y;||FEj1`mnw@>PakBXHS8lqeKi@%q=JHCkbS#TCl9!w{ zFIg|6XULO%5Pu@!TL!6NL?(}!23N;ekr98uYXzhqAJ7Z-*Z~LVBU+;0AcBPgW0mGT zYC6inLQi5$*tR>WJW|b~8DMWkF*uQWV><%6Xli~Vrf7I;6vGm90L0r& zjEw5RIZ8WmuJQ1Z#=l1N43)*94AqtV6#$B&yioXjB;VW>jO~fYk4W0?fm~~s_iLYz z*4Ag0{|w#kUNiotn+fvDGC2pN;(MHnj6Al{;BA^-NV7v#B}92W!huxVg(ztI^w|n1 z5crEgdS^NU1fBb~iP~!g8l2i@)xsXx7V*+F139Bd5yqR{G*Xe{2 z#{k+sd_=jxHAw|U79KIB=}f*iZ68&ROK9#k)x)&0jf|HxgbXl04wz5At_3&H44KvQ zJSSoa+AdQiI{MWseezqqpdy+ObSNV1wtyZ5>4($W;CE%3KW}I7lg0RxgT7ogr3f}9 zAVMoekROGJ>)$`?2%9oC;?D0_rIVe35PZfvl8Q)#jNfbZ8L6;lny8C6G6rv?2qagE z8J>g{nP+{d!H_TeginCRb`~N~iUW0YfF8a($9X-gKYeVCKvs5_b_ zxDDCuK&y69evvP5@ac0Wp7Z2QEkw`5p>YA(1CBn;n^Y`x_`e6^otrXEqWKyeh!)07 zLsUV!Q(f(Kes*W`^HpUQkTdwKB!L9AVZ~*JTE5#fy40yTQ1?_UXTAL;%Un4U&vc8p0Gsq7P*SoBYev5sX#6omk*XtL^Z?c1*WkB; zOGBHgGuQ;_{-Q(H-x7nuvY+YWwj|&z|5*Ze;UR1X0-wr45dk{B?|?C|yMb}px6SBZF+8C{ zWfcNz*~&@kGy~_Ngi%vM$!T!*$#AM265f|8n;br(&raEtPC@o^3YTRD0w~B<*v{Ud zdPhiU{r5_&7s}?E!oogz`=YCuzIWSGa6o(kGbTw=^*XCx4QS zYk8h(eKifaJ+`viAn~C>@`D3wko@B6szns;I22TSz0}mXE-r(Hb8m^5Dv5?;N8*iuV!ML<)DBS5l;+~~6Y2Zj0NR^S+cAGO&P!-@$R{CW6 zgV3CX$lziZ@i@%Wj<gSpzwA{xe~iZ-O$-#tF>9~e>+!4XWK+^2 zvKcZ9>F4j%-dz1j%qv8~+dg;FAnf?<#-b0lX~0i@n}|gnTsG!kB2SeGAg}}rEI>BO z%fXy(bg5Ub4{GE^z_w zl@LO!P*P!Xn3?r~<7Tk}Nn6zhoNk zIID{gf#k@1Pp2Yb7Yl)s0vx8)Of+xXu$m<2Sx4Z?ZO{`4lT7l*aL-J=#%$i<&Mu3T zMGNu@UFsys!nxd6!yEkIm!mzsncqiv99|iU<<-pP3HwBQcUnE3zgImJZ~5BmRYvy=sh=@Q>D+k(Ad0RgFH;(ktR>w}#atb_MwM+v8fC3#iyU>MsiJ z^0?!6!*=|>I(+t!Ayz+kBL^MC+YTxy?<LzuT3! z?Qvck5SK}!M`QBnlvwL+vm8}yC3LkEH>uOjb={ky!DiC!YuF*?aXd%k(akK2c>dM2 z;Lx2`k0>@xu0vH#Is%o3H8RqvIeDZX)BlbL>cYCeO*@>(T;^!eS*{GHs3^dxjb(;a zLR+0gEL`U~N*h&?nPIfD$y64@;{E&S+@IK4DO1=>PubVCaQYNJPkW)KNlm4nnI~sR zvTo@Z6X~?$4>us}R3iRcdr=f1T+M^q$mFcsyZgq_KCrc|hn@56-e_JOerpMA+@MMD z*f=RicX3j+JA%f!A8q_SoModR>-*bGiJp6`#SYA-sApfFyqZ4k<`o(m6IYwkeG@Lo zS&j{Y^5n0nG*J6-ugpAr{+}IF=(<3_R0j`nse)oW`hp;4la?^&c|%aEduAkwGs`V_ z{piqmz#qBwGEQAR4_kF-qb1!e^-)n&sTD(~DH)gZenr4L_KvO&Z6j*A_R~Kt#wb~> zM8}RqW|KE5?{2Avkme&I(e_>IYbTzOj#{HjmakH5ymwtXmkDAvoFN2Q zA5=hlS>6&qA1a3KQfHN|N zJp0w*2J?LL*H_~C-RbwoIhv-|b%+TIE;9_*h?8Wv^DL}Xi(Z$dL65c_2o1*4BINqx zAba+8b1e#;yY~%->f?5#bC}^}K6hqm(M}*DxG+sYt&*2sC0!Y`#qJNg*d()c2?{+M z@(5c+F$T>?oGAZqqXIz)m4FNXQ)sVPf<TDu;d{-jp_yJ@1>k}A9kJPLuwgNNa*ndS;>W22H{>uzxtjDmu{##ij z0(4aXz+n^RS-i8aA4d~V#Gc8fx=~q^NsjK7(`Rx?Gb-4)p~I` zBHn3}Y<$?@MkV*?mz7h}G@2-QqC63?`Q6a~#f*AOokrq(vsU!54Z+o4lr0)Avq6W% zhxCAhPjr<^3bC5@&YmW@@ZdIz_2^I7z@u@)%3eZ&q8NXL~sxsc0JGfe*gMNi;Ru} z25^N>UnB$w4Q(Uy#B~oR&7XLV^VJz0kui%GOZ7`+70KO0lSQWYmM!L&P{H}Wn951( z@&D(*vjN|%c&VEm>qS%3pTXsWA=$65+s!9-bVMs8vyYIYJGK z%Moi@)egHdd{j?|^Xy~oGS}Q*NDN@3*t(YYeW)OFQvg`!zj-C$TF5X@dq@@Q87ry7 z|Gwz_+1;jL3;%J;oKtcO-*;3$a`@z&R8Ro`*7O%iwIo8uIxz?2@&{=T59X|^)L+v+ z^t1MwcIY8Qw#wo0N!~>Zny-D8{m-X8`*PveS=WWt zHaGMn1#5<;mq^CJYJ6FwiWWGN+FI1_owlu}@MQNlBH{}!f0C9Y@L}OtD1SH;SqLDU z4`Bwi7AAa=*_NHlMSsOVHs-4h^JVR9UXZI>T6J$)Gt1R{JPp*sqtAp>B^(&SpDa1OeXnkz7{9y8NZ!%5?bcs3W*i!oD@BX4T za02{lP*Ps6XRjp1EF_jGP40eja361&;=UWpQfk$SG3;4hzA>`4pIt*A4-x}8q*R$9 zPddQ3?+hi{7Z9Vdjdkf3)xT>$l{T^YVJ@GaWmeGLG?L<;LN!gt-Oo3Cuu?SN(iQEDw3ZIP19UwCcf5bOAoSsli%^4kTXORRcmtTgp~N^^gYg^h zv31#Z3Au|9gO;lWbNj)!Y5$2uUh{<-%O^Z~L-%gnr@7nr-1Y9XeXLvcyN3c^;X&Dj z{%$2_V{(8JuKfqdGaLS*?f=S0iT5;w=K5FFnRVeAeIt4*AOhkj4(gmmg07%<vRi>_ zI|WpPfE{`<`l(xE(_!$C%!~}2PEcPRt5o?#+c^3w5aNj9V^`v@p9u*SZTch&n;10TO|wxXf8MM9|7xG+4GKa*mhe zLZHn_u~P%Cad&t3HA>mowbCy=f8@>b_eP07!i!=bF!#!Q8R*sQ;`$jgclfRAoiNVo z&W=-;#aFI6=2kcL7&*)MaZBNvSx>Dfw()oUqs#cb_YY5VUcCoN3Gjfw2527q9~S^b zfwt*4)7^JO%5R+zSu@EgcIgKr^!DL?O8fKB}oo4s*_w4R;U0 zsc0|WB@@zn`_>c2x7RhqtMSwLN8?Q;AHaMy43QG<#ADI={d7kqvBD-*({ornKGt*C z)kqqeJq%8S3kh|Kbc}Z}gvsT>_0Bxpjr0_T4~v zCZce|HH4qK<$Cx%3Suv2berzMmAPs;m3lbJEQEn@`M6VOGmU2lzEYRex>?i9LPUZ; zK5~mwHSDV?Lbra9&I}-`ZTnXlxUR<%nT@_f=@sbMHHa??IGdUPEL%w=`E;a485K|k z8mZD=r&47QON=%Llw9Oi{WR)Q`$G?1(i#cg3SMHl1Ayvp&u*N2uwKE`{i`4I(@JdX zWV_o}8{F{QPJtH%Agef{RRcsDOPzA81mbpS>k(C^vWMS`b-CG;qPns1uQ+4}>maAP zge9ki2VQ!;-;kqEDDWfX;W>l9Skm+>CbGUih|2l3A-SLA;o`P6B^(&ELesCq(PVlq zehIu&_RmkbX@6QJd%ffgbNS&*E@9%t@Q%-n!l9YVTM^LAFT&NAG;!TCHQXCZS5RDj zPrr}G3H)?G1xHN<@TFyAwJ=^qx&?-@co|rzkDW2YI;2r_zyx=!5t=U|Rl&XFpy!Xb zB_l@Q8FH9K!HidoC4_!6JZR>fA~uMmbC?AEByTxj&@Un1nlK zXmjGCgc`o1S^zIvu7fB}vqRL@$;ls}u*%ml?-;)13*7NTZqX4v*1IljrkjAK_+|LK zeTr3&?_hVH4OG&|^UGc8>C`WSWewa=WTVez0Dxd7%Gw_g41? zY>e3bRxmM*A^|9{+x20!nH-rwjT6v}wi zS2$kUOvBNnPFNAxTtRprFt!hj7s#i+{wZ!%-1~Ua^s{~NN{=_U;gqVu-j%$JDmq6r zsqx)m|6$&{Rd1#8$>?hiKb%V7P8tSO8?2|D!aikJC5?QVOw0MSBl3WTxmn=nXkl$p zo!Rj;U!()$%e%nBF*2!3A3u*gRS$e80`z{R5~_U*@>aLvs^7CKWvL>~qsTtzp8*RF zNo0FRcllK(*+%eY|N82n8Od#Cxq}^wlu;dQ*1BNvQazMqdenNp^or2wMDO;f(dhGZ z@e`_64b*HmQ}>03Kz?=E>AE?afF3W7ThG?w&}j#%USQ06XwRj=#ITS~evx<6Uxcm| zPi}%@`Ku&)9D(^08zx`O5obF-p3?WLoi8W>2*1;xBsNMQMwia!Be`0py8>mPhNbz{P>_$@#tzj*9>Y^O>yEzH!LV;yaExO}op z*1E9$zUK{3v5maH942PJVCIj@aD}W)&98!ICyD zJwEFy76_*jddK$$37S57Y?{Q0TMgTtjvc>j6Xe|$CK=nhV!mVK|9Vr`C$D)gZT*Eb zGdM>+=A8fr1Nl}TkAn%m(VO34`p1M=#i^qQ20C#0r!s?;J-iuQzyUH_U0w{Y&c)!Z zi>m$DO5z$f5V0QLA1-v(9Jju-vj}&hUL6K>&l|RjGjMy9_p8TI9K~ZlbF$CSqg~$4 z_;OzYHlBg!HFIuERqwu;J)G^+IR>z?QmQ*lJRBB{c45*(JXiM)n{YNvGI4(Vda9zD zBcS=6qXIbk`xYH=142Xm`^bvLVbhcUclv zRJ<_miv8qpL%-AY=6t6jju|sj(iMKj4B}HdG9N{*Q0pr`!b*fXIMW>pesUAmAnDB7 zh>H**;G%e)xp|`Qta&h|cux6oaqOogcHzwFB(6})1ur3h%Cb==DJLTx>0_2-=UWq1 zQce>8oG)|j*F&o;64to@Z}Dn;Y=vIo>#{T!l}`?o{nHBI5{Q1YuigX2FZOQ!wMNws zrEIh#^jjvF!l1)xqqR{~uz0ktry9mR`7C$~Zn0DS>qSpR1@p-r^8D5MY zrsRIAoBw}nL3HzJhzAYl`3d7)!jfKxzTq1$@r$|S$GjAO#dmA@gF;OH3s#nF+3WQF zqzM5;WQCYfr}C>&;$?4`DEbiA3DLPku`gL8(02r&&O^;uLgi_<{;$Gp?S#{E;J*4% zUx4yry}QOQ%T*qo1-8)u#$7=w-YOf#Ed!oiLBM+mQ&APwwGc{Kn}_jqK5ZV8f~hR& z`6GvjY4ehwm#CS`4GS-9Wg;&C!)Mx#%V)DXfk83n7KSm63pF~%L*n!JK+S(wLQ+b`C1nc&kBcNzDhK~W3RKZ8d5Ft+lNwi~xj|rBnbeMTttN!ojc-tEyW6l*r zsvUlo{iYv}q1BGH)o^kjHeA|~1~^-(npm)yKN5A_c=QP?T>Rr}j{EK_e^lulL}dp{ zNSUQs0+4x^DB|ewmz;xs)#m;X`!!PQs2a49QE-v4ko8>TQmwmn{)Iaaj;{t#b*x%jjX}#3vgIVMf>Q zlK<}_0IepVpk~=7A#cUH+~}pi=4>;eH61B3EzLfUr=tKPVb$P&A`j8QYCiTJ4ErMm zg`gNZd`E!nejSfrAtZr;L&>6mX9nE&@l~5Z3pV@1A|Q-%pO&7*Q_pE3nT_GHQRJ~R z2`k4Oxt_~Tkv~BQE885Z1(q~&BM=FVC3?$}vCegLrlU70v}`cqrZDtL%^RtA9xE4t zF4ET?P_UeVE?kF#zL^jdQd%wuPn;eOQ|3tK%&E67fX5HwJtXL(EA2FRdit->!AI{tYcjE78M!liHLUx$ac?~Vd-iv9wm14j zmyYy5K)dbFbuw1o9TJXRB2+U&(|vU8VvW1FVT{2(*?U&RlvakCHB9VRURAgSTjO_w zj4;#h+p`hAflt!GN}xh6`Y(V^e_O?J1b75R_itUBdO~ata>y#aGI0ro9KEVfBxe>5 z?GTK$X$y~T+=!q25>ms8*byFFE^}g^ocR6l_uYTR3JyRAWSEGP!+Obx-r5v(Te;Hb z)T(oRC}+DK)LT$n8=nR#vchlQ58u<0NBvU^t^y47d1hY-?F_}`i~csli#7f z`-GU7b0fx>QPuSqt=j(NF@@aSBDPJeh*&r!)0Me=DhTyb6w|%_iea2XL!?+X6@0eN zq&Bk}&$NKY|9$z>+qvfqiF^+zUr9_@my)Z?p!#uiP<^T_@4iAaF;)@7n2 z#NsH7X(-+#tTgY1yxVz_bNQ13F3AsRi*A+6ZsKT$w-;5_JV%JWNeVy)bsPC3W2UcP zzFX3}ohAlC20o5n$z7Es&_Bs6Rek0hXl5U#=OA`XyXXu(+vbEWr_}aG1|8!wHvKAr zXhR{V=k`nV660Y-tggp`d?Z8qx*qYL95$=$(}(|OE^$Ci6PYh$ z9(-|O0eJS0ivKj_B^${8?u-W;7RCt@E@DDAev+7B={&9s~4;syDWXT zCp%m0@(!m=(|}qwVqQ>P=I@@E*>8pE#dhI8GI2dE82g%!p-A68XCfG;nI(h%)0YRo ze1)_hU|xfp=1!6rZ1tAIwig=bZQ>)peo@db?|D9n9E$C@{p-IH;LB=5Y2j40&Ea*~ z$Q_%jpfaHMYmfuV=tjc%;i$U`P!`#Ro36G1#j2`qd;YCY&rN(6isQrr>jvn7bRJm?fuEv|wS>q`Q|sV0Y`JKAO5%UOx-kH4JXU|J z7oESMdmz1fL!>44O+l1dNpeHJKoR}l=V$?MW z;X6?LMA%zDtU;3kk+(%{en`Vh_Pi5Gvh$@21E|;n3I_aSEwrnQX0_3ZSg%cu&8j4M ztLwSUMA4D}#t?SFhb}Y2No>5IRKvn<-)TzNfmIDz-;=_=V1 z=$3#yCO9nwX1@zwZ`geGe01jK@7iV&_Q^;aw;EE3Q5iRX%9M>^v<3y~R(`48?#k>K zl~`Nbya-4yW}MFj{@*W8_<>7N8ARUm@?^m2PpI&6IF*vNh6u zbVleu@r<@wDus_IhVvu`051A3FGEE%A%&VOjXd@u^BJ2bzJ7?R58rFp9@3aa#pdPQ zntz&<r1mB&2s^OnK}?}{A7JNIWPKAavZZ{lX+qlD+AHa1%D>j`DY z8wkYk6E;u{w-_!6Lc+FfM6$tfDs&RwymH>QZhjfd7*;#qm?H!-Of95Rfs$}m;7VGMIzJRc!VmaBPGl_YQn7`~} zX#>i7p^xjE7!!=YrB#pUKSz3^7kigY!&ECQBU-eWUZzx#*|-fFL{;9XV+ zH%y!ppn}Fgd4b_>AAS+)dOj*RrS)x}KhoA$7Sz&n-BV6e{{uwt;Xrwk#$yCr&fJg& zy@E%lubFKg##HRxcz_d0xW9=pCWE05Wrv0PX-p~`>#W^+H+~>BbaHzHGTJ{Q{J)<{ z=-u^U8B0tnxuX*EdI!!DhJSWTEmsRVNrRuNyQg*iXW|`!iMP2msmAp6=ib=vzEP3?86xjug88g$dTp;Kxz+!Kqlcw(Z+U(TlVe(8z*>1T`7Ag-K> ztd083)9~;zK=5@Od#z!C;ElZhb!I3bf{j?RS3VB?;6hukW~?0r6dEJ~yff?Z1BBrb zv=ARcTpgCC#iDfS-@%w(JUOG*Q7Wnq5Tutig_{R%I z-eIrL_Mlpx^YeLzi9ZU`#*O4<@gG00+^5Gyf%=`GYT^nrH`h73>udfJe{3`ZOW7^% z5E1gCjxegG70B1^p>ZxhNhiT&{WsDBRmR1^yFcF(rTfe3Dkt$@S$4f;e<_esWB^}| zH%*lDBKS|K+i)tDsI9AW53e&0QKD(wbrMoMQ3)%ZAr<&lSE*eUlj_mZ?PwDWPQUg#Yyg5NELu4C9 zm4z}aMTYqnNWuF2S$@rJ?w=!A zF1g}&7ORJnlmH>!DK07+14WCPX}vu}r%=axr)B*(zV-wY-FVKj<~v0=QwU_T?{!cC zzTA@ZOKX~3A3k+NyuFjmEgD;jyi?k!JH~+<>6BeQJPz zj5T#PQ26L|lf$(&g)%1pV8_kVHf67U0m@}}iNFy=B0|D7c5LAc8XS<^?|(qXf8Y0E z+_IuP%$Z`D(`wa^c!-ZVrf}22#QRCT-0*{19`?kOnr>q-=NL5G@Pn5C{gv!Mye;Ou zfkV`(lMsOTx6 zT7RpDk#PzU2@=1`b11ANdD-x!FyS-H>WqkLI^G$h{c@sL91zl+vJBP2GIc*6u9v_b z;1!WW$v+4}N~Nwtf!u!qvaI+^#O2CGl@J+fr3PzvAnhb3RH|kV`Xl=48as$?C;~6& zTO!?Mdda`L75VSm!1&y(TBxcGD{aPIqdhFS&Q-CG9Nm`@_A1(!+B6q|HUdMqmTz&l1seK<3OMEj8+mokBpb{ePUE`#v((tz+z0 zxMR-BD!2?x*n_J)leJ`DU+&}k@{){>E2t=My?QK?5x7hQ40`)B@g)E(El%v;%b3@d zf5%l9@{>JSQ&udqLJ?S;0ns9S3x)bGU5M&uHAX!4c%ZgZ5*BEKxSF1l;<);%OWi>G^!^QpwT+pNL>_%dFY;X| zfsElcGD+bWhQ-De(|CEQ=4xHHAwRyNH)K+qx+*PfaOavGJ4R9|YQdO#A_wc%`B*oV z@BUfC{*|ZCjxhN~fr4-lxU7);Gip60hCD4`bj)i0DOU@mtZ=ScN1R_FWJ@~I7Ey_w zrDvgomefr@B&4RL@y{M6=BJ47O;>L`*~SfTU8rL|FCTwi)ez=3`pDem=ShPz7%-kJ zzcumtRv>;50Ze+@5Q&<+X1Kv1997ukQN2$9nT2#IK;u@8p#aFut!lP-H!`Y5K^bwi z6x2nQB;S}|@k(}!gx=ydYPUF;UuxlDHY5(O%&klA?fE@Nu+(I1*xdP7`w$1MS;tBH zx>(%c!>*#9yVkIZzu#}PV5oGq4;F-@6aF;Bc*%12s(t4*BYTzf6ZF}3s;jHl^OALk zIlX6&Ij`RVfA#(GBHG#k?=k_kj@u2TsPX(tp0b5EPEPov9MX`d?_F0VJ&WZXb~pec`uD2a9f5ZwySW^p_|-<&O7W=<(>T zRtEx;yJ01_y6t;+^C!x;k7L@Bx&c8A6bmX?VdDBH4KKxo5LiYI0fu|8AZ)-6*|CGX@M`4a(`gJu@J3^ILX>WUAsU&GuN&U7|kSzrE% z`&QXij(jZmonx6TDDxk{+fNr#Dx>9a{$x4c>4PIr9#E{^LvfJdO-5eZkkU{w`p95+ zNy46M(c4=yBTg=(Xj}FX@B2s#xe=)w7Uknh0PE<+?N;NSz^f@}&L@`n+sA$+i`*<2 z=Blr&n_4+|7{x}~qQU&c(uo;8&j`JFF*rBFXJ`l1HGt_!!;LdastGrdK$bfjw5g`44Irc=Ci zuDxep;tD{X+DN113VIy-XExd3~Ut zkLkwb0lh5lhQ`Rd9{*M+_YTQkpt)TK946U}`iks!N}+ z8Vs6Sv5i&M67{J&kH;VPl}F|lyM5A?%GpfWcm0uma!mx1F+Sy%Zy=aD$!mGVAhC^j z`|D%8ea6-oY+FUd8ZT!ugP!0dePML-WmKcIJClt~>9h{Bpm;I89Xn!BpD4e_n`J_l z_2P{AQ6DwPP%Bm$hTqoX+)Bf7N)aq+z|$f$=;vqOQ591Me?J^_yc~PomY#NUpbUK- zAGf;71?;7zbh?{IxT}-k#H>4mELFuwL0Mb zHI<*+boVavt8`OK#w0xZ%Y5pIdtaZ|7wkf;Jx>n+1>sNp(AGi(56%13~+};$9J?GhzXV{@b5xha@g(lE-YOi{7tvb{G^a^Vi=mV|Qs=c&P$nSA#6_o^WhiCvds$qi0cjsmzIr9FL0oy#+d^RW2he+%`@ z_c715!+zN1AfVAjQhGXGQ6 z3%pDXAjgM&BmbA7sC?RMHCy@8Cv)s*d9F}S$bD7*!nJc$rnAuWp8MmBL(bvE=l9Xo54}$mRx*jwUHm-XmSueILy>@47@`v zU)fU|Symbb5&DIUme{9*y7aKR5APcyLm_bvkY@vh10TNCjn)rJOO|W}dn<4hx;HOV z=3k-kxr2Wy@uk@qCUWxQ2Pb#^(Izuyi`?}tZw>qKqx$PTezC`@clU*2dwSLZp_Mj*#DO3dFMw6&5GI%k0M?FW|6O;bm^_+ou4N|dz>KhoEsR3 zFWDdPLuGbI^iK){p+E zqJlvVxYe(qP?9wjhI|7geG+}t*=13Z z+Gy<+`NzTkjWlnec^75yKsA&GC>}3e>yi$oUI9%*0^4JD!pqUVGwaYj5JHX|objzY z5A>HH22oWGB;eNueG96UZDb>c9G8&XxL_`(J*Z4CSdbjgLjfK)>KhrmQ$boEhgnmx z2}4=5;E1v9a81W5j4=&PW@l?XZSn{J%PU@znFYSzoR8#vry`wH;E!z))8giRE>5`SC_8A1`W8sR-8ZgP76za_>}!;zt_G#_yt=Ml8Jn_XM4$@}4{OA)U%| zFjnl(1P1W)9eHz&54$gPr^Y8#eBbfcI^vcy0|NIPsxZ3PoLHZCYI0;e*eeh3f`jZ_ z?wqWw^my2J)tb1%H)|W62cPhE?x_vk`w#|ltq4!u#|hU=?JN2B z=#PMn@Ae0F7GIiGj0Z2?mAK0IZbNL3Wg%A$Or)TW+wtG=yx$U44y6B)`6zH8PRY?D zeqF0xF7o{7`9}Gn74)0T^=SGBZREbrk7^0pVD)ziZa@1cxNKKUod2)8xe$fn^0&*) zBGMPSt6%I#ipNTQ-VMpUHFQH-B=qRshZ`}HG-a(b5=b1alWwvM&EDpt$i$W}Q}AJ!&#*iXcKQ)oP3YmZf$U={~j6MI!x8NbWZZwH2eki7~6h(s^^ zO*H>+cgL@Nx&B1l$SPKD!`Yjb+rq@OM%8+Z*UcB-g7aVNte32aCVfys zJp{U37HRWuPLas~02M#_ecVPyz_-w%-$A#kH%YITIMjqaJL~Z;6F@hI8+TJadJtG|>81 zXf`|aeJ}~wgo@ji{eDe!E`7C)2abfXa=Vg~lV$FEL-O)vDEIV7uuA^SObN)87!MNN(cwRh}fTqC>0_15|7 z4XNPUZ!jytk~r~Jh|aB@1k<_-oc%gfik<)PN=NRiue}0I*0zt)l2vG=)uHvNEU2#>@z9KLw=n$OlfWN8m7Dc|`MSSN zOn8pPsma#eEi365*vjR=H{~!_JB4pNyiZ_YyUgG1UT!(=9yDuT%i)cEHXNYi>F9xi zD{enT`l-gPG96c=6e^3&Fu*0<;OAP0I2Ubf!mx-_bGuj=8pW#V{{^gkq2l#nY6eFf z(MMZ?etp;RbwX}ZZF3wl0P@9Gspu3dDV6;_a>)Pk?O+`ni8rR!k#=pRFP@ydob8yt z9KC-CdRE?Wq+jis6@oC)k(+DKYF~bj`%01 z7H!Gqns@JQ&b7;Dnii`aNlPO?o-l)^_}8^7X@a6VQ^{k}!Su|y)w?@~R5c!Xw+wHx zWqsDabz}_Lr3lM&+xoF&7oAF)iNzSw-t`84?vFmF^doKg`Yw#$8(nc)p$>W~T@}4% zJ0~VCf^C@5`tg8e<;FF!Lcu2GfLwj{oxo>hvm{_lDD!WouPh6Lo<8dkzH_Nj7EZ&@ z^ZVLAnr@c@x8_GcjINsh;q^gHX`?!G8Jgdg;_Rf4sGceDiLz1nKGgj2EWdt%B_je% z*f7rlYMPz&2fh;qgn-b8|F&FwFX8o)yQH8}Ha{Q?HSQ`X*x=s=x+Jye7nYX5S{09H zaA;d=pT{c6s327C`Ey^$@A3PuGA@y2NBh0YhLMw@+T~-CVPT0J(O5f~P zhg6KvG}HvQbooz3pB`^VW!RTq^js?h^mr@m*MhAtK%NXnO*|XWgY=xTQji%Y|6fU5 z8z6TxI~J@O3Yq@pdwn(fdN4E&lgmM3kqgD`vzJd$fvs+XseHU4U7UXx2Bu*Cj9%&I z%wO8n@eVdv?V$Q$irH#L zwIU`JZLT}#vofXg!>b~dW3y4(`=&SG^~h!K2vn)`lv!Jh=kfB-8T(huu5RF|R!E&p zFPlZy?z`NseIwn~ouKo$gpKOCz`)$YSst+F(1Ob~8u<6kD3|GVQ2$6HqP*qym=4yOHF0m7p(+@Y*@ss~#gRSe#&!SR1zJ^>)eiT>_N7KUj52c@8Cw08Pmy`$^(X8NC7g_-i)&Vu zq7BB2b3gR|kd2Dgj*1Xix=5zkpk%U8KqLd?jctm@!(PK!PyB4RB^emH~OD=|CJlN*ufg<@R>)}ZUmyp zn$giMvGZc82BV#-vg_tffvt2PZM?zNYb{k({%N>IO)Fom`7V2# zUN)vS$e3J3!uZdtV0zN^?qDF(=P(g)a=pyRUd9|iB1kd&R%|jvgmgON+O3Z#+9iqQ znU<6gOVq4?p7@z17g^aT$wUjH!9K?;Gb=ET7xp*Oe`53VrRpSc-sUQc`9>VhK#_d= zBOi7qE3}V1SoFf5Ojw%T64~;e{&pwP8EpCSV=B1s2aiPlhT6gGk@&kS6f2#{iolF1 ztDBv|ReboZV3Nd76xDvMzi9zA^XrF>`cKg2(m+I&d!kOAkL4v{X+Zw2QOBXZ6~Pjx zQC&lDrYbepj2SBL#ITGW{ zlO_4NBl*E#I4DPrxuWqU$IM@D$i6hr@N;YEzrd3`$Lf3B?s$umoVgb^vPbon0`;88yD>egNtv1(oVwf=d~RS1`WCMyXqvf$@b=4<>Ti@ zR_r_$;Qyt{@3?c4)c1Y5ijq=f%TJO4XoI*#!99vvODMMcb>w69g{M=Z#wl6R^rL?cTb??@QnoK$fq+vU*=TH+9NQ0| zz?NCNVlJ^Vu!}XFSW$7#RDP6RlUXnQuH(facDgtkG7zPA;%WdSv6i@WLaWd(ClnjJ zN*&)+yv5;8G@ywOSCi!ilPq^#>RBMQdk!~Yoo&NSis(!Z;EPnx9ooa=vNHCDkQJTv zxsJY~AdAJtTwF8D`g{UKRtUAk#X>1s-h8YG1tI)`$vDt?7RW2}@8Vv4Qa&g_9;+{z zU~F15U;SjXgP$W#Dm-o({VL*Uh*ECYwQ9_S=cflsQ7uS8!skcSAb^uL^G%p7Bd1f$ zXU&P>*D^NWp1>kq?e9r(mVA8uu~?oLqPus6?_nv0O!uM>x)RsRc6W;suCArPxAFm# zN)54A!Gk+_fX;YIWE@Mu+CDp%AN@6u%fZ6R*I| z6oYf=M@Jpsvr&exD(3a&Gtek9SzN@p-147L-spIJfQHj{P?_iFnmAIV{;*_P3Cp=d z#^y(wim|>jQZxq?xvunPE2uc)5jsGPG~@f_9i^AJgeFL@fBxO9;ZKy`kqml%UERoC zH<1`Z$jz0y41z0Phkm<5(F$rkD0?B3iMoC|hUb9Y7y!R4S$F1PgnMj*%c|@yY9k~m z;N_~F(VR5zrfm$xdw0h~-iNbyPU)k%Ili*Feusf)i|~u<=WWsqDyXuolN}=QTLC?~ zfd25utO11q!%mSvxVu5;FFv%NSFJryR48mgrFw(~&VYWFjp$XBMqjOOXA!iDP@5cf z6ki{423;MJil5A#fi}|W-(&PpCIGw@pQCMmbgOS?dk2U}@tgwdU5wO2rjvQ}}kFS8nsiL*){A_H$nV z|2yI?l6nRBd$f<(?iqe-CR;mUq-D$j@8d4Q>DS~|c1)Bz%FOm`f z_sD6AX1Ix03JCSnjBT%~r0I?Uk23a>DGdXFlY4mfk|N z;sri_wbl$Gfm3|?mWr;qWHFxYETrYfNyUC#xVfYL4YG zr{8LHUW~p!Qyxnh$ssH!Gaafrji&9g7)d6UP6f#hhjK1l`o;w9i| z^giO=XqT!;Ei2#UDAC)km7a45F&t92D+>Ln?dxxl>McZL7#Kz}{-wKztD z8ptI1Cwk5-I=(gZmU+n9*3{{n$lIgTg`walRz;mU8lBc1Bd}_ULGw#1*5I(Q^d0b@G#Zf!gn-5A8y}JS4csjb+?mI1T0s7XT=A*KyJeqG>!YH={RaUew znD^zZEhlq5LLJd}iFD!*PHr8|wdxl}M_P<&P1Ak(8;Gn9+YTINg>&W%3hE+T;+Gx^ zy;vN%lr}KAf%jv&99L)@fo){juDw5T0JP z*w;{{OJ4D>l-u+`F9-n_rG5}svrtEiai)j zRW@2vPAge8M@7*1H2=vUaLh>`-Us6`7ztz^#GoiIe4M&EaG5rx=s~@?DlCB}T?Vcj zS)oogSGtc9U+SpGGdeG@H~`B>MqM4BPr}#PN*fQy{+Mf8(ufeK`qRz}>EW#q&|#%? zN|)$)H5gJTpE2pkXjFYS&(bBj-abE*GnK0Ty_5#&z!Z@_mT04F*NUayFC={Fn0$Cwb_@5@) z(85iqpn(e@xi{BMpCB9Zuuaem7!Wf{=075e4iBVeKW%tE7|?PV47XrNd+M07xcL@; zvIBAA`Zsb?3^%=O;`LuHnRre?a@txb)vFXj?R4p@CcHsHPNKJB044g(@n+`x5qcs* zoi=k4dwtsRX$$L28s2McH?Qn|=AmF=hk$;klES?r;-5`hHBLH2D}>7gW*zku_PBcy zydKxa<(}CAV~;B@E)ZVXTUtKI)*B+-j)SLZ^AQX-ie7{ySnSrx<3vlZAv)3`9>YwJ zA;ZDX|GNh-e#R8qoycdI+hpwu7*LW5=0Yvl;0WGaWLM`!FQ@s0ebnYGhL4DdC)$iT zHlHKfL@M`{7p0C$6(_ck)Vh4SaxRfkyvwm`P7j$4FBS1aV^{)6t~}W6<`e*?b>)UF^Yf-PJK~gUDwQ zhSgX9f~iUxqDOwX?R0T{F%YFYvQOJ?eBvVLn63F zd0q5_7HVyX6bns`sweA||K$YX<&ck(B!=OMvR-1=)l)}}0>v5^6Ee%BFY(vic@fcD z{G4=2&L2O&8SsNB(|tlBWY{~>rgL~y^Y_K1QZ1EPB}I$0)flCn=9FkjWu`Ybja|w9 z#=ejfR{alP{w0fk1J`2GL%OAktS4Qmd%1x{h-JeI4PA;1{V3730oc@ZmaH@~Heq-J;z>uLP+W6F6+4DXW z{WpF~i31O0Vr{Zs3A0-9{LFYxK}%4MmKnH;jsk3k$Q~}prxGP6*twndzaO$+|p2#=(;p* zj7%$Sp#f@xZDjq!f4jYe8m#cTZe*u?lMmANa;XbG_&9PtdS|Z^_ikV8O&>r-VriL_ zQt?p#3(*{LXj7{eD5=zvzNe7INCb(=Q^&rpV??U&dX~hdXv4|(DN#hb-*NkaGA}w8 z5gn-gOEj&rY>?J=UKih1j@vVv8f*m&d9~MXe&2%f`rpJuo9%hdD}(X(CnK<&VQ0q| z8=MoZg&3Y)ER48uRGvUL+^vgSv7zi$mZL{ah6?46*N+uVyq9s>6K zL_}PuXgo%dro)cS8oF*{;K(*0+3_)#(c82a5qIwLG~$iAV+k{h4F6-1GUxDdxn%3= z+_EyN({4W( zY62&IcG>1Q^c543;|EFti3AP{JMH7TE9+{c*axitLWfwRr)l%%utq|0S}^pI`ASUzXr)F%M495zi&_$cz3$ zWM|;9%;MiG#o6yV*d0f#&Q2E9&Ssf@ARt_&c+UlM$y+Ow=u*_NXVqM~=ufZJ|AgbW zRiDvAG8reHN}Q&!P@(f@NNeW>N`eHFmd50JTox6(c9eaisx0(CF=oq0DRJuzXxMX+ zX{CE)uXqoSG0@b&N}Lu+owHY`{CDcPoFe!SD7XOIvg-#Q+jG(d^^ zP6FrIqfo7%mZZ*3ztdlygE-PdkQ>(@#$KbLm^y#Tc{CCa6|CZ)u;RGYo$1IIUx>sC z?qThYixfWi3M2r}tiw%zJ+v#8y6c`It2e-et{ndcw&s^fKWBT3Yo^<1b`Xc!B|WO* zJn_J3d83QnK}+E^#@;w(=;*kM@u&}rd?8-oUTM2q#76YMTH{w|^XKd*SX^%Ut;yG`sGq|JS zAF+;;jM00KAv~vOcvM*-D@^9IB$XBfuQiPeNS_toGu|L;h`^4`&?e_Xe>X@#0eWw= z()Xe+244~P^7^Jx>ikFN6Ckje zNjtW~pIx*Z$G*|5K;5Agt#`a*&3Duwa0X!KY5zjSi{CjWByV^Ohl;-(P$`%e&l|fM5ow-rV-&y#kXURme@^^5~tAql=0T;JO z*rdPuOtL)I(~0lXNhc$sgP?2{{-^5b|8z2~+3NF2MeVHKM`KuI`nfo~m4DR*V7&Ce z%)9vZ%#Wb&$END4K5DH443!whFUp$IHK)kT13}Lsg{FFh`_h0*d$y)Y0-<2;R}e(q5N#x@hK0j^fb%$Lfu&KW~9#3(J#+?@rb=TFuSBig?2D;@J6tRz9^e77w zv(k^oT)osCk(*htsPC;MQF1@#H}(pHaYK{!on4YiUq7QW_8mN~a$RMBb3A4`{h`#Q z(sUi}J$v6Dpl>_yvSucPR|%fk`Tq3XbgWiXv%E&CZU~-m`=sr58;a6|elZI7!X6LeJIGNco1yY)etA2WB7M)T2= zqrA*Fq4RSA!@eb7C(>6jaQIVS3U`60Ek^EZk8ND@Dxxsq{2u?D>bj!c1@9z+-(Q8P zLZ&x}&nA%pUOnRmml_RzIRzI3D!31z;@4erc*8bW%j)&@MAO*Fdb!)6KFeU5~ z5AaU=@xk08o>FMEr()qSTT$B-W_=YaKlu_Sblo%iUadTP=TY4PD*oON(==2(f&cni z8zE5h{zH^WSK?wcGCgAbH1|Kjm1iTqkA)g2<-&v4jjpwI*v7da)?0JG;slKKZ1^5Nh zzqqrhFN=22-?~WeY&s_&rSU5CMONPiQd?V00Dcj|xY?(Io3Q%blSmyRHD9@$uX_>g{<^*&H>bSeBpl&1jK2po-(zbJ!|rL zBN%7TQjW1G9!-CB zDF)a_`R8E^g0+$io+ixsd%t=BqoKA@vuwXodU{AFtuw@s0bL<03SICv7Q28}$nqO@ zHt3A#ND)ZPXD-(P#Iz-H@Ri$h-FtgiIaB(+alrj*^tR_w{Aak<%{gkN^}dnsp?v?( zVr^oo@6N&mCoh-MjFgu}okd)*v{WDD-mz__7Uw-i_AaeB@?(n%b3$p1b8m1`@FwcG z8=ODqKR_6w2BwQ@>SQx{|8Co(qkgP+(#wy@XzK< zbfJ3{cCK)K7f@4hNgVaRObGWb%=`3LGl^nz)l@_HmqvV0C@SRUMxMtx?&Td^Ocl8E z`)qtV)28Jnw$xvuX2opKC6U1!>aMQdcM28YZ)9GUW?I^!39X*g5-8WvHMzgVTHd zJaKXWT-GCd){c`cRpHYuH}I@Hgl|6)*{Ba_m%M?I2m6Ua92^|--PwT`=T_sFZP)0a zWF+XcbMyb=$LM0D&adE?lT!X+qU$K}si`wf!)EFMl*iC}8J?ys;a-EZB}01(uv1oV z07$p?y|Q2UguUjCj>F3K%A`&z&BD!V2Pw<-wh_|?eWLFfU~=iAmv8!x=t2gbYl6t2 z3f)OjCIBmxI5+eL_@KtU*U~jw!9Kf$6dlcIddj0fUKseGChnC~vBoR#GBN;m_9+b* z3mGtF@^KT2Nyo?XY}%4sgMu`;%CRH)Zp%+E0pIlfGj*bH>wUI$N4o!TfJ#U@A7T2# zqr^*f^Q!9|jG5Nwh`!r*K6j*^jvS|rn8MKUuZVDhcB1SPrg0p37weNfdTq8ZIerjK zoWMh#OooMzv>+cT4`_KEI2??%BL$vUD@?q~Ur;F;G>Q}efye2K;fuG`Sz$(>0aJ^# zhi{9rsYu7z-;N5c)1oJX31n<@cedwJpr7DmoRl}%2Q&dCd^llFHPDE@e$YInDRoDeg|CF+by`ccU%#r>!_*(c!S zfvq65`kjnWXvKiR6iH6p=@dDxl$87ATMgyFg`VeOdZ)K9>9R#bz@JBuz{fHRxaK*K zEb-7wv~eK{7_b($@oTT4Mp~h{nR+&saQ<8NvOeZGo!(>YM^^d$>JEiTN)7!4= zcAg_YcXk5lKcnkCBcovt^rpN$!`l^F54H&en8`Q@3(FLNKHFw8JjC`{gu}f&^1m1C zGP}`X>4|2hGoSENtYa+cB(YA1Vc>z+dqHSd^tP}a@rYe}{@^Rf>YLl~Ed^?H(SDCs z@2@zDk-YG_5&v@SAt%pB&Tpi@0UHU!$3xsAAH1iLaMO?c@j=v6**|^DHOgEm8og_; z{q_Ur!w(<}kH!%O0iwPvsLe0JXmTi1UAIDg&o&9RPoymQBV$G+x5xed{KPC5#r3R!D4(u^?($dnB=@A}_ zS^XNKc|8ZJST~M*{}ov(NSfebw?g-uzSj^kr!E9&ZWajKohEz3xsK%yUX!UJ0l3ZL z$wAdI2;afsf+@h89qV@4-a|y9F<W<5?v($hSJL7fBi~D3EFR|H;t9Iq!FKU{aBdw6_5ObHf=-rB7oz{Si^oXS2 zSgfG%bCn*#UMkuHnpkG*UOQfmjBkqXZvOwzm@3yfxF{Z9)OL ziZ_!u8%jvoBEmO>u`(B_WdwLc$tbqYKT3;ut|_-0^x;ZBUy_bi6{Ui2sO9JY%mOy} z@EF5onG~{=OV}p441D4rjfBZ?E7qV(Ap#bby76klNweae9|ErO=5Oo0W;)8qLa)if zeN|UlFBhtq=veQ$%I`qg0w}@5*f)Q@G~DC;?L`h@&66{()&tP1FvJ1CQD?ReOkZ#E zHatP{HsppbSruyD`ZM=e?y2v>{PfB~xcLX#t>0U?u~k2rP89T%7w@?9L-Td@t8Z+s zn0n6>uuM;A$8VSylmbt4z?db}nOAL)GI&TXHq z-&PA#$Um~Z!>{XEU<6nv@<+YocYpP#NZkUoR7?Vmo8Vm>G}Ul*Xt!f~_JeOOH97&x z7?}l&$r)GBt`vKnwfz?ZO@?zmlA=fc=<)*kIjG!$l#!gAQ=oQ z>9qXrnl`uV?^ng{?!V4IwK)z=Ubu-1Gwao(R*_yVyc~TcX&Zt4*zs8O2gbqs4mO8i zM)5$+6VZ=%3I*cqG4lJjO_mo)M8#`9h8GhwR=0BQXQHmq2{$t;XF0rj>@EdxU0F0x zl^BnPUQZ6bRPF1oQR)~^0cgJ}yahLc0qAek`DJBn+Mu|#JDS4m+aS#2Ol>8JCUt|k5M1A7rOyWM#%G(w{E6eiWX78@|?Z~q0O zG^uHMKFl_ z&nBD@6*PfDCMp`%18OfPT;P`PlfAIVP*ZIEB#kNB`u(T{4kB>10@sH)O-aS~kHKsx z$$v28{HTp}dpNBb;b41fEH-_O&GkV_pDRYrgt{l;cN^Z&)@vfGzis8ug~H@vlZL}* zaYu>U-Lr%5Z?8l0;|MnxcxnS44arDQo`ix|XIr>_>9ya*98yNp)8IHrY=$Uk*)vs= z5^RW^cqj|srRt}ISm-R|8E#2-@=}uO@&Q9fjVqF=WzW<|Lard?EPb%<8_iw10w%_fi8+|nb^J>l(LIOjc{O-W51G(LVlW|2q8`z)BwJ`KD|-nNAC*EUL3D|CXJ*{3y_e=WgVL>I;YImoZ#y zpExA;7;Bg$$3&pt{q1Rg&wYCNT{VmhJ*ccNIg_(8zDbSHxIhR2o#-K-cO@uEPV0=8 zANoo&L`*BN?n&F?$FrnxQr9`zTtfS0aCffeuhWakz&YB`T;HIoTU#|Lu@SpH`d6RJk zaA;PKyTGYewsM~B?%RVz#8igzaIs#_KCNAjex=!;oC`X?ANvj8vLtn@ z;HGGe6|FfSX?hjRPf;aVeLt*CSzNP?th9L`HaDKaT9}eVE#5KV_b&43-SpMVeVNBF zCHwmxtG~3Nmu(p@7w)^?rI3PdW4@eV`%xQeg3vf5VXlup>Kc^8HM-c{sbNO)*u>WG zy%#ULohKcE3{!`1o^}5c=>VMKU-FOu7gkF1U zrDK&{5dy~SMo4SfQcWj`Q|WV*gfu-+ZNJuB>788+VhQ6V#qWq8N1wjB9tGPE`lHnD z-%;8QDK+y@3rX&Z@}ny&+a;;ecS*U!^>f$Wg zPp^Te*mUr6`P;iTwsZG=O@Cpg5y)2htZ;Ze~VAKl)mTbQ2){ z$ye=L@Fvq3`q$#{Dzfn|hXcfSMYES}x_&bmyi*72LYvnx;YO$TtwJj}izfq(-u0lw7H4LG^`AnPrWWQdR(mi1II%2$Rn1jtH&Se}0O4 z25$MB`|#W-!ezxNMjQwt6~ld=s(Xf-`fJuDyIyV}xJqcg&O&7t?(ZDSZ^GTGCM31$ zFZe&BYYuC-OkXDcu5%OBV1+WOH@PF4p8q37b4;fCYlRZ$^f5Ab|FsZ~vdBpu~CDx?~;Ste654@bLK*ZS)E_YV+kY(U5a19WYD5 zz`j1h5Dt>~>gXx{LgedRmx9f|c=ukMZ2hn@6W|qVp5`o7R+djnqb`UsK28D}?6!?aA#ipFm{UAivZ6+^PCVE&Faq zS=l!Zv^Q)2$qg+hJCRF!k!@lYZlL!viQr8_Cg0) zv*FMSYbh7_OIVq(H=wWi78rxct%UyP;yB9?0kl;IrmHH*-MAGTHi8h_2MJH1at!&0 z&ceA|B11mqY8Pfw8Lt}MwOA`aPSlgEoRB!YvB6!UN>Zo;&<|^szN)*~3J7h! zBTc;xb4`3mpy_;n;BSA;(sIzZ78lOyGyLfvCt|+m%u7W;L(UsWKrC;1M>38{U*4-f zwN^pl;4UM1h7rlKWO8i_Cai$MtSCqA^lOG0ccd@JoYH zMtn6--ME2@{o9q@ymIM_q;4mv4|gyFQiq+KL`|`=_}O^QLYwDpJ5nQY(E;SXHb5NIcXxu1#1SRt9qmZ}+pA z=tZ>_khRwHE)^n~|ADBYbNy2Taf!7MU#WBtAGQ4Xmsb^A<91>^F zJZEajdGkZbFbc}E>XdMutT6P|QhjqF3KI5G%*MT*mr12*MCQffX!{MO=#cm|PwI^df|OyC)P&cP$95ilxl=^R0nIx;$p1l1UVg zH)ju;)zput;0cB#ei2o}=%DS?8BZyEhR@A(RBvJAtMRoY=!eLb$oDRyM5_i0xVC`B4f(PHM4~ z2M}BO@6W?LOYb}ef@RSopK+7g2`A()81Xqgo$4e#0_YxJvl!rOxTC{e=_XQ`{Q_ZeI)I8ER(R_xtGb_7;3xu6kzk(7Q}26Yi23cR6b*)9z=zk_2!7(# z(Rm}a%CZF8jXK#{KA=-hpi`OLb0)c~i{Cb&p=WwK5;PhJSsDkEWLQTuK!wl7P+f1+ zBjS7BE+miG+WtoLimkuG-LicC;?c7NhzPxt+mq=3y_NPDP$v24c3$*fvVJM=?S>@p zeaQlkW{Y+fgv2(YKg9IsNId7PE|cN;>(pk0tLe>S&)|$ydW^5DEBCITo1WXx9H%4~ z)D7G{!S>`n3mkY0#|hhWxC^6aGttV02AZ82-&L(DDWR3~JfSrZd6G zd}RA%U_^Wsqt<4*5D@7(Q#J=!2S|c{NWBEtpN8sT!A(jK2o4L=EGL34dRy|+O+v~$ z`b=bNp+?-`4LCjeAOQ2C`v1Q*QAzg=L+Pt@r z`~S>H)pan79z=u~W5syS5R;j{9a$28N^2TwryTk2WVHX0$2+b!Z-+S3aY=L|6YwYC zkr(o;@4XgQ^FMd_cEC0kb&f5-hsJt&iDqeRS|jtyuma(ThVY2x)wYzJHSfC+F=oKG zM@8}dotVkt`#sNZZyfEVt0bOe^|$CW_h}Rw5B|CU?{87{_U|`T5njtVMC=jXs|gzo zIaH02TXXb(uZX^O)fcaIB ze$3J}aXBE;+}dhboM&J22K%^lQq^;(>0zt?ya4V?b$3d!yrQN4jvfy?vOY(+cZ}6! zJwa{bhUTeHBQ!KMSyP%|zaalO-AxwT@Q{2xYSwwZ*tuDtP!}zEeu$Xe7A!xT>}iLw z+7J=Ck%E2(R!C2^0qCoZJX{GCS)u9AK{K%D6fbbN2GP;d#*JVzcbQfUH1W?E0lAfE z$k(5F7)U904p@saI~kQN+6Fx8`XX-b1?N04G5ospot@j+qpidr0;qAs+MEb}(Y*XP zSr@|+qu^zIMR@I*LbQP{UfpxBZ)tR}uGu1#fuJZ!r%bL*vAw$s^|v=uV`4V{5H#EX z!xqnwI&9EZ%N1+t9t&O>;V!Ln*S@xn3pQanspz{soy8%(o#Uk$?=rsVW8Ef2`#0Bi zvxlvthfVX_t0d=^rX970jxEq@ozb&QD=GQq^YnOXWCJ>;S-VVjLPQ`cm;GAp7S@ia zB?3wUg}Dqtp7(*Y{64n2Kaq7sn}x8*R>_Ky*T}n^qDxgxTYC!GUr-6Bdn(hpx%{tm z#zefn>f0T;b5ExTLo&KZ%=rM}V~Vte5BHt=f;866D6O2OQobL$y#EyQVo2*5NeG@F zP)fWuhdf+5$DK#M}CZ;XBNRe;XAuhfj*c-JhIT%NIFdkXPgX8BIu90ok5P#c{5gvb9GHBEa6(~UWt&fl_m~}n%EAgRyfO8V#G-!gN>kZ?8spRC# zKiG0k_l|n^78Mh{e)Lhc2ne8kDz)h$zTr>%$dri1=|?=#GQY@D)3YjGVk^2rFT{33 znkzwD<+EJi|6}T`qoQiNHhyNPp<9p`x|CEAhMECI2?YcL=`hfdmaaiTLK*~=egrHe zq#FSl8UzHSd+3HCCcfkI`mFW+H%k|5%{}Lw`|N$~-*w&T`|k9`4{}mM96Ej>-zXO) zwK{8#6*-nn&jk@~ZBc#fzfuo?vZIIPQ~mxs|4pie+m1|Nvr0TWDVU(=Etv=GXetk^ zk_Eq1mulrOu5IS3nQwAy@PLA{>#+1D+i_MpJ)AGU)N44vKPU>5?qN z3*xnBuVy6cFIcmkk2_19!(Vgk{#rf5d`x@hl4cYU<@>~%#{h+-Fy?i<4x#HIX3I27Pf+03jz*%J+C@e(NLgT9tIKdFWawNKz zW;-y!Ba@8R-8fd>e>;imZ4#mg1CyUBdyj4YWpPksglyU7JzI~D*)+yfLk>@gzrMvca(Zvg zuB_0;U`70ocOPEM)@P%3({H>skz%^0f3nb4UGb27cV7L%r4s5!ujRLU;2XNbL*XxK zJRjr}7)T1kTZPPqXni5B&W4ug|DfopDJrMYG3}>4#x-N~Cc-p~ReS6)@WH@$2SL%W z?07=nf&h^HQflXo>4fpFVQl;}Hz7=dky4ag1l98by55mtdST$lXv~{ge@Q4Hl^9+x zde`Z-R*>O{W|_{XRZ+-z$JH?P9VRQ^#_fh*mlnDX0XEH2-6y<_y{P!Z?t>kHjd z_a_m2q+77Ytf=#YOUa$dk3LwdgxRV(WO5Dh0@|3@xEgQDKY%_rEReWn9R$uNkVPA0 z*xe8)9(!|3lwKY9cK4vW-&i%``TWj;T6}@r;#tA+A0>L0hbFmjY!};c@C~7j9LM@br)MR)6=ZrbhRT&pf|a2VnA zU1Xbw0$K_^lZ86wv)%`1T zVgJZnn2wTUyRNi^a{GE#2!^?9Jg-*~B6$7i39l7A#MSuBZc@3rHc8tKS@m@Oa*%Oa z=GV8G_-D`34NH&og(ws9KtdeEq4XUUzaX0k8gc9{W7kwZfJ+~&;Cy1DHTKx!EUTc8 zLHk86NYzocy4wg4-VW$B=Jlca=&1m!z<3bH6B7U)-^%`cZgj&_%-%8h-gy83${gvz z#t;B>Spguyi9A+4>-gd|a2p6$(6Ssk;7z1;GVo33j(wg5$rq6a8gQtCZPP; ziD|FpzJ3K&tG(!`{|GSk3X4bkK%h4+o(_8Y^I=vzTm*3xahbvV6ueU*vx^UgmAtq9TnBM%-n%;cb{kxt{q>YA@c7Y@gcC5UmU{~W}d&4FQ0;MV3? zqkf;MGJLU-Ix{N^0jh?c?!GFJHJ_r*hc#ZE%hNE@WSaA&_jJy={8LQ%bxj8->omU6|xf%Jvg z;Q+floMSZ?Q0zW+?HSf-SU)s4eN-OqyiQdNdnW+^QR5Si@u}-yDSjk?18iE&54v1Z zJBhHFcTog!>NC^@Y?v_Q8nV|V&B}CSaZv%&N<_D&nV*P#L2|)zEB4>E9qjp@lk7iyZm~XI z>d79AS&&$6AN99P7y*h^NKFkfQK7l1>~}R9#Bb=_b&W7eX{*~S-}bmU_uW=6RqV^@ zLh2$#wqvdaQ|B;pB`Z}#sba{<%_5Fo&@1yi*IHhPM-^OD%6!X2_Uocd__u!*m&6G= z)52;$bDgGBs%b_H(q5<6SdQ;+*MQInIN2|{cjv%sWWW9c;1cceEQIe#;{l=CMbZL{~F*@VlPZr zb=+`x8-?0de0uj;M7K$^!RZU5{0duP%#xej;o~A#DJerb>K8zE`AFN{kp?>@%uuYU zE5C%$RhY|dj;0BKH;nQl+UKiFFDQV{)Q1(WC7khPhcG0-P{D9f{awg^7S5d(W+dv) z9rE{g4dxT0YMtB&i>{L(&4Gp?Wj3idIytwC)G4}U@cX9hw90RjW5k*ZXersMKVa)J z7Wh#zB#W!52WMqvB?$gEIw(+|yVQ>qe|26<$lPX#gJ~SVW@u<7(=m0(=cdv?dd33wbY2I%AZi03coK9B5GrVR;1F z`x?X?8J+2+oB;wMDe^zl;7Akl`vXONm%g;OS_A%!%?+Nt3FQS=&f>?`9eh#)a^kL!39dEJ#f{WOY(QbKE>>~rT$N!1TC*hbDCzmhsmnIIubaD}JFP}CH70G@n-c_&wYDair@%zA7e zLfbQ{NZ3&VEAripr%!pg3< z>Q?mFxHquKNf=1~@~8uXeSE{X;?lKho9Lo5W983#qZhtz9a9UKY=;Ev<1W-0I0yq! z?MiSE&xh6e*MRN9*~(3314#Q*Yojb*Xb(7-EJ~9TO7w7D8MtB8xc<)a1UqJAzFL&h z;c6E96TPzPJZpBk?K%-0$o3dk9iwL?G!(*G=-rHB zl6C1n_Tl|B%_F^0`>60oKozgbWD%b>z(8BoYyfel^RRr0hsR*&y%`Y>shW`s<7Y6= z%maRgdwL-(GvG;X)ruc{{taE2J$E!4CP4CEF#zzpK%7&8)%(Q<@6*(uutZd$H>w|6 z3vbrJ`>OR-YI@ySQM<4iDCW^3)?TUmL@{v%MW;Pe^yTI8 zT6{C)XzgZzgBUBNO#gFPy@YDmm9BU}ik0iy5T=^TeVyL?K{EGW``BtVTJUGs7qF`_ zlzH4ZIY)b1VJ1SArgz9@mbSAB6W001=9!`5S!yL)H`WB zT(gtBE_?QY(_`R&TeAx%VY`Jn=+2#AK~=f2p@0RWR6;}U&7IU2+}}Y+n1NQYvJU-1 zi>0^vO%_|g=0MSpBZ@Ecvg8SKOs~j6gkTt@&ISh{5lpl;ux0+B;oj-_4aY@Njy%coY8(JlX*u31na$%MUWQb!h{BZzt> zt&bM24S44%-NJ7lNSBlLR4Bb>Q^wrCrL$4x?)VyCP9O`tRO6!ewrDtmL?RxWpWH$t ztuI=>7S-r?+rQMW#-p5jFh_I0l;l3p`vX|L-!!d+J#ljeLQGC(QvLleEhH;JqIMGD~0v-g84HA=G$9e}#;iy878CJvNQg zFWs3yth8-oYB@O=7R6e*c6^vqKXQo%yW^c6(D+v}_{E}i)cED|$z=V=PIx#k)q2re zl{+6EY+9=%KOm;`=BXHsxiUi{E}`L25e2SxdU1)agq4&78X{cgBa zj&FdKKd5(J{L{BEur|?%vvmIm=bd7@#EJ>TgA1NHKK3anW%<|nWWksP7ByaVc=EL; ze)N#k?ACKZvUQt1#g~-j5~WYe40d@~LV@I?SaZCOK*YX#3K1q@$8+BjSvQgtrGJ+k zA)g%=wEC^Dayv2M#8nR9xg6KU-b6(s#Q_~f$h`O1uR(Z5QKqq*>m4=EB=bd_285K3 z*Dch@R(D^&i(T_U7@pA?zl!7Q6N%%MTWnx%S<|g1=+8^E0H!d^B_-?1OCz}!)k|jg zKU)--vr(f?vrm1&i|8>a`Wm5O#9|}cwWUFcS_Q*#Dev6T{4)rc^mdHJihz@{9hEQ^ z@wwNtj>4QwnCV6q=+J@g2gUz2)c0CG7-so{^-y*hQ3M7Q5trDW+hwBfsoZr_6TYf* z=2y~Vj3`UD7RBgGEJ0u4aJH;Kl9pm7{r&G_#M=*WAc-)4#+Uy_C=h)_!AswD)C>4C z$cpRaFn&U})U$bqLuFp;@h78{P}4X+So} zbu05Ry}wQ+p!!EC0T&I@^nVy|kX5LB(0W)z^yM*V_X+6FfJjsR8@zDuO4LqJv+1Rl zvtG~1DcScoP0&g0HJ6jGf*<0-3vNr??+6~c6^t?OsO~~KhAm`1CWmp04C@Yi$!fUR zVhS0@`%6%gG&$)nYZg-gY);|6St`KD+@!&uPJ4OSRtI3DYN`V`)750WM*%9YV`h0q zTGWf!9B8oGUOI%;X6~C@z~$pjy~6SY2Du5jPe9PxPnCd*8` z`b`2G$4TNSzW#K)kvM)d+d_k%Z3%0yRF+S_b%&F1G#?B84)?%W)>=WPbqx#j(oK<= z7J(&&Z52&R^0C*~wVK2k&&pr_vSyYum5oG4`cTB<%|!^xS>sJZ8rvZhlAYwQe`P7W z?%J>qq464+5vKw6u=iIHw{W679Qx{8eUn?q2(g9blWBTKkTHA71$Yq!u)-ZA(JmD( zKFQzC9VHxgKtWU{#R^4Bc|=Gb~VNzl5Pr{mYeaG1JF% zYp==&eAN!0NvlX?W%)w3-TK;E5kA!-xVrSlKvIp(wtt*7X-GtKmpV?3&JE6DWONxW zVS(eie^TzYQCYsG5|+GdJP_M7E&Gmddk@$56G3z5&Uf(UwYYO<0&O=?Nm)5$Y2t3F z-v`b@HG)WLPULI2a~X+bF1v41#5OzWe^ml_YRWU1V0Za1g&zS#%JFt@1(?t0MA=2Cgr!dwOF*m z9moISYS!VvpAriT*WAGaVU>V#lHAwv?-RU05##VLmq5eqbP1-buhnl->I5H%%!(72 z4Io2i2GjTYVqB%in1uKTJ*CcTz#QGIpm|onNYj$N{d)DnSP^SK8w5lR!2mDrItXEJ zuk@@eJ7^ydJosY$eWb{G7Gyl_($ZO)5--1E5vS!XiKeB9eLc|&{O8*O`(-g86_B6N zoFso*yI7=ukl1Nrhgq&S>Q5Qbp937Zbk2&AhE!rbK$2A%_XtjNcGoZh+4PoyVr8&7 zV)VUoKcg)r1o%V$7Op|f4#E_-M;HN?S7|C?j&@NEPu?}O6&Mt#x4$KvAEri$6Z{#t zt?13>k2e9C?iMP(^ipz5@zPUMWb)1=Aj%fImTwC|t@8VTy%J>b@)D&e=A&z5IY5}csWma@H_L^ z2qlbd%vQrG)8XmAqT5`&X31^X%)7J8EswbS;uvfva739`8Jt1)29qmDJ4 zvc|}yUph;_jpg)FXWr%XD*dZS?d|G&K*Fi+GC-@FeZ~t;2jm)FKW#}O47LXGr+27{ zLm5Eo7I+TgAPrk3e7M$-mr0}4USp*iReMg9^B1RDg9<6@Z%j;aO-uHXitQo}$#x_s5MEX)W z+R+UT=of4!Ubr?RcJH~_Wj|3iz>Qu_ojDg7JBTx1&6_(cQNKwTDRnCwQ)+P?&+0!2 zm=0m_#aSqse)v=#l%6I=&&Lj9+B}`0hkQNszXz#HzRfW+0@FcMcyW`Fb@xEjH7hHN zxwl$9_d9Ka{bFYMtnRkAG3sQ77J7aF8}CaXjkvfy`l!pB35$d8T@6x02wF2|jWFw; zE?dO(r0G-Z)Uy(b1FyH~s$=%^9`19q(?h?cWR`#1NhiFDIDi^#O0*6b&TX&oJnkE? zNFlr$9Nj|_W|@NvURInnY#@{Tz^W)xyzUJwBkeJoIhs$tV6H1g4rH^}iTaC=CHax} zD#{q?AYch$IWk{j%kQm)+WTMp!LOfqB6+Qzd~dTprZSw->8XAJX~H7(gN*;7l|}o3&dOPU>dM-~GVgqCdZr!#nDR zK;q|`gA{LP2T+qa*4Lu_2!!NNa!lAag#^3x<2(LtF#O;KvszE40beB|!0*Y(!fFk% ztE7ZOWAlh8w0+*#QXS35#jJ!tC&dqE-1RDg)9uv)Ei;N$`IsOE&EM&POF|*`gO`Xi zZ&+wSHgE<(Ej~rtVjg8hvF~AL-cYE(V3+FUxk0^)6eL3RwlM6$YPQUIrOiu0S~r0%^wwmx+h8n>7KXm<8wy$0UL zp*q1ooq8nGA?N7MD!F2K|E1zTL5}p7*}m5lT8>xTGQ}?NDBffT4Y$)lWH3!*tS*iH ze+F-`lBTNJe-V_Kb|Ve9_R*$Bq%kxYPGz9ciU#QgN_2H&~P-^=oj-{cHC4_$)ht-#*GRYA4Te z{M7?-fsuPbd-ixl2bBw1^-!h<4i=SLQ! z?}#;IOdi#e@or2}5!HRl)E^|Qi7~3-(W**Oe9%~!vqHNUeZP(dTt5rP5g+#A+t+Y{ z_&kUcIgUdoFTF57S-FU8P<*8ZT%?zW1b#5EF5sU1qfUWGoPc6(`T@0fA83XI!6~rH z)Si%yOVrj@<~Y5T#yK0jY%vW*ha3M+5^ipTdyTA-@O#_W zyp?(O91|Z4N=DJ{GUeS8T_8d9y5U;x3QK}Ed{m*2QQoXQw1FLsc+zK2d_q7v8h%|> zJIq?5Nv*<_js`{HJ_O`a2G+%FQuntE)dvaFF_<4Kx`@}l7n{haJd;}sF`6?}=WeZ| zZ}EC0+Qv-=`+?gC+*2H1TW*va!+$J54SL3_Hd9@M7B>rt;Y05n1B0W181@~nb?@tK zSI;8@sCQM0qbh!s_p1SFN`QL4>!}(Ska68Fd6!c8?$RrdJ(U&BqDpTAH#%UAra;a7 zRipJw`tmF2ps1hf>gu`?1aTtejdMw!Y3`8~j%+EZXQk!1T5f2Jvp? z19(8aP|mvHMuo+V&;UWVBHI-YgL1hJ0VA_lxB<`5Ep6^%zJD{Cs?KV`f?Rrut5a*< z_El|@&-5@Zxf&lH=2AwKM47JV(E#l9qu%UFK^M+UuEzGth)vE1IPlio5!@){bxLT& zPkDh3u(rW7n43{QvD~1~0u%4G8fc&$Tp&SNLqe*nR|oIgYc+8j)^bG&UeyRw$QN+u zlSiu^z_JyNj(q!n34A3VMGXgCUuwGGU$41*UFLM?T`W51AGTt*RjQeG#9_{}Q1fF% z6&6s(=SH8ubn$vB4x-azZB_)Wv}xIrXdAE}eS!K2Mo*4%cvyaU3wqqV!#``Wio9Z( z5Fj66{}lPf8_>azpXmaRW@-L#YISvWqLyUV%HF)}MP`%(obJ;ICI|F%-RPVKZE)#- z!PkV76VI5)2)diCP@9G5=!wv-g zTAUhv6^r18EUN3{2!MIEfp=k}_5_N90t4GJU^U$Ky!PwhOP1cfONNnlrih(-U@OC2 zvHW?>lLSrf&htV+fFaPXz_vA8pRWZ>9ak)*w(W|P;2yy3Nqz%iuc&5Bm6b9Q+sJ#S zK^;T^8S?GygbBPz2LiRVtf+|zqwj9xn+nSlf(pMX|LMaOEWS&D(S@pWP;Bp*!J<{g zMAaU)syTBiFN6MDT5-Cj6gle|F!C!_0I4!=CL8_#s=f&-yXRb7T2QBzA4YSx;!oB3 zFQ|wkxBfUlvU>DeU{f#Tw|(z9{Yh@T7iyTLas2r+iD*&l7Xnz=GvcZ1kFTR?0k-h#=Q)L-379rW+$yqM1IGa`$BZk)szHv z8?tNZH|}|FOHegUMdmztw{uZX-3iYB7YRxe1dB(%EpjbOZtEO#bkC-no5mg$5mF>j zzATi>%k7^mecY;*U^bGVsGl5QaDsLBRKHXNn8}7xm2;Ve9RiD6@Um ziTbRXJ&`!axr6tML%*_W$a^X(OmqyH8SZj`%95lNL$asS0WRx9`W=Cs@~-YMWO>%za-{IdJJ+AxC+iLfL}mdZlZ~<&biE581N~vFGq+~b zUxJ^(e+jb=Jbt)O-K4VlF#d#GEj~BrJ7&GV9*T=vqP5g%U6YhAwM)meGtrEd5#@qQVP=`@!WDW zX4oWH2;Y6`$_(2)WR@p(_l6_dexVQad<+CrfqG9$XFi>h`y4PWm}KBY&(qp7wUeOg z;>4mNzPa3qb{#{j!DIU?90^A|@5i_B_bl;fEI8(wbfWnq-!3zvLV=SgY|&!rotj?# ztJECSG1&L#7>rzJhX3+6N>^aBa-fE&v{fI2et{j|rKy-zGTc8Kt4Oc0g^hKlj22v^ zg!BybbsbT#IZ~jn(;_kl-E{e21xP$Jt{s_$o>OcJuh%2d=49PJq54*o5R{`H3Av;M zBm~?beTetxbKa*G%u?VX%Q+s0x&PdN_@#=oFW6~2RBI6hApXK@GFp45#tSU zuzu(FE*xa57zQ;pi$0%YU^i9C+?z6_3>gWjDFg!=5TGd+h#_AVu1ZsZ?@dpE*feOc zobZ}{dnV%r9v(>8xef-nf`ve&(I@hUkzItj-fmu>X@_#1H8>i=0Zq?qwbU9ON&d}f z{qq(h@5xYN#B?L|oB+36tI}cpGwhC*QfqW9b63{rovo55W)}+f_PH;*J`uHAMaFzT zd3x7e1MVnS(?M^qXA2BXW?{*LGGt5=MK=}DP%j`xmT8J2pzo67w=Ze}KhI-%;s|!_ z-yMFXXaNrC=Vii5^N=iE=cA{u?-qrMyKn`bJ7eSwoQs)J8(M6%n>W(xyF%S&+wR^O z*;fx#9ayim)Khz_t|+h2%6kLRxT({ga1Jp?{Xl_~8zl!A;DZMeiDVAz_1VI%C7j4C zW5@1Wd?pgcuUGzxi;=6WY*d!xb`ZzDdN+spw=>b6*OsM+~ zdQk#5E05~_#>A!xwH;Zj;z)znT{#yhGexl`=kSvMCS^BPaBE!1k zl8#!k?p0m1VSEkm4Id^KVI(cRAQ;rO<2hkh6s>Dbad_T?IMR-MG|-t4BuZK!E~zqg z%k>VKV5T^CHQwLJihzuA*=)mD>L6|W0Jl#8AYRMm;+?}}Ns_YtkOL&V5$N)6z_9Jg zl~d(ph(aB%TJ7>la>5>E&k31TnQXATi))543aQ;zb7NZm9tUMFdDNKp{2t}lA@~D; z<6F@BUquBE<&XKhSTs|d>5>qDW#|WQJ<1Dg<&~qNQUFPS^Bji!+_yL40 zEA?M}y=Qw6JU+X}Ip}np8Ytw!NX7efaB|$*eOy?bk(@rbJ7GcZlq`Gamfi_E*8<8V zS`~_vII~@$`Eh=u{PHJdGVOf{N9EaM3o`gx5g5NdW(`KTg_A>?&_a;)(t*T7&L>wU zHzE0UKm`rAG`TtYTzRX$FeZuHlg4Eu9FG_7h* zt_Dslj9q?5WF#Sa|@&&u$R~b%9kj-n@>fy}> zzAmdZ09sigU(o!}x<;f4+Gy!bU%zI<#jOk5BokMO}!iQnez5gvOfbySyTG2%O2 zKZq3V3dH)`z2QL@gk}c%qSIcn>`TI6c1_9}r37$lo8kAo#V{Ngx+Czt1@Jc4TRx5f zl0LfkVa}Q4FH(d9_He*vF`--lb;uz3V>Ha-qSMMqo5jIPF#g@wQMKgu9mSff^NJS2 z(1q3QATYi{R=4v|a>{We1P}kiv4A71AA z$=Aym$OX$6wL8uFXuVb+UH!I%p4YR-we@6hP4G?4ZMvpkx!=e3g`8{!OHap9QjNvd zoDNp(zszL~TxCVMgV+gvc25xM;7U$fn6F~2JfR1%=uO1&))ODv34e5BWQ;^OgcI1m zk{0PrF%&8c%25eQfTgM-cerC2KcxSiVTb=Y67t}Fe4UO%#+k9^Q!ev`w0y+mvn-gH z7*T8%f^L1au1sGa1&7{{zAp`(L2SIn`ukm-7z_Y?^fhbG(d&3WutI&8KMR-X==+VX zFD%mJo$U&{nBAy0xD3^&R&@(-v^Z)ZSU>XPfvge!PHQxnC@AgphYeyiM`GhFko23${( z7+vGWTMR5t^0&B~)PM|LEhr_c&DE$9k6u?}WcJ%XMX&2GehG!l?aXVziaIAPBWL?G*&&k4k9l#~ zv`}l4!Vo`jd<2?4;8&oR`lsVZ78s47Bs0A_RG}Ed_Hp^?`Ty2T01r59B>c`I{>HI1 zV<&E6av#kPBOGjJcAOAjh-P0x9{n_R6PZtM={}Bqm4p#|gB~6b^YXAz*6ES(p-HMD z=^xa^;3%>q$i>o45lt;KR48nA$AOC3wNAy|K1-6=oOQy1H5#i8;h+%L!lb>Tz8xb* zG2}EB=JtH8$d+eBZV{Nt0n}WDZc@WurfHP#>eoV&;=m2iTQ*>-S~5F=a=%phw9aqq zy}N<%sQLZ>E+tMxyoT0e#HY;hH76pURwcuD~ zyyBuWhOMZsG9(YLC>Ed}3K(g1i-LHqueMl6rI)E^#jm5d}08c z1onIG*UuuLlA>~u8~YNhL1xx;Q^}E(Ou%-f#4DEc?Kg6q(BUPjnfccna;77em=t%0*s&MCI?^L;$pPp*gPxx^Yl$J+if5M1EI;PqEZ zV1>_;b>~&QA6?RVQN7qsBlYN7V`wqzYo-({Mg(Ws6rmw8ule!1Lf+77EV1fgRs|$A zjK+vHJCyw`*8BLDqzjHR_}sC?Rclc)-A z)iwd3>AjA;1^d`5-!t0}f(Z334KZb3sO5m{hXn$7mKl4!aKKKuse~yXdd6#nX1Fa_ zkbz<0LwFn-ePgJI6Lw7>kA}9rGqKQu>$gjAQuOoMG&ZhMUrw8Y`7v)rvi(&A@gfolSU0)ja zHK)S*1=gl<{Y>b9cT%zYEfm|?BeUv7E?S9lt?S?fSMPHRiqGd!P?KkCeIV_zoERyu zn-SUn&f6%y{EwyJ=YU~5NfIi5L3{G3x>lput&aIk9RMtCy)Cl`n5n|$IVqNvrEF)6 zD?~%7t|}RJdOIu2q_4z(zj7ocI-tuJ@ ztv*Eu{AC9%!C5GIG5s|9HkMqr%&7I5Q3j`wRmVIvdJrJD#0hR_v2r(yy*Rhma%?(k z^sOZ-F?t?6zj2O=yS>=NCQH(BohkMQ)Un>yv`h3+W;y6C89FhPSxbovG8ju)qL^W+ zB=e#w$@9V}W}JL*ybJTjN^;YsLnr8Ix&dX5Vs^w>#@{=!a0L;6ckWSXF#n^L@gU+A~bx zX#&0UK2RO5sv|1pTVrHAY zrqaYupIcGHftJn|vx45I4{Gy3?j9BtKHi8c!)vLYbbmb_>Wp+RP zAUJ?ZhSqK1-9B@K#sL#peOq3%yC5J<;bn^}+yEXoZ_?yPVqYe<93k*6h-4rCR~LOe zbD5*R6uq*4hMV;#ujq^`Ck=YSd+$D{89Y{7(Z_X_|M21WnJnD$qmgLd)Tw7b!5GOM zw0L4h3|3UnrbUVL&}voR#su{x90Qiry}YoQEeN^WSEqV9Za- zeLvkicLS50qYZ7LaZo>CYr>tMeK$oTg(eNSUeXlgGKkw_0j6XPrke!$Oo{+XuMOPQ zw92=wq{Ne3MuI!!#2xPAEh+^JJ9)zQ2rWtVP4&rZ4GZQa%Kie9q{WSIei!MblvZxZ z0Wv1Y!q^(}ycv4Hpo^jj`^ycuVX=EZZM0%Tw?vt}`py~O!c@u8-RpM0R6e~qfGfkJiP~Ql9J3rZ*5K6ygiwoE8d8s?o?o)&F9dI1JOq(qRYqiJJsn*&e{??6_ zf9l47(?3mTsrzP_ep~fbH6V3bXTXhaCI75Ch0B^qw^(tBWU)5v#c-B+$VhMLgJ`J| zlxp&7na3c*Zk;+8|D#z*cX=a!%%`wmoe7$RX=wOe(w?aMZeJ*^N`+@81)E=lg~%fW zl$!Y!e>ynLO!uM(FgqSUNBvrLmUWdi8BM-1<;uZLzA?-5-xEG^_$_x_uyff$dAkMO zy!Bj{yVDF$OuLYhFwL)5W<~$`vtHrxnH-3zK_&e&uz!+jifj9q7Q{{fL$xoqMq8#0 zyI70)|1NM6TsYZm%CJ(g+dtkQMUk_2ASCmd6DJLgY1nV`edOS zQb{3aT`pv?bN$nQEt2R}AYCp#W?k9_h6qHts3CgGg zg|=ZtrTd^G5InT!2)X6ZbipY!WsdymG3Lx=tyn(*<@rM!>PUm(6K;|+L6)4;uZ0!_ zFZj5uG=Xw1LPRo?kC}P%d-1`T*q72v%n3p7W_sBulXLz!(gAH?kGe|czqNo64Lxvl z3XG7ijI^Z`kd2QpXN-+jK?2mC8#0}+9ogT$cgBip$j>H1JBU%QnabNdu={kty@Rf( z=l%U{h>hqeAi6R=dVgxwQ14QE$&g64oul#&*4L3M1_cw|(7!^lZ1(X@qn!r;iXu!Z z`TJIzn!Wpm^$gzA9r`aW`ec@U|9WB&DDdR!T-V*r5n(lAhz*$N=+5=5uJZ* zV_q#_1G8^9n;x>Ul&!=v#Chxd$e5ebHUBmman0Q+)qN-!R61Vqhtlv?i+P(skH^J? zDwS0p?#M8T>BPHQ!EHAWGsa@%NA7x*3&4D79w!v}Ky=_xP2r;$N7__?i{1BbTc3Vg z!Y(~3&@{x@go#5Gz70hnYa%-1vqXkDBFcrpff>0G2cP;+{}|n5N~3>(QoL zmwJFslt}Z+X)2+cd3x=3n(<{3F)HaNNCY-TO6-xJV7HYBCs3Htg*uu1u(f9m`DcYbYE@|n0D8~OkXPNK`v z0+>x1jK{l5U`xb@c_ukTIc83(SbLy>PY+ks+J$mE{@`I;oxCr1XP6%6&!2Zg=Nk#X zUY`!$o*`AYhDGCp9KY&+KQ)v-$qi(q!$fDe_rx*VEGeKYNGsgWtu}oG#i&}PMk2 za_-$3+f7D6pU_)|fM_8&SbDF7I+wd%Pf-tMz=u{i9v>!^R_xbT#9=)CYByfmu-TxG zpI7B7_}pKoX--+!?j)Y%HPd=Ce5r6MxbhlCRj%^&M{$g?K4ET_zAa(t8k=6k+cu+1 z=iQ#dKRN2DWp9%B&wprD0wXtVKP<|ePmw0`=utro-bu~M>0S#~AgN7diBl}ZT_A~+ zWdLP|%S&=T&u@6rvaIHfV8^{N3N~=vg9N$TpF!HPW)@>6>uw9>t|O0)cJ~awZZ&el zUbi@}gnFW;!b#!6`@3aU{(kMyR=xedIh%Gbni3`ePxY?9-iXae?)jj_dUD^+t7CY- z8uigl?G?sXOLyXSMNtd8^fMHRjKUQxRN3;hHvd=&lhE3sVpdG>-dr<1l7yz)+Q`@w z*W*>sz!zYwV@zWRA!P{?H%ELTu%fm?)r5C)G)`1mm2fe4E3#s)4PMqNqXq6FMXUbptJuTTK^B=WOyR#n!aGU^qVd_{wPH8fe{_x71{i>iut5ND;CEF^%Tst zzOCGUSqu48l(t9Av(a9NDrY;c-+S&H7|Ki3N7Z))PDpf7Ys$IX^xJ$Ccud?4f%w(@8&8xTF>oiI z?3IYR$?#AMTE55<#vA?^<(9(HE?!#x1Yy&(KfzOxr}8CH`3>aFH(VG22^Q@Ab|Qyb z+q8P-4QJ_;P6hd2Fu}8w>F(EWQK)G*ccswhE(ATRMoF8jXaDayr-T0)G@FBSd6qt) z4+|3F{3gSTcC5T)a_5fGNcpF=8WTpoWdvWwTrd$gq^K{dA&xXm7@=uX&%dm!eZPr) zIlAY19doPXjI9I5Tl!CMvedz;?-2H+=Mz)v2Hz#t8GEP_RB&@o#W+gBUJtNm0Dm2@ zc70yJ%-{AbgMnZ;K$@kFA-*#{0I+aGu26gUNwdZn^V|vU z^fQgAefrJ56K|JDG4tVlS(mhE_o}gumta^F&_SE2{)&CISqzlz@W%I^wW&|9p{+gDJoZIqQ zt_HemTZb6n6;k?h8;rIw`C=26(vJ#ca{Cm9WJTxmajA6ciQkiF<{KU!u;njsq8RGP zQ+_Gi(m(Esf)E4f(m!0)I9^EPNVth*mf5(T0_7`vfAVOOw{a&r+|W$O`Yekw=CRYV&s;Ih_uHN_U(!sen@Ut84++Zu z^+iEKQeNHA8~gk24SNYh~h!e?MzNNSu>Vt`eG2P*ZZhl6CISu9VI&)evw>?}FTY z%o@9{ZIj%gr<*i(&?VIOo)2wZO;$Jo_>xCASn!XZJwaN~$>#-dOq|O7ie;V`Z~Bh~ zDF3}j_<7jbI4~^?=~%)ZYv=CV?%vMp^7yN;w>C*Il#P zq5^t-BuTSsg!*B|1-N zMlVVTxaRH z$mh>cw2btb*NOFoCV+T><2!0FQhSN|$cUZtGxXoriUbXMqeyL^568HoJafC^De5GPmo;POv%~Sd=%&Zt|$V$qL%;yo>@KCgd#=eo1=3_!#}A+YyU_( zo3fi}KeE2iYl*)0TV%}jAtBCQkwfCQamD65Mk)douJUlLI5sc2MQYd_yq^4CAEFmf zho`>=$6HDXwxU%3arTtZQ{;X_~KYo9Q@wq%a&jcUw8@8~JN(Px*9z*N15ziXKzHICeZKU0rt{r8pY0!|Nuwx@~& zeBl7|sj>FM?3~=7;e;DWpDGDr-_>ai~;hk4}3oT`%1R7K3Gmr06NA{H4jD1--kE>e25z} z&;_5!bpp*}ebyRUa#9vku~ymYYNS(foa$|oz&QalSDJqKQEbLN;n01@cZsuV{jwqT zDTMKnQ{;dghbIgDYgjY)%MKE0?Hb1B1z2D_xjk;mn zGfbM!6Q;sVek65{MKUNDGiI09_5BZ1z7osDyEUBb_VVrn4OOX$>ZTS<7ZntvL(0R2&Ph$!|M%dx)_QFfTGjg=+`q+VWA{&hs9BOFH0By*Uu^uBo)@>(cr~<}{TC1gcdW6bQ(@7oae=i#1=LH$@P=eV=)D z?e4g%T#gBy{1((OX@}t9SXO?yrksx_uda4B`X67oYP6CN2J?+Ng?qO0sgt$8wBH8+ z@2##1H402Ow+Sjs6!)Mm{SB{iCY1)_tQ@+}-e#@tLN32RV&(keWZ?ht^yT4D{qOr{ zX6!qOu?`_ivZY0qnUK9Ksca!b$ZpEcjEIz7p<+b65mA% zkw@*uD`^C#XpMhmuquqYv*NNh_Oqq-RA-*;*uZJy&PLZ^)UMpP z1DM4XAdswmVT`rEbM1Lf>-MgrR|;^4f&ip^#;t8q(KesbrX+8_g{sAmnwc`{Z^paG z%TF~Sj9-5%C^WzyNm@>vw)!4Sep>SWMFaD%z%79UVIb2pIRY?=33u*=LSlPObTV5hDd(8?|3i%>PEs0>&)Dy4w*)@c>##B z2U<+@776jGo z6R-GUp~5-!XULaAaF|>%xG|wZuKLvvj_jVfyl{8CY`@yWXDlckqyJwP20+07>j&t{ zX#L%c%^!$)i*11}P{2(DOYGk%aPz06aPkY+zPWu#DB4iRa3aMDA+uL)@g#1RpL<2- zce@&pDjwn-vAD2Z%o`)VmE_Uh`P;|;b{B)mke!i7WWYYoF?4ha$7^K~K!j0j-gXL2 zI#>qC4l>|IzH~GxEm?_}b?zsc<3qYIswv+{0v~o1kyh$69k0Ct2wmzqf&q=Qzlf(z zpSlZH4Bx2{0`&+ly$ijc5O>RrAooWmc4!D8PAza}=*^lt;0nDnNaUo?0WWjC)6}nD z5)(uskFDH2^~0TtGuBOa|Gmlfgqod6|0jP`?=F()tm5}pPWNhILqmUNy~HdbNB7^q zKe2hRhk0+O%;J1UH$%Vk(vnRtzZ|(phppJ}i<(r1V$v6xewoSqNq83Z+Dn?13Se2Q z@S_BsaD}5Veay8NM_>xFM?#N1gtTR^nbS(80S7X2Np$l7w%oF0W#2o^2-k!7_L0CxVWXnH>)c5`64#mTOAYOEHCw!E#(%5$BgB~N|XRxI75CmoF^RL?p8V98QKf# z`N2$$q1)WIuaT8oHP&-lHs_sqPcrpKPY@?2!1|vctm>>&PNsks%h3}GJp#m5?Bp9k z9Q*`5@9YrpA4Da95EZ))dhnKBdZ#|&vWf^VR=pICe>!|(%7C#f{NS#Zwssu&EHQ-> z8jqXO_|_}e_d?9DY+I%$Z3C+;v(~<2`lD~!70%*!=4Nc%OwP@8i(N^T9jv)sAJA35 z%i?FRJIvfny?mKF7@`A&K~akzjmdhyN;&~kMcfLPV$VnniviTK9jLFAGWrwFg-j)+ zuoN}gl4-V|3ZAj30j5cSv3&<5fhj0Y7i-BAdxoTl`BLSp84`KX-JYdquFBC;(v^Dc znKghM9-9}=yUCZUukxY-CVJ%ho4bgEDb~QCAc&_Y?-LiwtaY|r)PlLoo$+x;yEj*? zW!feZ^3eMK!HY0KP>lRTxhLl6i3-joGwhF4BZ z56Quq?9Y8V%%Y=?_~ycQsjwft4{15vnN;Rr!+#QPp}_m2;|=!;Ij?4?GX5B(ZLRKU z)+ANxdM6xgios$&uajIOwAjevb6k}9bNDKzr845?&`TqLtP6e&pKiR5?ddW9#?2S2 z&Z45C;@aT!iAo`}hD#S8e}_D&gKzcyTk@m&!RO*+Ey##6(`Xw({;G_RK@(NU&5At( zp7uAotMZl?JZH$}e^}e~McENgvotT>|BbSN1#S#3jc10cY?s8}7x4C%nj*$Dc0?e9 zxt8IkM=12cv*or^H<@|J&7nk4f6`sUY?bX%+;b4vyLaX7az2K>w@Jzi+cd=Kl3UY< zcwJ3)!=3c5vRk<#@Dr8}NB9Vw9hAhDNYi!xBQzVAvg1h4`2*9m;AYYH&}IX0g>idVbP8ac79i@RNgXJ zRWon+TcryEnWDJVSQj9LLg1BK#8>xpsh2|)8n*j+nG4%yvH5O5ND)K`@Lig#BSt!c z0n5#y_SxZRi_VA40I)Wviq(4R$h`LGU6jX~>+tP-aJ2R6q7{sjAT^43)1HfU6P!2E z>0^~jMws;y4zXw&jtP5_U@#$?8C z+k%ZYcs#&Sy1&1Fh*HV|52x+c0LSuYe6@SwxOK&>d*S>?6bFrll_By-C}%` z!#4?UFKjJlopnH-!n?B-Qtd2F_2iRP`oZYv=!~XN*-E*khq7kjK|f24CTQs3NF>M!tFOu~No$)qQOZ za+7I_1)^vn^<%u?8MJVNk;{Q2Q&Ka64s8S$bi%>|r=^9s0Qr>uU>t9f;;eWI6cjIC z<|wq5sWt$;5PG|Y>WE&GbRfB;(UColMK1Y2wuaANnlI3F6AD!4@>0vWr%6fmSrVI;q ze$Vt<8g&8=EVS7uHitwOW>G@gD=ydZ^sk7dTXT8iU^IUXxTXo7R(GUF!?K|AnS$i~ z15Xe85Occ-^7|coo;Ms)eg;G=FfYP&Mx9g@Bl~k}!f4)jeCO@mAEwT9zV#fPJ%Fa( z`Q<<`zEi9k)4QI$tVq)*O|ZJP!oTOSPluO8Fu<_RDT7%^u2|{W86${4e2Ve2Q>QOe zgQw@+yLTY*#|6G}J?gfO99Ugcottpm5!|7np>Yv6EjWJ{;Z0BehkC3*{Wvm*wAae3 z7G*6yPV%T0e?dEMeNWX)eg~>m2d?DRA*#qOSc(*6iC-Kl{pq5?V|C~5N|+wRfwjL+ z5v4mYVbyl%z=Igc37G8vtl(y?cq1%K@&bS=<)vTGb@~>Rn9&We8^(j05+ACEq2?S4 z5e)lfEQto1LR5E1qx6NC&PDE}f{*>E^p88&E+5&i)*Uv*N4d^z*>&?vWngaxezB7{ z|Mi-r?1!Sp%9diRQl{8*sB1wB?_K2{5GFh?1yV&E)DC+Irf+ccyT=u!$Ew58uFcM& zH*tiATpQAXAt5Xt_Mg6e`{pXgfyex|B}(6dnEbs3b(Ea0U87kdw+xV5CHa_ejy(d} zY&IXG8_o!BSazpZD!05|)ud;UU2nuR+>1DV-MHMKi`8HSCvoWx`R>khnw2THw%fN9 zmM{x$03Us}cCdR_*LRNQLzofJl87{bi$8wVRPqEOVWp zmyn#nPEDvL1P>-C^qbN(!O4%3=60W&ewmzT4aJC@i~xcZK--DB9TzoY{MhqUN% z3p&UwX;tp&VuV?C-9hrJ2dBzD>E4a4AxVa*`cfVr;zqP-EYe7?023vM!Pql&oIG@P z8}tPVfV-gUh}4>zo!Ylc7tD9AX+K{)z6NlBjZ zKMV>ENELElbiI+|eHN1nC^SQBJ^Kn|%H!G9=95QF)M+}^uBdL)@Xl1Z;IBPyMmT4L z&<5}+=5=Z&!-^{SS@NCYEK>6fa0^7)E5_vX$*Z!olG!&{ll~?sn=OayJm3FPB>z_G*MOX*5ATPGnit;R z9Ctt``{?eUk<7$ey!>g(7>|C~by{r;I{1ilE$md(UXP2>f*$b2u-o^LxSJ$SeF53B zkW(Q;9dR~0AfV}ctSL-U$L_LO2_QC}4aNX8lDX`vn(UrV4vHMYjyCn{?CvBk*IjvW z?NhS>H;gqlYhFeUsxx*{LWX}zQB-gz|IlfUsWX}dK;JQ-;_{U!26ZwKEEeE<*FJ#a z)$TvTfzY!J1l_);o;qJskezBt0d96$gP6PHdHeQuP4wQzoaLzto1$-)qaFmCD84IFWD{Mv5X6Ft?k`z2c1L0ze{SEt zeEIb7ShrRpF(#mvoi^X_U25ujXtS4i+vfKQK)Gad?m8;~1crxu^RP3cHu_MeF~+^k zl$Q$kUq2e96f;(Y@(n!9H@>5AHql%Co`(A_>6I19k~6u?3u%65_w=&pm?Y#?SU=i9 zwbq;Pr?}u1YFFOze)U5zx%oN^&?52hyng0O1%PGFN%yi~#{@EB zIt)Xrb;ENiHMEfVaD)vkl+1m!r6au_Y$`x>)?9Ihiyd^N3O(p}-q4wdQwRUWEO;KY z>E51`Zch<>8*EYfA2*vO(A!XOyEpo$R-*k>(Z6{|WEYiy6QVXKZ=WayUPkPeq-JQy zyZTk|{?adey}4Y6_m(W^>pCp=ZKC~wp)h)Hy*_8FFS2!=IH`F7GpKptN5rC-J`aoJ zWGxqa6pJGoriaOYRw$Q?ubxR_07sN?(FPFx+16&FN;m@l6P{)7bHQ3La|;2B7FK3= zWskpCcY7pTo<4){jq3z%$|}U4+R`o=Pj{0t*^iCRnYG(k219zr&8x8Nibn6PJ`C+# z>TCGPo2`CSi5Drfv+j?XA+s%Bqcz-)N$8 z6l}S!|AS*7@f;W$D*smbGxz00_#2!5%{X-&;AndP+}zwdVqMOkSX*G4?+|tQl_oGB zIf+J_%<5^zgid6JwvY9rWoZeIF2zA=N6(P_%gY-vy?(Asb0x)y8OnO2&hl=)ArA(m z8O1_WSjR)l?tg_LnSFCOX7Rqbd;CD5R=y?uKQL9r*Wt;Dea$Vyd7(CJmoB zxwQ$i+SA?MfN{O2q7h0Rqy(lIUT?9o)U42(uE2E*f7wDRNUE_-joTqzSF}nGb6~F; zakGp#dtuhn1mqE=(E4{Trg+xrGJmf4TdpU~xEMcJT3T|61aFr<5BnWAv(|<$+N+W}cGHR!uhSm> zjyu|0F=^jov#o8uakE|`E*lhad~5<|b19hBkoThpppFJKk}8p#Pk!({;2Cp*+^GBN zBHRaBmvrt0fwYCu0~MXN`vOK+DTv_$H{11W^V6anGT_6Tcu9#ziaTQE$MBfxF>^U%HfjUp#W#N;9wIT=X zfcEgI?8JM?(YWN%NBnmteZ~c@7-*~}(o+{E7u*fn?HpH+8)x)<9i3z);j?D@mzRdx zyXStQ&&Yl!qFGx*oAM?tZDI3Dkf48!u>d%#|5-C))JPs!m$qX5Z!~`r)I3DsN!Z(F z1tn6jl9pa+RB2ui3ng;w@Zkj&YeG?XMVnw&}uD)7D~p5PgZEe z@HWzKxGhBEN!9nz&EOAAFy(aT9GpO2Xd+cGJQ6(^{nP36`mwkP~{RE&mSVtp%-qZqH** z=N$S!E@-R1v2lM+HG09EkvjV3IzIlA8epM2m$CmM)!fu{?SjW_iy;P@-U3#S+mVsf znD?Wvmm1&VI#%AtJghhOV~OY5?_xxZ()X%ejrYB=vM;@ya3La0$)Mg;cl+!b_s+FGxXJ%%0n#fYC@m=| z2pQV1$|)MilS@3M$3@+*Zjze6n@ zzK7P5&*+!bu1ecBA#(esaO&)c_a&M`2O>W`f}O!0xUX!Bk)w$*$rQZ@QTJ;lMETQk zm;i0QI8-0nMew|76V(e2y#MCY)`i^OxO5)4Amt_Xns5F~^Qasxi;IaR;d24jGV^1h zuzp(;!-fs#E~VC)+q=YT2*FK??5&>NW88SJKI|})x5Nco7Rj1suo?lGYaYkF zTz1no7`5=;w2_qsr}+6)%^M6)9wyzx-jZ3$kD|*;NSt1fJW+0P6CmZ4LyZ2@D1_rF z0!#^bf&mv~|MMJysx$*vt3mqN*^if?EXYc3Xi~!UE}{ zTK2?BQdfeLu05WmkqXMo!3I7g|JL{M)*8p#olNPq#K?-_Cm~(U@IB!rkxcH8%t~JN z>VTXGke44FE!I5toYa9S5m;6H+~h4PC#sgKXR%0-E~jHQdb`nh3m$<=0NG2n!7c%H`(Qs*aA;N23LQ&(@~2M z0dC-U>~AB$mZ{L;h!0`KV|x-rXE8AslQacrO|(_BV9PRooEgn~7or5zKf9C21czrb z(%lgzj~}w)u()K{YbX7R)`eDURzlb2MD?UWA2m&T{sPJUUegeHVm~%#H))pPYE=aZ z6yFF}-rxl&Dq0M_E+p!pae)J}JNiEnLfK6mTa|Jg*nj@+-jA~4=8M{{s-&8ZDez?|f zcl@~AZl0C!@iJ8$-+^ZzKEHjK+K1j-&;vIi?d4oyE;MYeQ^HC0kVw<(jEO-+7F`T? zZn`ynt015ZTDUn>H=YXxD$;6%PV9<3=_)9P9H^8@o@4`=ckkvGosoap$qgN{BGXYb zhWsP*PUgjr=TEk|Ri25rn|w+^R64wA+{L_wPHmo<)rm?*Pk{$YQ2Hcr73$icBAg4d z;1d%QTvuuV+(*458#+WtoB96+dZvG=tx7xP7&_!)bUG=9#UnP1{yC`RYyK+$Cq7uo zr9~;^2_Z%rFV@@Ovh9ly+u55TPSLK{Nq!^}(@6O1r?uQa%AR?)Vr6Q7l3b1NLuw5R zT3xnv#@}#Ba&zbNKa2KmpMf}dp8@vXI`rv9KX@sLwfr-Xam~l?#+&2$n6O_8nJ1H6n_Lws!v-vxRUQk}=CvB0-xS1Ma($WW`w|46~ zVSN2Q#yu(O*Iu6$c+vRwTdc-HbQhyAl^!ysL;9rNg>37ET_CV`(GMpYG}gs@sGe&B zrt;!IlF!4wx8d__mLZ0;iKr*Hm zj_!Ye*r3D2V2h2b`_}eIb=fU0wo;bB-rqubn0$e$(GwQm_%tO=2w6RMCz~%qP+g)C zh@2h|*Lek=X)&rO0Lsi>djAy{uR7U4rdlExq_|=hwrGo|2N!<;Ghn+8a^Y=Sr^}i6 z@asOn?f{r1w5rJ&_wOSUS5Z}M%^>adSuC8GlT$e&tvi1qaQZ>gGB%neTv)n~XQTK>U0R!${Gmh+? z?wkt7X2!d8bG9W>1vgaXXq*Dk*TsR6<2`JErifJfPFp9c{ao5IWv{hVs?a0<96)h= zry$3u4wyf41+P!<2zmIK|FD@-YEP;RYKB>krg$B=RCM!>w7$D-BZElwU(mk52RF|4 z08zmQIUz;;gd@RZ#t`^8=t$VS2JRo-cjqsN`T>T$(8cVtbqfZ_pPiu;iNM#Bw(qW2 zUppql>eZEc3vq;!kmaM-;^`-CC2SB7r9bSg068sWHK6iMQD!B0L`j0{RePwiY-7U1 znV65=4Vw7K&OPHJJGS^%sg*$Uq}JHAs%VeM4`va{c?GGzu3Z}EwaYJtPE{W0@S@V@ zIsMeSj>zw;qk+@Ft=n&|3Q)N3Y(Gcf-avqyZ%cQ1`Qo5cyRTETLp{!0!`r_c(n3ro zmd&AO3wjtq*t8cDlF1Tc=*CAtCl`>IXCQ50<6uJAtpsP!S8_PTAxcNPtK!ScSw6dH zFu~C=YoNuFQqY0^ALC~V3MGUYSFHuHVP*x7xd7JY2JwXsf??+)lk>M8Xn25ibIab# zN%1Opie=?4#riOazP zpPT5?WJa3;Zh&zrNW2`VkZ8+(Js5rPRP9Y(E2XJ=+sh6PXAaZK7D02#=qIK#&i%3_ zBUdeDJy{vK5=XG7J8$9V8k*^tRQ`7KLxy=F1zCH(uU6g20BV#@(#p%vkFBYV>{Xn9 zpXD*y8V+_`*y+kASO1D-*4@{^WYfR8p-@Zk6+iO$jgv6cI-RV%`JIThP_sL5X&4`0+S)AtB^MLJ7Dgx@jAUOOWe;G15C;H zZ7Q0MOAdiN5UAX3G`wY^K(c{MB}v@o331HX4pjf_?1JZWbGWYJ#amq&!nd+rxeq%xL=#?CkD|_6nni=C#Xf} za4Twn82xX;0?wJWnVDm%l&N)L)U4f^|C$NAFxvk1&rKa{{#Z@rp zr(PnGuyu#`F}z5o9Rnr6_s|CYQlH+nYq;$7QzN}qr>>N8zTt8;MJ%pU`YCjS4{uB! z7fY3n=2>$C?&1;t5!l$FMAT$*Sx|gd%mN(T=tgHr=mr+Qm#{PHO9~>VKG0tll&T7D zTBdMK@b&Z4vn|XMU|n9QcGcoQE={06Sc(>eoZTafaOY+MM;t4^YI(k{0h#_Vu@+wT zxwuBf4J-((z+?ff%L7rFK?>}(!++=NI(;2ZKq6|6G01NNi@(Cz_Co!^vqCKIeYPvF zE|;)?Jn$ra+l8?m%VG1Md^BtToRJiOYWu7B3XZA5%_(zT;8sx1@z|oI6*p35(}9g| z^FvPDP6-jaHGN5d6m$`O^}@b&9bRTdQToqqc%9`V;FdppJit|cQq|Rb%o=p=TXQdX zx_auMOm$I{d^ir)@>6YSoWyVA=jSb(0fYErhO`VIM+fxbz*g7kK4kxcJx@}4F&)sp z44h^P1S4cyP3A@Rcq6vE)GLAu9gXO6a;SUtyl^RLM)fr|8;Psz;@ujT_IrdN*=&5j z^Talb3zFmbNv1h@2A_5M(N^~RG3i49XpJE2+WCO0X^_T?vQo}qXOrDU?aRKVtX+_==}QAOXCH1I9$Q-zM|ksO>VPfb$mg@XRqYe>K7V-WFN1u z%Y8~>HrwESI;G$k#Ol1%9M4oa@I)R}P7dE^mIEk%2Au$tT^|jW?M3jkTo!PBEYk@* zX-@hBoub(4A6+KBRyN#MTws|uKM3cF>C|gVjo9B?WOc$%in&-Z#|r`yrl&VDv6(pq znL&D!tAoTt2K(mt=(kMpCU@Xm;r z5os~NYn*A*?&}m6^W4%g*{?GYn~bow$o7bt^$1Z5arLjh_LZ9E9Ch|+L|X%;01q2q zivsXNur1x?yr%CFUVVpcpoPYIvaKcCVUo7YQ+w+25PZoAB@iR=p-3s?eCxcA%oA|_ z=CX7kdcZPCv#pm6=+D_3r00zcuEoaMA`(77J-VLt1$h;+rLzg$BgtOd*yojH>|PI! zPDt!~ z0TI8|2L(JokoeYruUTQ|^Y->OwWp_N@(C$ClfyMtxQR8)bUDA`(S;|CZ?%(<+qeuG zpQ%=S(`S%G2(s7rH@O#a_OanvqkiyJe=7@B$(*%1D}Pddt)41bd06k^#1X~bx)ROv zRLFGFOM8k|SLe)~>Y{Ys5v0t3{K-273T%S4Ee0a=T(hH2L?;9Ooo7yCOp-z!ni-pSh?WZxoegCzmToDhEvN57*J-teTbn`6t%T zfmRgOW=dUW?wopOS}E{H^ibDLzFnKoZu==x+X#sVmdv?1$RPjS8}i}Q25VexiJy+v zOH%ikR)280Y#UvZULepcCoi*}sg8YfCZ`QLMzzI|9{Vup1?2dQ-#qwbyZY&O?d!Ye zXYIdLk)n}n_`5qaHbM`JdcIb+)5{@I_1G5kNNtg3$m*!>XlpVfsEvW$AhR?x>O0bL z<>iImqIN1d`@gEyI(NYmmt-gQzve2g4IKEjg3*V)n+GK}V|@yTbQc|yFyMCMbJGDp z2tMZH_+(G~g%UBiUdIE)nxqvn2bH4GLG3f(IFU*}b21&GZd= z27Xt8!Q|G78&+K7CpYMU)e`;D- zIU0_ae|L1PU#;^NaoXTAut-Bn?lN9flG&Ejl>tUy^gP&fBN;1T#*;AG@8W8j?O%rZ zK6)CI)D@7z>Fwy1o#^i~&RohwA2mJ~wq^{^>l$54q(5^2HfO?8QZLsxF#RA+JoL67 zR#8z(b>?<%zhyb^ac;JL%VlFi5iyvxJvTzfzYwdZXzluw7-@Nk2H`pci_lQHFm0T( z{X7X4WS%7e_3o(?*bTkID{2XtEH!8px~^yxNl;n_(dB%F#F#t+iXSC=aLZ!M*@i#x z8ByE6OZ}?W+RiQf&^@V4>M+no=4JzhCJaHD(ZXcW&ue7u9t}l)DKg@Xc6_OM(#Y!? zE5Y*${9p?DG+Z{U*%=0GB^O=d1}ML;)6>B=n|hS(>!vt3%w&DVvPKM8U0uaT)AvZ< znW{wp!#%vIfA7Mm${6{S!-`mXfMGSoisEwV(odynEHo+D+7^#a} zdjVNUJO(W#;A=ky6`y@8n*NaKRK@wb5X%0hMvJnv%RriBVx)Wg+q=+Kx<`ooJ>VZKIM zZ@x>g{yd(cwzwoE;RhYfeUzep&2M$YrtnP}MZe4c`Ji}thR3i?3il_$G@VbQgh4}7 zB(OETvp(YcT?E3HY{w|s46Ctta=VV2&Eld9nK$8t0 z*uZ5!g!mS)n)L@QjZqVBGRy8A?48rMOgbjFv6ZVN5oqxQ&i5T9S`U%pT^^(wG|xF5 z=9429tL9K)z-+vG@TY>!S~c0#p)*old)(tC#o8~K)ZRGUCF~AH9y-QaBpyFw)llEp zg>^qr|9X*bKS?ALCh%Kmfho`)2?BahrWE7iEfjuW7%ZkB$p(u3^diH)g84#>fw|zl zSqu!01_y`*7JiK1-ZKB%o{uy8`w^I+p!KI4It*5~l|Nzp$xRb5;8s;f<6AIF;$vpC zrt@W`c8qNAk14H%Cc8=aNA^eNE5)bswsyuYG_YKM(0NZ?z=$M$?U?*W!TF%hi1x9d zY2}O?c(~<8%;pPPg|6kkagVnfa?Hi7-LDu4wlbFFGP!+-^Luli#p3)qelBjd2I(5*5V8!^ve*r8I& zBe`qZ-ow7hf8YG@7|54kjjcydSz16QEc%N4?Box-bF7t zPVRG-tyu1-UH;!y2$J5>1s2o1f*}xWJYg!+%>n+>MDR=k@^vekwSN5LN?H* z#6H%?q8$AzoTd;1gsIY`+%F#kNU;@!w`vGq$8P{J(H`%8gilO>0t@C@wDscnTf|hq z@G!vm%Nq}kPOy$?Hg4+}`I(_KJV1$Vr*FO7|e0 z1#!@iQ(^n~B;i2Nd*t*vSCIa&Q^x0keybUf7wY{>m?_nyCHyCsi#tE4$>QVjDHG#NS6kn z+f5ghcpu&EpIKZc+xQ~A+h8c{EAYC{p6klO8ro;)pX-R^y?mK@?)R;W5A6oT*>=Zc zyx3wh8Q!Qaq;6_#0*mXNwr62y1;c6_Xpxt|JC939`!9}HkUa6%0aXXyc@Cv?D`vpV zEQ#=IFvlxtf{+Zk<*Ot9)U4E(p^0Z_f2acf;v0ZYJP&Z6=Dn4vSMq_de9NaCO~vbhV1 z2vrJub~2l7ZI&C@s@q*%^J|Fl3^>yhr3yxO#PIRhFS$IA#k}>L8 z(40F)UdToM{n(2}V8dgRF4=QGqh0OW%97qTQ3MuBg00cX>*^b-ex585;|t;?r9kmn z<@TV)nYJ@w*PTRw7590#6bQAxXQetynE|$}vrQL1SaJ*44qKACUL4$td92f; zwvsNoxYVT0qT7N}`3G9CEj>R|8)u+?^c7vmD)j%W(eLb=ol1CWQ!F@gR z+rQ&fIzT1$F~gC_V*D|0fgLS{J;asF*(@qu=<6IUCqWPNuSaLPZ1rwhDUrlM=Q@bt z;wG;}MAw6&huc!4pVd^EE^~TSeGHc>gShp{mP7I|U{C?571tY^06O6y_+bn=N0ac$ zf8V%Z8n+8=@hT(OKAYiG8nb*p<%am5(WIar3b%c^>J5PH`o+V5E+Pj~(Q*mA>4j_{ zz!!T;nSd1NPYF91M|bsD5~h2go#60o28HxQnZ!hkvWz95kVP)h=|wXxxT9_?y3aQ@RD^F=}G(FJP` zg=zRDnCmX#lKtP{CI%H;(As*tpr!mjT`(&zX##Pp_Zp}*aVpQz;V{{^<}uf$0U8S= zDq9y2$g7631;SFCSa2%>ln-wTkAjRlPNm2&H zOtO~DXA2HRBpsN`>fAjra7|Xc-PRp;tyGV>vwD4p8m0t_BRH{fzbZ`1FY;%`O80F# zPhVbC-ywoN?_UE!igl?(v9}y-E1Pd>YEMYcoGBHsdX75lb`#L7?LU6`CMb;uH^8Hl zUoGv2u8h0<=a$%=T3`L8OhWV(srXv zeB!|=0vD6|3~&tsW&8v+<=oP6eGO=G&H3|x4K!8C3-`t3A8bd^2(6p>6*uNvimDcFK(?!XHI=hYHOMPmhSULSK3=6`S)6G~k_0~bIHSX;f9Lef=n-Hju*%dFS z5|!%FXmx&vB^1p>aP;pFY-&(z={yZOUxh(PWNItVu^?WaPv!b-#G&z zeK!7q^q+_&*$r)@11(dMUxzQ_Wx-rQ+Oh4TP2LRb;vQ++`VKkogarh5MV-hR=HjhW z_Um3Ev3hep{OE&cCJ~_pgH+yr+BcC!#q*bkq@6d=uFK-Dew52}s~-kX$m>q`_%1da zEn6w-hB$ZjltHKl*J44RIM7N_?#bLdH^Ew7zMn>Hj--@;o=(lT|3p&v4}E%d^&LIb zXN8>JbiUrQu1F&yZ|ZoXr3|X{TagjaGD(J?g09Vg8D|yEhW+2!(#_~4aA?Hljm@c_ zs5)`#4aclmMpQv9XGV;(u-R8aPuO^DEY6f3{=x1ZL?W`^-vyj#zdQ+Sja97cQ#3-- zz(uKxtShCEw#WdRsz-en=n!`p5R)z|ml|YSocFxE+@EMWdYF^BFg~!-&hRjA+0Vyr zT-r3%# zC)x!04tWlqo^&*aX6{kc(v<4l6u=5qm1mv>my}KtxTu=qu3xjv4sBX%TztPib9>`8 z1Ngv)%jGYWLYuQB_lsi&vPr7Id|zx%ioh2@ACFyaD47X*7n;0_fuSn$!ssPiydn_U z4TQ{rv_@LC>L9n~@dcNyGmj3?j%F={KrV3W`-42P^F3PLmnsXVs*|!E1U)Y{yLUg| z^XbR%EHv3P$oiEKW0u?NGSx*NiQjr%(g;1L5PuiRnz>$5u2eDn32Zjg8B3jT5O#<5 zo+NH<8~y_#VbdU`>i>5d`4m)hT}twrH{d@;a`lL8z5MlLs;2X&o?iHRk;lX_F&P{6 zcS`ae0w0B_6*K2t2Jh7Tj@CC6bj?}O`y)*n-PG0Yg;A?5lq~o9>!b2m5f6Tvd)O58 zYlY{lce-2bsMd--hE;6v?IBJup$eO32IK7rcysU8P_PVL+C8=BoP0|%;{cZ4sOmfIXD(AM9Xy=iI!HeXmT7gbbLj zk35((QD}3z4wRvp4IuNmvmI)(6cPbVJ!5MEUeadx+v3NLR#Gw=tw!za+U!h#g4Q9I z#*0#fvMNUIk+>s*Jg77SL;H=+!4^|u#G$n9(;1a+q=i%wYhICIHhk&)ft^p`pVQ;pvBSHtpCV2ki)wwf&!~l1%~nIVkm&KFZEPi4@~jkXZ6`%mMHaEVNG6{|ikU*{6|kv8mjaRiP| zKCxnOqBG#sQx*Q{O4AC>n0e9pJT&19i-hIaMzl9GRFlh;jrH|jz!c(`etHbbL4id!}fR$buI8rBw7$gFpRxRQDOFDI~wu#M3A9t;mPKbppL9DZ_YJ@ib&X zw~MVU?fEQ%aA+*PbLG*chGvX^dJy9t3+@-Mjd^y1_!E_^(3luK_*6?1<5C~`&E4|y zv!5g#1gy>y>`ZXgPE%#2Qhzw4O%&4<+2^}C&s*!%m)~_;7A;Q4$s8B1Z)k3g-q|A+ zkUu~z`2HjRI6By#yxdE?|7nCFjse^rRJVN5%+tzdc z3mmYY;F}~H=Ra=hIc4)BHERQXed;W-uSX^wmX;brhBiBNUG1|){O#b@P@wn~gvAWd zuu4`-?2dD$gxD$m!DCsX4~^ZXe&$oV{dORmOz3ulZ(F>t;tPN20UJxW( zxP8lCWPLwzKRJUoRbz8Lwnm5nCUbq6SAQx`7|{;9+NZl}pM6_)#)Jhom8&Uu&gN*K z>5T>!n0I*JND)-bTzhq=ioUnzXbt2cP*WbINE_Pj2~p5K5C#HJ_3I@slg^%*eqj${%FIAw5Jk);k^Wlg&$gcRo)d^xB*g#1c(6oP zcXYY6)dw~glDu7)iXE%MHsr|hpdM{dAy#xbAaU<|o<`{1m?Z0TzEB z2?0B(<1xg9gU)C#=iQ-kHizo(yyRq?z514#v^0oE;5V%^)UPaL-?Hv02-X;QUA>vk z&JZ==&R}`Txs>K9zD+ch{e*;__9KQl&STr&c;s>(En5*;uF>{cYr_()i7M0JdQUrc z=f#Q0HI+n5)+RQUEHyzJykih3Vc?R#&N_#Js-(K2ZJ@kke7mJ((iM`I5!0 zDm+%7JmUBuzP-g{$I-NWLhT`jh5qkHAAdTgS}qV!^&8|~|3yEDTH9&;&(DCw)Yzj> z-A_O3?$pZZX{wa?)(bbcpLEL0D(FmPPWN7>p^=eFUl5&X{+RTZ^aCuZ?hfo+#TGcP zjw_9yxf*vVt*tDU2QCk6hMErBA&Nnqz&To808(b;>R} zvCE@RfIg}S>x4GW&(#N_!e@bR#pUT~jZOY>W;Knw z-0hX6`lH_q3%P)LN~H_QoI*B5h>mKC7c7gr!MJVH3To=>>**CBp0>x(3pG8o$W65k zD$lG@sUfc<0t;Gn$MRGl7mS9!W!!2_mW7<<*$J5qZv1YN=o6B4Fb}yTHfi)V^t}_E z{9$$+M$RJzhxG>-O@BN(aUrj){#E6y0}kaZ`;0N)JN5Tl&ticJlCq=y=pHms6K74f zeYgo)_8_Giy#+3ji;wj5#Jz!I zVxCMobsEM$I^{@l&<=6z-#>ra_9kd59yK43?A# ztpmMg)%W}x{No9J?H!C17_Ho4WZ`OO)L#V~?)@NZ?r&-D4JV*~7kXpds=M&%bFmx+ zgk4L&kV27pp7HZU3l5anA6*y)n2Etc|L z%@+xIf(KI~1rL$rp84yv_eoFcVcWi>en9=#UU2n?euilEQh5_-;c{6;??I02Fy`Q|C;sHimz!)ZZ`*BYbbWcM z%4?su=*%?Gcz1RO=y~Ikkv*l@Ut243`s_WpQMSKLwn+j(aVuW#US9e%-;q+W%#7#< z{v8kb;9sYvrr1{uqFb}b;9~2J6K{N`$1`wo&giLX!whEV0=ye#JDx0KPzzx|JG0ia zXE+cTs<EG~}qt8Ss;a&SCc8QJTe7%rd6`+!Jqp^Z^^EMxVa^2+fJ*Y|C-&a*i z?Dtii=u13VWx=k^{=PmuT*=9gE*%hhijkR>cqJ}yT)gaB0X4ynFV*FvllSZRS2wHQ zALNWKpy~eHPk)ZgY1fT{PxDA!v9vYpgF~;sF4n_{96Rj>Q2(f5Sn)vJ!&1&s+f}w9 zQi9#7*p7-%aV`^H83$$=Kw7!*io4|YSOh_irELQ-t=FYFNp@gn8UgMwf(2MX7iCw!s zLv?%MdyKBW%FCPgaJPuOt#BdqOdAK;-Y@e|B@Yj^y37hL3n{YwQ`IHOaVy$A?hJD+ zL7B_;tVWBy{{D#m$V!sP1ykeY{5hhe`?T2C-d4LPG}}si8~s|&>>LTruoj*z=ck7s z@r`iN$Pip$xd0}ywDew+-Qp(+3^+?_8r}u6O(T)H6~x>VZ1rJRbFFvKmhN7*Wh!7` z+Y=l+qJ-<|{zaBF1jQvK7e9XdFlO)GTcO+0@y|(dc;F|t;`xsQ%*4z3g5dElDJ*Nu zfAy17b6NTPGCvcbv)L8O+Ujb~4?YC*R^T4mu4KKo)PJC-H%RJH*1xjQ`IYdb-^4T8 z;yoUn9gBakH@ZWOcD#Mw;7?uMkyYtqG4ruxX~`5Y`aKZ+v%!wiTrGL!n+@)rgRK3A zArFR`N2o3<#;dQR!W3NN9{p!KA|Z5!LDO2tzjDf)AYrE2%lSD1ELMAo+wl8`Q?^k7 z1vWLltB&D`N4~$CveIXh{pyY~TQ44L{bCE4Wf$c7k zua~&;4P4(u^U7HrTVIRrRzK$8!J?LoZ8dL;g6L(&7z=`fqsieqQ#gH&QEZX9JYbP+ zed6J^vYjf?w(?l24Dub*{R48Ck!%XbmwGM?rT{vKtkLjtm#S(zI`KDp-=V!_ndqca z=}7V*Vg|n^68?xh_>jIL7VCT6QP8nB@GK0P@0X>!I=^r8!v_Ql?x_HpVH$CZ+$&2qYh^@>^n5mN+db-h+m<*E z2Z7uc2TiPhKsfFFHgV+u3GM5SlvYphqY|Tw&$+CA4~nLan7Iygf_{4A-i_jp2L2w_ zLg~@={d1fI;hU3Wdm0H>d&}K~V`?c%c$&B9dalO3U^-K{W_v>Ey!I&09<^3xn^wI2(Hy7WNY8b6}~$Xs*U~kka=vS~W^w zK0_7*Es#ARSV3#YjanHO3u-5`wd>&`nD4tB79XaI{+{g*G?oY}#)#iHQ|N!p8XFny z`LPNAxyUx6yyu)Vhyej>-;Fq3rp)`HY>m}ld#JczEWVPZPDfbu^PyBVn%gW*VU-5+ z^i9Dr89o>|5faJK^oKJAOL$G@Pr&&)fb#Q?MERx5GrWIOi&Y>Dld^Ecm6#r0bLc7-0tl!U4A1Y&Ciws7Z70La zE^&FhNNdQI(s)a@^XU6sbQ4*a^_Rf!-EQ0SAmcu(JHo4tZx*%?`x6aO9mcz4NP-&b1CX@bPIcqJaIp-cn>u-AU8=e;?lw`WkY42B$r&xpw8SJrF;a&dsFHkfV}&hPobM%8FSewPPyL8PcC3K=qtU?M>^WW#-wIVl1jIj-MR+>yRpWv@ zk}!XIS>Gx_c#^V34J6L}hL2{gDz-x)WN|Jwrw{YV6HT@irt%(CYm$_)#M zGomZR52)yafv29hRq_}j;CjGWUKw8ndXcKp554*7SdT%rrn@JU=ARCob zO-zssBKQkbLz}Rw$b9N%I0rE8J-cXHl5P1~H)!Ub3O$T%1($mJ74hP&CPAP~JFIQh z+^X*f9&1Kc`U=2CwvG6Rs2TcG>Y0UDkQ6LN>{5Y!YoohXp(SLkFIT7@=*cJcrjo_a z1EM;}FH78;Jh>9@{bU~NOgzLjkbbksma|1Ol2?JbpkKQVP;ID;7n6SU1a zyZ*z>sY3-ti^DU>DD*p;+&FLXL7eqbaq&7SKJ}62Tg`ua^@<<|wgbvMnxnhV=A@xB ze_)Z6yrl^zI6f;Z#>>wyOW)Sla12kmVPY90XI5jeJ`6<0@8#|k=G`c7)64q3Cb#+V zIu2L0DaKz1OeEMGI`%yH%n+xCqQ=kBxy zTn=4g1q>nKy6}+hGHRKgmALW3Tn<(3D)p7vC2t(_{ogBZLvMV@I$S(+GYqP9e@+vQ zj|XPE|1nzU`BbQi>e%*Rjh}mv6Ym2=x#Mi{{?PvcgFv14k;C8XUiKCMqC#kbLPiRh zm2?LZSO>-%8ycP*T7F%wZQJ+T9BuT!YVg`!kpK1(j}rDJDmzgFdm$7Ch-B+fXi`D+ zQ4eY!)&z>_dN8$Gzh{Uix837ziN-0Jvm-*>A<$IfNA`q}#S78}BL&pW_r+qprcQ)| zoDVPBPV)$_N^1themJihxWr#IdA>uE-`pX3j5Tl6c{RV})YAHCC1X+O3u|P~k>6bz zU#5GQf7etu%`W~3cJl!bijmiFhK@3vzW#o1V5H6bpmm#Ydp~LAI~fMp9u^N6XkYVf zWm>HNm!*sgr>Cd;uU@^PUGlort#gjdWE6cXTglg`@_N3$uGshdSV zPAK2Tcn3)fCwB>pY*1H+SH6lLF9toJBujkW z1{B?M>#BsXwm#mkb3S6uE@oqM%1iBS*dv2{G19e7-)fjQzewx}v1dM&I}j0lU6aL-S62f~9W)V-Tz=6m1-(+nRea0T{X{6&40UIM`$6(*>j*O6RJCp6CR6C*?va>+Y=M& z&z9^TOrPjlvys(ARyBV6R$5%*mTys_`ZYu4>HoC=&XxC<=W%UseNUGmjvo&}eo#tS z1%{NIAln>LB`$ky^P}x$qv}9jq#4TFw&catRae*=v&fr!F>5xdAT~ruw`ymt_u-9WYYbxU(=uGPx$pofcGqOk4^aeSoT8vos)+z8{dMf z@bg2hv3mvv1{po&PLZsUa4^Vyv^{s^jG;6YcM6AI%$1C-&mC^f)UE|^vqzd=>0X;? zg~&+nT&Jr(kggihInDQ%Ecy2Kgx8_8m#f|ipV-BzKnVBmZ|v=r z5f@jcAhfiE^6s=Jb{%zA^lPT_g*JkI&31-uPCb4>qnJsx<;BrSOrFG29qeQ$YTck0*@VX8vN+Stu4g9Q28)B#N;yaF1MxUsa7 zH_;p6l(Gkyw9yJBpC5kYzUOFvj|US9q(cT)bbuaapR4GF_?X+(t!Hv_ua%${k4g#7 zb*nG!i@dmjQavw-z7o`|y6>i>pe|m3fT1&E48!Tc9cO*FgLQh zNW|^e<7FNTRlc3M^NLd$^^oui(p>-gkw4th?~1`JKj!6*UJ6qu|KLJxogCVi;0l7G zc+I_p(=V47iyG|C;u?oHF)oFQ@Cqg{DZj*0 zKdKzE-f~nIhL9pSSJfAr-3zqPkmW7Q5BxrcMz>6y)eh9pF{a0fLrn|Dw}|v(pc6x% z-?h#G(7=b5_uFxX0_gP`l)Uz7re{j~Yn{_&OnjR2N(~%Ntp6U45jtFTQ(uvy$b?R4J#B<~d_tc|-Rk%P@J4C;~~(1-2V< zBsb_%Q!Y%03>4dr&K>aS(R^_t&O7^7yso7p?k4%;eu790d2`+S9U((np7FQ$XOSxz z@9BT(H>y(Z;=kbUX0;+!HyaLgRop%6z^)b=Y@Kxbg%}XIbIN)tZ_FUsf}(-~#T3z} zsk}F}iA@Eh@M0F5JjG^T;l#Hm>zvkJpO;Cy70JyK;pp0b|$hKg5RbgIM9 zGme7~&%6Jqywbni!au$H)V<_GtDBkdgWA)(moPfc{4qEAz_Ry&#&xdx8z6o`btS+6 z4a%~GTw9diukG}`yIlPhACeq+Ym+biZ(4E1G2if2POx*Gy7>n|S3c46Hc5y6vOELI zaPf0<`%#ug+WtEnwy6fh!lB#c88A@--+`O-!C*msR($#kuXyF`Es0m#t=5TT+zdPR z)QIPlYaWb32b}o-f!Dxb~1NyBz4AnuRmIenWR!jwc5m(fg zT4*d*KPq?>Hs1fTHoBOb@e<|`TyUP=bNrcRyb$|{ivp&VGCv&Qcf!1JchZ>j*WvRa znV%y3O!0Q>2)bafrE7HEt!9>ba8Vdf>};d_{NUiA1zfyW4r7N&H>e?y=8!`eK6C!} zaaw3^LYunhApDbb_|ki+^mmjsAbPW}D9x!&!HH$Oj?K2_tq}sPd0|RLw8pem?{gvu zQu)B2siB!vI?i6r!hj*rK85s{xx8aqTpmw0`KX_L#(D+npe(H4mj5O?tb^B5YI53u z-syk-bVjpLn!m;2+ep)NYDJwCNt&RlncC(Lrz~3By;Ig`8&pU_|<~V`^L{Z{fsV> z>fwIOzqqwzd)=51Tn{?~HGZ_g2134W?$`LEea~D~q0ksM3aLwtxO&s zp~GqMFEijW20y>Z77HA|VZDH|IC?;FL#0|^8)bUOfuSi7NmeJklVnV1X zOG&rAX*^jhD6_I2*Y#?2+#-Ej=6u~QJXcBMu%KR0R(1u!<4dv($D(gLTdn#|c2)^s zT6Im;JG}ocP;v8mqehYR-pluk!X;^k+pbltN(`50x13^C?!)b6~C zs=`10r8D#L2h4=rKkj2FyvbR&Y=2J`%R?j)5t!SXX;R!~efm z9bnIpxnTN*e!J7G?W8qQ18sO_AwUto>7L&7c3%7oy)t1I6IPVMyNZmQeEZQeax3TV zNS`U+&OZ8uo6>ZTBnF}*Hc;>PU*CqAP++_1!(b2}O>8}mX|W3(dI1`UdFyKUNxo*e zp=!)NRybzZJAW(Hr0<)?vot@-Ho?|fB{LS<;V>=td*8BDvRfOEjpVG6G4!{jZeQ+M zXSxK%r8C7yqtJ`O-!wAJnUoWL_(=HskGYRv{f4AKhKkE7d(0t0BR}Z)rb_4yQO;rE zQx!H5NlA}oA1JL3T8(l6Jz_5~ ze}GA`XNJY`O0c7B^$j8Hmg|@@%jFMin+a?P0&deYHO>Lb3Fi{#8~MeX?I ztIt6~YZ`SyI(!(K0YSLJFoQ8>&_QyxghX~Tzl344G%dErF3!C4%Cxr^hA#<5_VHM6 zsj|6gYHBKi*%|G-T17}H4`z%ht{d;~r(mpnFMcljwscS)Ckb_FNhJ^x-^|xV7J9#30^JvEVXf=>#s z`>(UhK}*>>Uni>T1j@%lBmVM$yT8BRKTzki&L;b2G6p2DgiuP5^FuRroz1S$A&)Ki z25%`o>mx96zS&`a`*sm#yGYC;lXCN-Fo`lMWS&WL?yybKp7GHRk&KE6eo{ho@b)8C zr75ath35tyzeTVK{s?POY-*c{*|Tw;FQ0M7n9pZy_l8?d(}qMWdiD>--A?!{YY2x- zG!Wy6s_xst;T03r_1l9>4{md#>kRt+k=URE2MEqOH&SuStuOPC2!ETU= zM7F=A`9^xdrkes>pq>eIBBDfN7+FGeZ+x~RH7*(R!Z%e%cI5V z0pj)`ftkSrdaioAE?C#*MBRJhh@4l1<7eKau$;*h--TKywS>H#$}iK^J(rsJ0&=V! zBVz1o7N&Y-0rmYgsfQADDX-Ucq^4rZ>u{tlJe-j6Fg^R8Cp1#XfK7Mrq-D6s3b2+D z_x}Wd;lKA4AK8NN<**YKx7yUYGn{O)Xfq-c1^3vRc0$rC@ZQ~~ZRa&GGMW^NdYzhD z%}2hM342~UYOh&1j3w54gRXHq!r8{ItIm$^k$~-ue`~a)K+l(rCAp zoolnPAG0z%z4vAy-4~iMi53xmLis^&pE>;6s(j`D5+cU;ql-7ZhdNa4b2hoYsw`5R zn%nnTpw~1?5ql;zD@bG@+Su55O2b}IqLxFul|BcbkuDg_rN-V1^w&IomFm?Z;Z?#A z50&j`G7>?DswYl;(tU$D;TZY{r1?EguY>)QkH_qbRKe@Z1Xr7Tb?}x;^_lI%(a|=E z;2zR?tC+=SKN`+G=2*>ivt;Q$ivOLfZ;z#ISzfkue5c8Q<-TxLWGkC?)8(HK>_CH| zCm+Fd-z?N#HCw)Qjc<{dU3!dOL&>sDmW~Pt$EnSS4jzu~kKN&N+O39T%rT1s^jqD* zdxh=#qKFZ{p-UuvtDE6nJ&7-=KdWa-l#%H0M)dYJlvqY3L9UpbOc8NE8 z62W?sPTZxvXb!#xZfX@3VU2eJ3hqQDi$cuTY@q@Wjqm(Z!4nXgnggY^)$*hugV_YlvRm?9m`B zM_kH~*7ygEuI=jwIkaAg)zre5$a-z!zkUyEl>}r4&wg5cKu;GO3yCTd?ueCmXb@s> z;IyRp%sDcZ6~|VjFc4oO%ecuM->Xj0`8Mp|zogASFqr8RDcL}1(H^wU>C_^iyPEga z3w7a;KqLd#dil)#lwe%tgkbRc-vRN!#vjd!Q(dV~(^R&?W_7&0eK?uWesXXy@+uce zX5Q&QIcJE?)rLXmjqCe;-P|RSO3o4)CPgey5=MLYNG3^7hfrR=(b?|wTl4naeLAp! zhI5kS;{A5b;?i9HcnRC!bC(&{D|h51$*`L+do$1Ut0x_`ckFcz&h2sq?WXiHDpq$h zT*e)$K~d3TRsN7&hd2a9h$+2OwteO|R#nkSH_dmQJ_G-J`})F6B%{-yqFCavwEL zmvPtsbg?Y6@$uI*!^F6&s2k4FM8lY@vX+(8#a+q5hXj{!`e&`aY>Kdr(++{}1+kgK zEYW;gjJP9yOY3*!D#;%4wk_^{9er_@yWahy_KRwgu9&#^=iWP%ltm~649pCE%%`;% z#W;=gms+74T~-1v@V1+2qyeY|g!E3)_SxK@$>gfl64jgk9Gn3F)hnPu91HZbu{xr9 z)j|YVbd$HIeiQ>&q*%Z^VCD3c*;pwk6U)zg8U1AWm8%U~bFz%-wM#_77k7o-;1EO* z_`-1o&zja!yD;wlFm4>X$#aoX(blWt%%E+7qpRm&a!@maGU!1^EN^n0)9{Row#3!t|UDve@H?K{|37@ z=mGG~$iu}xPR%}GLKkeRXntpiPZGnvd#Yuf(kePUBWszdIj1*O)JsC($5A4=jgf$X z7LGChYr<_+v?#1${r>h#=5xy|F)w&B5 zaJ-A)ep$;i0g8JxBtTkEIwrx+C#%n(+r>4Zth02?cQN7TI9#Q1{BcmmSpfapV@~io zE_~;%9*%{&-uUn563m}n{sduxUA)dk)$S!dW2DH0e#TO`S;oHxy(s_fEX5B+arZ&y%owig>Mn}^o6LyY214l_@zUSlf_PBS*AJT(X{bw4K0j5xed6&$ zb9w6Z&GodCloDU6_GnRPEh~bwQJlI)3Ed#Pn%1_&p+#L;=At6(srXL&(IRoM>9Ha> z>)Ka+XU#kd07rr2@BDFe5yyMTV7`&%P%B2HOEMglSFkyx=~28MxL$)Zz$FxSkL$AtRZTO=@S>lJW1|S~(ZRX<2cs zJ;s#!x8SC_-LT!he{#;;_QuKHoErag@_M4`D+XR!CPYam7M)Qfk<`J=BWv^r_04WK zfF=Nvd?05V>`KI4OVnY6X?*0_c~N!eoZo82_I{)2*pF9p^0(vle$QbIFUR?RRFC*w zF!`FA-&wL+{~Y^4*q0gs8TXMQ)hB^;ar+qp;OA%)%Woh0`p>9@iDUkIn>z>htn5D` zGj~j@8e2wmsKniI4@!XB@TEe~V-c9}3LtkLK69UuDLqWx;Anl~;3e*s0+++}O|~ng zNh~|8W;-t*7cqS=1<-K6(+*`}sGe zvxOSp$J!ioB&!YmJ8SUElW#!NN$BX@_wMNn!VT?Y-h)RM?qie(8Ga*X*AN|*M*z60 z#>`%;Z8yWC+rtuWV$)XP4)>%@-uB7WMwJHnx%x)Rd6AHhOueZunPHrBH zkHxNKB2tT_LLUqF?9MSWeP$YSI5cFLxrJIX8T(Vwq;787?I6Q@cT2~3{i@esH% zrr3TuJEg^_+10wriY|Et_8P2~H1GbD=Z~y3%)HatTY+ z^c~0KlKyr>gkNeVB!;?lyCo&k`A(T5HHP1}Uu5o#bLp>fD8oYICvzFasX=b=&bjwY zlc)_sHTHY%rAey7PTkF9XT3knc2`t{UM&4rk~zRYt=v7lI^tw_)MA2iag*psqlxNP zzzBEtd~PG4D;dT6x#^3iiQ_PN+|TM=dA1o<c51dSNimLHUOaz9VqL0Bvw`e-QmGO3!XQmOJ*SC%4O9 zSLJiEb<%hDLu0!8QF0O8xvun=SoGc}@(&7eM4=uF5!hZXjLdvg1Cl}Vv>6$5koZ^9 zbjOma!Naessp@c0nX5{p&V`|8i46DRANMg0{G4f$v3Qk-W_a+#LDg4SGokfv=>r)3 z7<*XLGl9vE$N_mBsT0##hSGF{hA-u!f0H*17eAd<_q<6jeqF{SIzJWlH7;^mOMBT&$hM{(pAl-OGE? zbV#FL8II~_0=wvs5(o;KJpLc|@?A^#&?o|M3Sv?U+DUgFvYWlj|GGL&4{pgd#Istl zoKvYr?0BJ}NbR44Myh`sUeCQUaq(^4upYFvNmK7FLJZ`AE&->Xu{=AmD`$;77h#^5 z*C4c~>V8vB8v!uux&TA)4*2S)Tq)W1%SH6ywD${)GRX>MYC6Wep8m#mp>OH&+nYQD6ue1kr)>uwtEK~@#qt=tA6_PE#*z= zoju?d_im<~Oz_XY1^d&;?XzugmL^fYjJAyhG!7qy;bQ%&AteqX=xK?3;y}9ht~9qt zy@j@jUl@|I=6h?PMO)VGt@eLBl5hKpncI1qmV|4<%2*LHu6@IbToJuh^WcK|f%GNy zM3yf877_H-NvtTI+_%&|{0|juua@I-*%D?-CW8X&VLR`ek~MT6T{yZs!!d6Dm#1It z`buW?uawAXAN=?fc6LX$yL|LfcWnT}NZVqmpurPTja%3K1pC9aN$w%UA2&A}w`H%{ z?+M|#gV2*8XFDD1?Z{9!4=FaqsAcgdp0w0%78{R3Ucb*7%s(EhOz~(uP&P^LYt$6P zBLJ-aD)V*7_yzGE);DY$yFEKKS@m7hyS`hc)2!=_{7pqOoyXiH;kbR_R+WXexE*TlCg-1)qYY?|1_|u{B6yy-VuRW#dFSM_=A`R zl>R*IVC*SPbCJx`1Ir>|tpn$XGH*S*A~=26Pb|56v7gTJ9Xs%_Go|Fa-o|9U%7pQD5E=y8zW!~vg{Top+?EC#b7JQb9adHiu~ZKgZ`&>A z8yv4}ZmKGF?l^G18&n$k#FF7MZ(tme49h=~7I6|Ep`->YwOC@5(>%)BS zb6utz8+RYfERmsBp16s5{3`YCi>oTa=qRt#KkE>9rn}kPC_ja5nK8Cp-!WCfxo73> z)`@i%Me%vS!#gZ|D+`o7irNP$yu<$D|AlOvxchCm5m-JG(0l3o0uc^U2W9Bl9r;_IK5{Xl{`hJAgA3Q|&%xRuVqsJeRnp!D zzjL61n+UcJZI^Qj4>E9j-}g$DI^9j+|K9~DX=DDj*%q?1noVBA`*4MK@pYWIL1UHD zfEExG>M;EhUK+;^AK63_c#ThRhfTFR8L){w$#ya%&1F@&BB4LEBmS zxuaJrp-qK-4V8MZuGE!+8BYjXb5?pIk&arlcPSaG|80Ds;n6P;|E8QRxFuI93qMcT ziRxREAQWw!Vk7K44+0m?-WiIO=yTnA-nqId!wty6)sNU?NLs%KCCeu4V)%(aTH~yw zgkJv;B}X6&Y$QW`$7fRB%d?|YPw8g}ZnEH;SXbTBWm&*khIuoqbOUM_HoyA#k25@} zo~G!yG-FV&y;8{hBjqc&Hg=^}AstE8t9&lQkhAqFd=Y#o8TxdSo(ZdEM;ELLD6FYk z7W@y?N~-{>ax9niWhn2Vx89`9Dg6`mTkl0-4|XX+zbO}bvpw05BVvlo2b59~KP`Hw zSmV!;!}MMTong;LS2t87Y`t_;%qu^KgQbReOx<@PiVT#jFyLw&ujH)8{rBEP>QKxb zwOqfytdWGOub%wY_qVq;|qp)XiLiTLW_%|G>DZ)>UG6EYP6a~IKPqisZeBJsig zHQ9e;2Pz-mec7<)r#@4jYv@%V(ogbqGQ+;wt-#fnmRNp?)aLGo-=#$DyXjzKvp49o zRo8;23;Y+dOW)P4dXN)yhbE7@9rWQ{_&u-{0e`WYc9Kx_#;X3l2VOWLf`Kh(0~uE; zwq5Zl_aKXW^mDPMV|tm{=V)@*pIo{OQt6ey3q=3g_g1BE2u=v)Swga1j|N!WnJ+H~ zL8Db`tZLe7XG{JcfKHO96HwW+HX{B}kRn<~I{zb1&MiVOHmTlnpUnH1OQk&W7!XzX zSMjGF{O6iNcLOUn|Nhn=aoXH-h91~VS)|vD*2U~UlYN#_>iDc1l3T*=JAF#Dp>lq) zSd9B^^Z&VTa{TozANt5#M&kvI^cqH$6D3**mHa@g7mDG@SbRZ&8-*7U8N8l=T}n5P%mz z>8^k2|576RDsKC%<<_pS*?(1q660~hl@+o4iZ<~@VU0E4$8a$bO26bU2|p6*sB)BM z9CdTQG$0Z2#3%@F5B6Ra7I|wRV;S*nZe{R?=R>!bNu_#*jt+@Lbp3rbEt}m@ja&pK z#(t!NOPu{=L*E3X6PRAnA+rF=Yn-m+?2ynHyLladNas30S-d7Qy@jqTsl; zJG7C)!ih`*2GH9 z78biazt!g8Y|yo6#@_I8oVLAmm!`W`LX-t(h00)z(>`|6NLx*CY8Km9iV6E3^Hbup zX+hR}F`O1-;D?+I$W`gFL%J}WMbdxrLPw51S4v5k>9Lsk#+Bet#lZ;^kYSrW)m33j zd1(3OB=zQ;NY;)>*7tmrTQv@MNq(|IBBr^kV!|t!EBT>rq!G{`+t%Q_?{DZI>Q&A; z;jOGk_6V$J5V^@gBb=A8&{Ryib(+m?-zk!e{lD(D7YzWe;MY{$;0^lkzNr9nOkR6` z2HzQ{X%w2bJ4qlpE$aJ;rkq8@WVRcl{ z3m>CHil$E3PMShrvgx$LDGiOF-HDOdFVdNV;>r3$cScXG>H7sz^P|ntaj@(C#c4vH8Xt=@&inn2QHHkzYy}rbfR~ z_AEE4Kp7UhYidl5op?-YA)>l>NWO5q%<28CsK17hDKc{NPO|AA1`0W2S!s0ytHc}$ zXiz*M3mpdk@Xum<>5c!?4s@BP}wmTthBgXmIxwSC45`RoDWQx7P`f)<6h*P3GnpCQJ^ z#=Mv7S@WrqfsNQUY3{+M(d+*03J6h^Y z>vcj}HW~Mhb3s_JYWVP89JQ^i3nU!#&aI%LQZ7%vnKe?P9w3%Klc+q3e+ws6o)AbY z_aM)snOcvl)n@{ywFA->3!R-5&4 z%2knhSmhEx!STQ3djtsEQ@(O)#mZFo^&^l*! z$E|!~MO>Z~TmYo3sPe4FXD3{LKvp0`TOP`Yn3PcR+w z7WFXGo+l1q=?H_`oP6SBnb;j$Q1clj)l-|8*9FPjV@Vnw_`lz8v~YIm0nO)wH~KPa z#p@~xH8kn+YEk&bN*{HZQHe;Csk)=ro!9&6LukN<{bFHZ@s8Xgvx15D2LZLtwa&Wt z+-2s}x$k5)1;`Db2|Vv!nvA!0TPJ)`6>)}ee*ev8RXRCyjSxapvNWx(+Wbvqi{LVo z=D>JgyC{Ivy|X;q1?9DZM@I1uJ?G#>3H3j4DqpKJoQ!Z!M*k*`kF8!Bwkgc*gix^pe-61d=C*Q;t`$T6$@Ud=5$c3l}7yJGknnwm!l|Itg|)IrX&>F;vd1jb=Iq@aOf zsMAM$JLlFA7b8^GW~qb+q0?>6MYC&){c(eX$|*&DvcFjuS%CZ$J6`P_p*P=g@m!l|KI; zn7#w;YhX#{<5N3x>C`q}o%Y5HEJD7obn96c);|k~JHzf+*`@Ycd6y6An>{Et<$kts zI>OtXEuYn^-hY@z2qQ6UqpKb!#gw8=4oQ;dfc>Fw#DKPqKR>+I8-Fa0mah4)D-cLU z-LTyci0CsQ^72ezid`cKsd3x5bVQE(2be*#Fo1czQk6|s{H6N~+ ze-v-sH?>9Cl!5%hy65&slpx3Mm6*#6X?rlP8J1M6-wHl7pZM|T+8GG!tF1}0Jjo@} z5C5Qh1UW0go!GKXL#@03Zm0AP92wESJmA zhGBTZ7<)tH2dFxG>$)yXr_;=Q0P^P`2>5opt$HfGL?i{w8&5eOLY^S%YKGlJTLM21 z*@04aT-5XEIs(AN(3Z~VoLE(&GzyXcz!w4Fxz%d**`_-~h6_3X5ClOG1i2OXz8^0Z zi`Rl6c$P8t8)~A!GGcQy8l}QlZbP67t?TP+-dC|zmC0lRlgT74m8cuXIF7YTA^Ilv zW%?lc0ru}LQ>eMkxQTNSIRM1peG0c9;t~LWeFs2`_i+LMUj~5ptX8W}tyZh!tUrp> z208!`1VIo4xmEbSzg{dB9|?ls-EkbhNh#GnrP~TpIUBxwtc)xoudc56(1eXGr>Cc> z2-1z2hyc)qefNdDka{%>f79shKRJP4S*MA5eqC3qFonwZ>E6i0w7jJuH~@SV0A5_J zRzJ2{t?swgF*0n>0e~O~f*{DP#P|Jo=JWZ7w%hIVaUB1a$q^vPnx&pjr^XuXw;?H@ zeBRUP^dKpqyk8%~x{HMO%d_u!(F|3{YC}yxX^XlnMWzptDe7+pU|7ol9LL#9(%29j u0RAHYT&z~BkFHj$-*2)r $current_user->in_world_name, 'banner' => $current_user->custom_banner, 'vrm' => $vrm, + 'profileImage' => get_avatar_url( $current_user->ID ) ); $three_object_plugin = plugins_url() . '/three-object-viewer/build/'; From 3e12a3bee61a726d430867c5491f9634c474df72 Mon Sep 17 00:00:00 2001 From: antpb Date: Thu, 3 Nov 2022 01:26:25 -0500 Subject: [PATCH 38/48] semi working multiplayer default avatars --- blocks/environment/components/Controls.js | 15 +++------ blocks/environment/components/EditControls.js | 1 - .../components/EnvironmentFront.js | 30 ++++++++++-------- blocks/environment/components/Player.js | 21 ++++++------ .../environment/components/ThreeObjectEdit.js | 4 --- blocks/model-block/Edit.js | 1 - blocks/sky-block/Edit.js | 1 - inc/avatars/3ov_default_avatar.vrm | Bin 47712 -> 47884 bytes inc/functions.php | 2 +- 9 files changed, 33 insertions(+), 42 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 6ced3d2..280ba48 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -26,11 +26,9 @@ const Controls = (props) => { const {world, rapier} = useRapier(); let ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }); const {camera, scene} = useThree(); - console.log("your spawnpoint", props.spawnPoint); useEffect( () => { setSpawnPos(props.spawnPoint); - // console.log("janky point", spawnPos); }, []); useFrame( () => { @@ -64,14 +62,13 @@ const Controls = (props) => { if (hit) { let hitPoint = ray.pointAt(hit.toi); - // console.log("hit!", hitPoint); playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); camera.position.setY( hitPoint.y + 0.001); } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveLeft ) { @@ -82,14 +79,13 @@ const Controls = (props) => { if (hit) { let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` - // console.log("hit!", hitPoint); playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveBackward ) { @@ -101,14 +97,13 @@ const Controls = (props) => { if (hit) { let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` - // console.log("hit!", hitPoint); playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); } if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( moveRight ) { @@ -126,7 +121,7 @@ const Controls = (props) => { if(p2pcf){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } } else if ( jump ) { @@ -230,7 +225,7 @@ const Controls = (props) => { if(p2pcf && controlsRef){ let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]}]}`; + let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; p2pcf.broadcast(new TextEncoder().encode(message)); } let rotatingPlayer = scene.getObjectByName("playerOne"); diff --git a/blocks/environment/components/EditControls.js b/blocks/environment/components/EditControls.js index e2438d1..1084531 100644 --- a/blocks/environment/components/EditControls.js +++ b/blocks/environment/components/EditControls.js @@ -17,7 +17,6 @@ const EditControls = (props) => { const velocity = 0.5; if ( moveForward ) { - console.log(controlsRef); // playerThing.applyImpulse({x:0, y:0, z:0.1}, true); controlsRef.current.moveForward( velocity ); } else if ( moveLeft ) { diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index d4e48d3..d2821a9 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -3,6 +3,7 @@ import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; +import { TextureLoader } from 'three/src/loaders/TextureLoader'; import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader"; import { Physics, RigidBody, MeshCollider, Debug } from "@react-three/rapier"; import * as SkeletonUtils from 'three/examples/jsm/utils/SkeletonUtils.js'; @@ -49,6 +50,7 @@ function Participant( participant ) { const rotationVRM = playerController.scene.rotation.y; playerController.scene.rotation.set( 0, rotationVRM, 0 ); playerController.scene.scale.set( 1, 1, 1 ); + const theScene = useThree(); participant.p2pcf.on('msg', (peer, data) => { @@ -56,6 +58,19 @@ function Participant( participant ) { const participantData = JSON.parse( finalData ); const participantObject = theScene.scene.getObjectByName(peer.client_id); if(participantObject){ + const loadedProfile = useLoader(TextureLoader, participantData[peer.client_id][2]["profileImage"]); + if(loadedProfile){ + console.log("loaded profile", loadedProfile); + participantObject.traverse( ( obj ) => { + if(obj.name === "profile" && obj.material.map === null){ + console.log("that peer obj!", obj) + var newMat = obj.material.clone(); + newMat.map = loadedProfile; + obj.material = newMat; + obj.material.map.needsUpdate = true; + } + }); + } participantObject.position.set(participantData[peer.client_id][0]["position"][0], participantData[peer.client_id][0]["position"][1], participantData[peer.client_id][0]["position"][2] ); participantObject.rotation.set(participantData[peer.client_id][1]["rotation"][0], participantData[peer.client_id][1]["rotation"][1], participantData[peer.client_id][1]["rotation"][2] ); } @@ -65,8 +80,6 @@ function Participant( participant ) { // const participantObject = theScene.scene.getObjectByName(peer.client_id); // // theScene.scene.remove(participantObject.name); // theScene.scene.remove(...participantObject.children); - // // console.log(participantObject); - // console.log('Peer close', peer.id, peer); // // removePeerUi(peer.id) // }) @@ -101,7 +114,6 @@ function ModelObject( model ) { } ); const { actions } = useAnimations( gltf.animations, gltf.scene ); - console.log(model.animations); let animationClips = gltf.animations; const animationList = model.animations ? model.animations.split( ',' ) : ''; useEffect( () => { @@ -127,11 +139,8 @@ function ModelObject( model ) { // ); } - // console.log("gltf", gltf); const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); const modelClone = SkeletonUtils.clone(gltf.scene); - console.log("model clone", modelClone); - console.log("copygltf", copyGltf); if(model.collidable === "1"){ return(<> ( // // window.location.href = model.destinationUrl - // console.log(model.destinationUrl) // ) // } > @@ -201,9 +209,7 @@ function Portal( model ) { gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); gltf.scene.rotation.set( 0, 0, 0 ); gltf.scene.scale.set(model.scaleX , model.scaleY, model.scaleZ ); - // console.log(model.rotationX, model.rotationY, model.rotationZ); gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); - // gltf.scene.scale.set( props.scale, props.scale, props.scale ); const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) return(<> @@ -297,7 +303,7 @@ function Participants( props ) { const p2pcf = window.p2pcf; if(p2pcf){ p2pcf.on('peerconnect', peer => { - console.log(peer); + console.log("connected peer", peer); setParticipant(current => [...current, peer.client_id]); }) } @@ -317,8 +323,6 @@ function Participants( props ) { function SavedObject( props ) { const meshRef = useRef(); - - const [ url, set ] = useState( props.url ); useEffect( () => { setTimeout( () => set( props.url ), 2000 ); @@ -349,6 +353,7 @@ function SavedObject( props ) { let meshesToAdd = []; if ( gltf.userData.gltfExtensions?.OMI_collider ) { + console.log("gltf debug", gltf); var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; } if ( gltf.userData.gltfExtensions?.KHR_audio ) { @@ -417,7 +422,6 @@ function SavedObject( props ) { var quaternion = item.getWorldQuaternion(quat); var finalRotation = rotation.setFromQuaternion(quaternion); - // console.log(item.getWorldPosition(target)); return() } })} diff --git a/blocks/environment/components/Player.js b/blocks/environment/components/Player.js index 047896f..0a648c5 100644 --- a/blocks/environment/components/Player.js +++ b/blocks/environment/components/Player.js @@ -25,7 +25,6 @@ export default function Player( props ) { // var posY = participantObject.userData.vrm.firstPerson.humanoid.humanBones.head.position.y; // camera.position.setY( posY + 1.5 ); camera.position.setY( posY + 1.5 ); - // console.log(camera.rotation.y); // participantObject.rotation.set([0, camera.rotation.y, 0]); // participantObject.rotation.set(camera.rotation); } @@ -34,7 +33,6 @@ export default function Player( props ) { // Participant VRM. const fallbackURL = threeObjectPlugin + defaultVRM; const playerURL = userData.vrm ? userData.vrm : fallbackURL; - console.log("profile image url", userData.profileImage); const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { loader.register( ( parser ) => { @@ -45,15 +43,19 @@ export default function Player( props ) { if(someSceneState?.userData?.gltfExtensions?.VRM){ const playerController = someSceneState.userData.vrm; const loadedProfile = useLoader(TextureLoader, userData.profileImage) - - // VRMUtils.rotateVRM0( playerController ); - // console.log("vrm", playerController); + playerController.scene.traverse( ( obj ) => { + if(obj.name === "profile"){ + var newMat = obj.material.clone(); + newMat.map = loadedProfile; + obj.material = newMat; + obj.material.map.needsUpdate = true; + } + }); + VRMUtils.rotateVRM0( playerController ); useEffect(()=>{ - console.log(playerController.firstPerson.humanoid.humanBones.head.node); setHeadPoint(playerController.firstPerson.humanoid.humanBones.head.node.position.y); }, []) playerController.firstPerson.humanoid.humanBones.head.node.scale.set([0,0,0]); - // console.log(playerController); // const rotationVRM = playerController.scene.rotation.y; // playerController.scene.rotation.set( 0, rotationVRM, 0 ); // playerController.scene.scale.set( 1, 1, 1 ); @@ -72,9 +74,6 @@ export default function Player( props ) { mass={0} type={"dynamic"} onCollisionEnter={ ({manifold, target}) => { - // console.log("data1", target.colliderSet.map.data[1]); - // console.log(manifold.solverContactPoint(0)); - // console.log("handle", target.handle); setRapierId(target.colliderSet.map.data[1]); setContactPoint(manifold.solverContactPoint(0)); }} @@ -92,7 +91,7 @@ export default function Player( props ) { something={rigidRef} spawnPoint={props.spawnPoint} /> - + ) diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 6a87e1c..9c4cef5 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -123,7 +123,6 @@ function Spawn( spawn ) { function ImageObject( threeImage ) { - // console.log(threeImage.aspectWidth, threeImage.aspectHeight); const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); const imgObj = useRef(); const [isSelected, setIsSelected] = useState(); @@ -167,7 +166,6 @@ function ImageObject( threeImage ) { } function VideoObject(threeVideo) { - // console.log(threeVideo); const clicked = true; const [video] = useState(() => Object.assign(document.createElement('video'), { src: threeVideo.url, crossOrigin: 'Anonymous', loop: true, muted: true })); const videoObj = useRef(); @@ -479,7 +477,6 @@ function ThreeObject( props ) { const currentInnerBlocks = block.innerBlocks; if (currentInnerBlocks) { currentInnerBlocks.forEach( ( innerBlock ) => { - // console.log(innerBlock); if(innerBlock.name === "three-object-viewer/sky-block"){ skyobject = innerBlock.attributes; skyobjectId = innerBlock.clientId; @@ -750,7 +747,6 @@ export default function ThreeObjectEdit( props ) { setTransformMode( "scale" ); break; case 'KeyF': - console.log(focusPosition) setShouldFocus(true); break; default: diff --git a/blocks/model-block/Edit.js b/blocks/model-block/Edit.js index 0b49a5c..4d535e2 100644 --- a/blocks/model-block/Edit.js +++ b/blocks/model-block/Edit.js @@ -106,7 +106,6 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { function handleClick(objectURL){ if(objectURL){ - console.log("success good job", objectURL); onImageSelect(objectURL); } console.log("fail", objectURL); diff --git a/blocks/sky-block/Edit.js b/blocks/sky-block/Edit.js index 9ea8cfc..aa40a98 100644 --- a/blocks/sky-block/Edit.js +++ b/blocks/sky-block/Edit.js @@ -61,7 +61,6 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { function handleClick(objectURL){ if(objectURL){ - console.log("success good job", objectURL); onImageSelect(objectURL); } console.log("fail", objectURL); diff --git a/inc/avatars/3ov_default_avatar.vrm b/inc/avatars/3ov_default_avatar.vrm index 081346e9c6f707f6bb75ff00e94f42d88ea517f9..ce7081ae803fee43313bbb89cbca0e5d3a70975d 100644 GIT binary patch literal 47884 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 Ve;e$vKmXIeM^fLH{LkK({9jGiH0S^T literal 47712 zcmeHv37DK!m3FfwAuNVHhOKE91B6if0!deP66h>u1BuY7bXRv5>8@(3s*?^O5O4!g z7FlFbj0pcY2@yDR@Z|MO4v zlauq-z2}~L@44rmd%ycFo!!gl?c31Mu=?8#4X-peG@QR|@uH1Q`Li{g-T-(m14}E8UylgN|6($G<=@7V^i!(YVp;RT-Gl7>b~!zEais-gG9l z2i^W~JQxkd!-1eb5}^Ky%7dj!+qzQuJ$2gek4NLs7l{Ya>PQT2gC)EzhHX(>AX=(B zlWJSLhxP_yQCPzt3i`r+e<;c>S5O@;)!CIww(miwKje?#FYJp(1HO1D8my=jHF=tv z+K`&sQblhd7UW+j5DsA60#S4p?F@!ll`rUv#e&gT+$XIsaRzE#T0tv{k6vlME8ExI zp2}5kZ_&qm!6;fB_ZbruZ9R5F$(H_M?T7$xN91CS zZgz~rk>Pm}#5#m$nbVd1!xKP?wG3mnKmg%15D59A{;)3)iK*FOwbC~Cq}$uOQ#F~% z7mr7Lam1@o*cXoZB4y+5ne9@glbwR0P#D40AN2*o(QqWD4#$3Ymd8Nlo(*THa12#M zgK#f)B8rI!-Nk_@8Qfet(>ZE0LFI5(3Is|A#?tLc!*Uw*%^vrjuWzU`!7~M)* zrL|RTZX-jU?RIgk+f!ZU z@+Sn-go4qaFCK`5{lN&99{6gRa?kYbz&TLWKG=HWKJ*BeD52uMqD-%6!WOcr{GRpt zq{MZtEX3~(^s|?@htseGNHDvWlRTWof{O@M3_>XBl zseBibAk~y#o94lyZWTTGCrP z6a6brxS?J%8;Qjna~8`k%aQG6SzI?5OaUH(g2)jp!Z^y}DPf2^NSw=ra4djiqy~@@ z;7JWqf+!K9B=(w|m}ajD4Izp`E(p0G<+v9`eh?bX-jw+$hiv5fSv^YeFol;50Z5s1 zAV>uu#d9G)>!%#@c?9Bzb_O*+^I1EZjFZMGjppJzzc$sKDwrc>lxa$5)}?a!)GTau z7A6b1belP;_8EKh;IJo`PIl`twwzBx&Lrcq)z3j`&-Sh9PAyBfr`q8#giK+fV zDwD_2H4ATq6E*d&$t_IbG^ab=wlv$<*@feAlh?E+nNQ8mc4u?*l5K@-4)UwG_l@B2 z6bH!uAg=5Y-OwSf?+Dj8{luksDC+ZJhMQCzW5qJQU>k$Y}RSg@c-*0!_(j z{Z@Je1rh9GzK}15^QqXT636evA%AP2)z{jd>PYr=7h2UeO~z8Cy=_{#bRm1)q(Vz_ zS)5@O(t|eys#r4LmBfiEic&-Cie+Q$o_lAYGC zj_z!-P*Rz({JIqFTAp4&v-@%>PljW^VaESAn#+)r>hI0w;FT-k%f;IzP5C7H)}Gwp zi?qT!aom?{U6<==RY?MPaZf4(muwA8jZF>Em-D@;HcJWIg{gESGoXbu4ly`BeNfne z`yl2f0B4ZYT9TgZD|8uuE)_>SE5OqiWID1rcu1v^xl~6AH+I^}>%#oOnRWY$d@8p{ zyl8Qzd&A6PRcPzFbQaw$tjOn+ohcQWlg^uhri-cmzGQdx{I+aQPb$}jd0$;7Tj)yV zmf%DauYXDij-t*$^HvC4^Z0gIW<`gIF%4Bz+nSP8<#>KVR;QcHqhmhh_ zZt#|slta{UDyO%jq!^;JQ!%~cB*hTXor-m*Itp_)m=#+}Vuf%jnM-$ed5U5UaVpA6 zSMat?ORAGDr(Jcen&n$~YsOQ4B=ygeyQo?>7E0%~FUMZZZZ{TKr?SRm6*|t{gS&zX zJ?GZLU4f_TTsqwgd-~4B)TuDXY?<5>v}`vLvm49J%$Xgn44bRv2R){=IJZyEt)GwM zMXTl9b~%+bqh6uw+zq-bsL*+CCEXPmw<+yD_o40zJpJbe)~PUUznu3W5!B6XNZW|6 zzBj03fpw?RRx}bnG_Ap!ho#+C;Tme$mIb^)SgAuJ3A{#0wGNFW7#c<89ddOrc4(ow zmshDru3k2zrCOI<-EBxyS)X_zfxC=_&8cNW8Yi+#;*g zpOH9jQA@QRjl_G4n#%j+>bNE@RtpTg)OE7$kd`Wa3c8NckfyRe@q*jEHPvDRFXcz5 zrCOg{$I0}ma&+K+<5ZvA+V(}| zNfC(PV0}1|K3-;E*Ry;*mU~?F`KGd7UL%*M8d+RYRFEx8?MS5x%X*V-7%^&v&aPyB z`Op)YbF%Z0-hsn0UQIT2q;vTKE{OByU~QxQn^&q3WwR_PrY`R2$fwxojZOWm#GFlS z7(`bT5!Lftc4j6cXSwD)jwbBRX4lRvEZ@*Oc$sY~8_b!X&84s4X+!sdOvW56ZER}m z%dKO3c*bT9&*VQn3N>eE@*hN4P5;tlrjupj(nS3oo66&1X~s}xi~DdC1M$6EnLl9H zhC`Y{8YkFuvg>(Fy_c&(KZiP|Rjn|mZhO^$epbYq%n{YHu4Hd&VKT4Q8%jJ6Czg1i z7o#@xi0`6QAI{*-2Ddktf+Oi+Pi81%O*+#)=q-90Id~MZii4ZZqFi=RL4wi zpG&nTnN+LZ1?76vdqeMva=m?fL+{*jz2-=zRy!;%*PGoN?VZ(~&X{MOOUG`FCfC~T z^Rwo5OsV$Eiix%Ao|)+^-s~yWju2E#u2uiCY%Z5wUvBvPV0x`J%OLY+7n!N!5hj+A$E2VqVh4ea==_#JlbE~Nf6P6%uv`|EDLvnMSEEMk= zm~tDNmMmVjVEKZ@iy+H=^P>yHp+AlCbXn7odsSu1ViD78OG{mDB>*^zrbE|ioD1_QC->cb81vicm#1p?7XS^w~g#&Fieb8vjdz|+o1@iCF=gMc?Q zqUFV6!wo{vhbN}XYI7(S=3^J7jSLLiH@rmUE33_+nBQ0KVPSv3%++KYo~XdqqQtf7 z>($)5fU7y=H7%UEJj7{<+p)cfw;6MphYTpDA=|Qj8D2W_eL~z{!;R$b^c5xm=r!p^ zYhpo=v9xS1X=Tf1&up1#mX-?DF_vm|c&W{?K6T2$i(Fb(>svW@cF>`7MOQ2D9W?cr zr<3?nWGEI1-qZ==EtBGFM|l0v=a2ehF<&$g@bPIKJ{IPWhVhsPUX=^rZGte~ zrMrZhlDzoFYaRg~l6Ab$BLQ6aVck$!J zFuuykm1HQ6K_Azns^+e-`{lK%vsW{Apax@?*G7lfQ{SrjEp4KXRBdR>Ytyh%t#8$8 zvuBBWZCuf-_RV>k#Odtiep}u-ZV{?h=jbLT{+Cw<&DJD=zr&^RHm)xmz`H0I3LNJnGq-~GRGZ5jsbcC1we2z7VqmLztvyHF zYa1@uR;$gPBh_l-_!mQ)u3;q`FpPK%`_jh7B^w(WW-VBRH{mxY@So>z*tE?k0HWNm zvZ8xP?(VxjvVFAWQFdEHL#C$k^MAchP38NK{5sk&y8aj2zawz|RepSZVC42g`RO(G ze|nAmpI&4C(f-l*pUxBvUNh?PWBKc@yLr^*pL+7i$5yO(WYp!SkAHewE#<%W>dyyi zDSz{K&)Qx~`PU}TGUcCo@|DL%))!+%CqzuJGa<<W}2aWx13|)#i zIP&;^+=DSw{?^5h1(SaOGy!xN=y1X0M}Uq59R)gCF!?c{iJ%XH zCJ81#7IYlwc+d%g$xj3|f=&W82_`=obPDKH&}o9nKLnZ#IvsR|VDd9TQ$S~drV1uM z8{`A|K>@+!K~M-321NvuM?o=A9CVIg@^e8jdIJ{B23&L*Or8ME0L=u=5==fDGzT;n zG*2-3d7$~A1)%cbAlP!hC8FnJrO9h3rf2qy0Yb%D~L%LJ3J1$BdZKpDa0Sx_(Na!^h% zc^*^%^?}w2CSMQg2WlWo+tv0d68wnf{(`n6uxxkZTesDA2Joz$m#s6)$c z0akg+stog)en02|(Ek!l{#T%{g8mxxH-gE(2KrmjgP^YqCjSQLA<#ELeLD-$@c^84>|xeMlktU z&^XY6pz(sq4+0$wIs|m6VDb-uCV&nD9WI#s2+)zBqd-RsCO-x=5%fXOB*Emzf{p_n z4?00G`H7%L&`F>s!Q>}{P63??I!!S7hd`4-r-RNAOnxS43g|4*RKetDgM1)AC?J?T z2nvD1pon1dC@2PsgU%65elBPlXga7_FnIzr12hvfOECFt&>YZQ&^*E9=Yi&f7J$wd zOnw2V1+);fNHFwUeH`=&&?g0xe+qOR=z7qn1(V+Z`V8o^ zpc@5~-vqiDbPMQng2`_M-3GcHbcbN_&x7s+-37W^F!?>8FMz%Xx>qpymq6opbbV+2 z=2sJMEgd_3_x2)g*>clkzQoRLmo9lFvDCt^Lq^kWOqthSm@)8=PwY-CxA3cw*K`|G zW=iOWf$2y6A+gfJuRvbYZA_VY4?Z+7CiR?=S4^FiFy&9m{CHr;m}g9T6u$=fN|^2O z&3|Fwwv|6lEVA$$kk@n@Q|2odzcTREZQo1GxA5DL*K`|G=D=g$960LhTN5)Z{66G0 z-Nuxmo@?*@S|VoQ{g)N>Gu_6N@uU5B9Iz!Z)xzT-ujw|XOcU&L*^1i}r&#z<$ZNWd zDMLG-^7;*lNftgF@|tdA%AASu{nNaUCni{UBIGsQ#*}#-{_~T@O^GoUJ`VDlZez;O z5AQr?UE;kj4dF(}Yr2gob1rn={BYe{eJ679q*p9Jw z{Ip}E#zV$EJEqz3%8o^LoUvnw9UttuZ_jIc&f4?Qo@@3zvge5H|F&F6j=R}dj|De&Na0s+otxU&DF=a#@V*D zZTQ|nUl>>i`%p&xgfZ5(t!=~iu6wwd_GetxvF4n$ZEM@`hL)3?Ip5ELjLs3=Gw7bg zw&B#5eqr_=8V7V;vu$hJ@bQ=Kn@-zutyEuS%v2v{ytQrk%ZGm0JQia&5$QU|X;0g> zwhd_?`UdT(^OSo4+qSk1+u-x`y~81+bB(sLZEM?*?Kv5~{T5{Gm}cA7wjuk=SUL;( zHO_EPW!u)aA#J;J{DX-IWHeTAd^Lt}KVaLCbzQaa6J~sMzH?2nZEM?b-|HW4PQLjs zW^K|qNuRWBYum5^^Oy4URgHD@bKADI4L^(Zg6$a(8I4z5qix&THsn~dzYUPrIL|%5 zy+-^6b8trZC9@y4*Ct!W9t+#%c3C?{*<)eb+>TuupBbaTv# zjIzhVwz(a<>=7>?cG)q?9t+#%cI>kK){Y5^_jzOMG?jT1@!$4Cdyc0iW=0^d zGUo!@er3;D#avTVhS(lQt(S30G28H6nO}bfX1dM=t(S2|G25Ur&A_&uwO+;z#cYGh zyZ~(blHE4D4dZalOJDsX*c&t%r>aZi@9s8Or0w8pTKt9Q$6+?O`R$;4cHsUbe*+zs?2Nbixo>%5ACCvI#nhn?bq0- zdbsW=rcRy9?-5(EMfEUlD>gbsCJ6oZ+*dt}!-}a>WyY|-o^@a2nAS_3Dl-MxUdL4r z_ehGVlQKWTdi?=l>e0P~>S63vOr0uo3NZav_Xc)dwoa9q2zlB;*H+cTeT!o1RGH&| z?KrP`xDQcGohow@upReQ57%+U)TuH@0NZg)^>AHQOr0uoI+H7KZBQBRr8!S^@2d5l0sV^E29;s# zwPUOu=M}RJcI-X%v7Os4fBdQhkJ4T6vMsj_jD4$M@G3I^~akW|!Xu$Kea(r9CeACHNZc&i1?D`{2v( zU<@elf*YQnoA{!PmkYibb8+mdmyJKTVDvTN7k_iXJ%}Yf@n;td+b7`jI$wsx@P)*= zG9O*=7t!CJ$b5If`@){^;{@&Rf;mR-O1yHx|BAMJ0d1mw7rg3+yMp8YI2X68H*a^r zOJEzu=Y5}95_G|*!~Yrok9cNDzy+Vy-|($Tlg1)tV+Xy{gvcfs=}jt$)-@-BFJOG8NKy9>VaM-K-Z9++nO z>w>R+yCHOkw8sT!{(Aq=VG@5_@HF_(Cq=&tJ|6yap!kmq-W`1^c)@4mroS%u`QPq4 z*d7=Bb@bh+hXkRg0IH>)%f6okHh>uK-%MiUx2@TOziK1pS1kV z1z&>stMSkUBjyj>EBi?oybtzb+=p?$;ev0&e&#^g&%59cVsCgT_QU;;-u|!)ZiYPf zk!+6(J`DS@>t%oIf`9X!o!fHQ&tLoK?SJQje*t^mBl|HIjBA&~+bF~KyI@{Ry(RlY z7tFoeQrU02;P-K@aIfrFT`+xNlC?h{4)a>=P1!%YVCtVK`*|14YwEMD>+9h#_xw?7 z|34f?8@5jyYR|CvPK@tw(O>xUBQ99~rGT&Wr2Yg{ai6<_26Xf4} zvv{81f^R}w4n~{UUl;sMTu=2%ymi66j)H2C;eh?dw!(qUZ{^7Em3+g2OE~hoB;Ro0 z5{~@Ul5aS02}k}#l5aS02}k}C$u}Ihgd=~x4o!h69&y#?B;Ro4mvH3okbJ|DU&4|9kmMVV{1T4*Es}3I@=G}K zZSmL;j4!M{n9U zam_mynBT{I?83x-)5az)X6h6KfQcyV#_V71#Gygu+^&7~uZk9g* zZMhUW*tUt#!M3wLww*foo9$u#@1cWjzaKhSo(rt5qjC;7@XeYNP_?BSZ;CFQhV$~C=F@+W(^ravTl z2m2$xHGQ-6Py3@>(`Sg@`5vz6yG37vQ(m(=^LhiiI+q-%ebYx)w=dy$80`Z!6S;NhCS zS@dgvm20|==MIk_Yx-^}-yr&xYr2ky`kiu3SG%b`<(mGi=vRHpHC_9y`jl(>aO1N} z^s7GQnyz+Keaba`hm==&<(fWU?4t6@HT@weuky+@eTI}*dF7hEMarwZa!rp(d6ieL z={HMxl~=CmJ}IyA$~AqnlvjD>nm$>|tGseeUoGWTUb&_>N_mx6uIV$Ryvi%r^odel z<&_VnOL>)7-YDr4q`b;2*YtkL-|XR<-XMBZpK?tfC*@S1a!v1*eATC1(|2gRk$P0` zV7io7eaah5I$i-Xe|28B11(VZgSsEo{h&S%>T#eR2kLR49tY}ipdJVQe~tq~_kD`v zT>q`tv2}YCEl{_IdP3bEv_Rb->i%F`pzaU0HR|)D?hkc;uq{yc2iqF;_)zzUxi%F`qaGjX{xC9sDBk1U7llasf%X?V z0DO$lSnzQ|2ZE0mItct=p+mqA75V`91fj#g4;MND{79jrz>gL>27IE>2f-%^9SeS( z(DC3W2%QM7e{8q5neEkfvW?m{woBW?wrCqzzt+n-wJz49f7GoysZaG#hn8hI{iCeP zFrR<+H+1 z^7~@;x6Je#YW!}R{f##JdvNx*>g;bh+244wzdvPv8_WI~Hp6y7j%_;eBVC_qyx&zuyj1$9$ui@6+t}=I5J>?-Olq z<~up>9J0jxzW*;LnfxRF^wM;`e{<>O_fO~hI8T0g(R99_Gvl`3P2>AIGg8@Ue1B)c z(1Q8*qnY*1|MgpV-gt)j&GtNoe7-Y8 adA|R|@@zl#u|NOQpChU7Oa5o?Oa2Ry%Ecc5 diff --git a/inc/functions.php b/inc/functions.php index 99fe43f..43478fe 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -87,7 +87,7 @@ function threeobjectviewer_frontend_assets() { 'inWorldName' => $current_user->in_world_name, 'banner' => $current_user->custom_banner, 'vrm' => $vrm, - 'profileImage' => get_avatar_url( $current_user->ID ) + 'profileImage' => get_avatar_url( $current_user->ID, ['size' => '500'] ) ); $three_object_plugin = plugins_url() . '/three-object-viewer/build/'; From 1acb162ddb20a38d66a90a8d8aa1c2b54fdc04af Mon Sep 17 00:00:00 2001 From: antpb Date: Fri, 4 Nov 2022 00:53:59 -0500 Subject: [PATCH 39/48] cleanup some logs --- .../components/EnvironmentFront.js | 93 +- yarn.lock | 16298 ---------------- 2 files changed, 69 insertions(+), 16322 deletions(-) delete mode 100644 yarn.lock diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index d2821a9..fbf692c 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -60,10 +60,8 @@ function Participant( participant ) { if(participantObject){ const loadedProfile = useLoader(TextureLoader, participantData[peer.client_id][2]["profileImage"]); if(loadedProfile){ - console.log("loaded profile", loadedProfile); participantObject.traverse( ( obj ) => { if(obj.name === "profile" && obj.material.map === null){ - console.log("that peer obj!", obj) var newMat = obj.material.clone(); newMat.map = loadedProfile; obj.material = newMat; @@ -175,6 +173,19 @@ function ModelObject( model ) { } function Portal( model ) { + if ( model.object ){ + return(<> + + window.location.href = model.destinationUrl + } + > + + + ) + } const [ url, set ] = useState( model.url ); useEffect( () => { setTimeout( () => set( model.url ), 2000 ); @@ -242,7 +253,6 @@ function Sky( sky ) { } function ThreeImage( threeImage ) { - // console.log(threeImage.aspectWidth, threeImage.aspectHeight); const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); return ( @@ -328,6 +338,9 @@ function SavedObject( props ) { setTimeout( () => set( props.url ), 2000 ); }, [] ); const [ listener ] = useState( () => new THREE.AudioListener() ); + const [colliders, setColliders] = useState(); + const [meshes, setMeshes] = useState(); + const [portals, setPortals] = useState(); useThree( ( { camera } ) => { camera.add( listener ); @@ -347,15 +360,19 @@ function SavedObject( props ) { } ); } ); + useEffect(()=>{ //OMI_collider logic. let childrenToParse = []; let collidersToAdd = []; let meshesToAdd = []; + let portalsToAdd = []; if ( gltf.userData.gltfExtensions?.OMI_collider ) { - console.log("gltf debug", gltf); var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; } + if ( gltf.userData.gltfExtensions?.OMI_link ) { + var colliders = gltf.userData.gltfExtensions.OMI_link.colliders; + } if ( gltf.userData.gltfExtensions?.KHR_audio ) { var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; } @@ -363,7 +380,10 @@ function SavedObject( props ) { gltf.scene.traverse( (child) => { if ( child.userData.gltfExtensions?.OMI_collider ) { childrenToParse.push(child); - child.parent.remove(child.name); + // child.parent.remove(child.name); + } + if( child.userData.gltfExtensions?.OMI_link ) { + portalsToAdd.push(child); } else { meshesToAdd.push(child); } @@ -374,8 +394,11 @@ function SavedObject( props ) { collidersToAdd.push([child, colliders[index]]); // gltf.scene.remove(child.name); }); - + setColliders(collidersToAdd); + setMeshes(meshesToAdd); + setPortals(portalsToAdd); // End OMI_collider logic. + }, []) const { actions } = useAnimations( gltf.animations, gltf.scene ); @@ -405,14 +428,15 @@ function SavedObject( props ) { // gltf.scene.scale.set( props.scale, props.scale, props.scale ); // const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); - if(collidersToAdd.length === 0){ - return ( - - ) - } + // if(collidersToAdd.length === 0){ + // console.log("it should never hit here") + // return ( + // + // ) + // } return(<> - { meshesToAdd && meshesToAdd.map((item, index)=>{ + { meshes && meshes.map((item, index)=>{ if(item.isObject3D){ const mixer = new THREE.AnimationMixer(gltf.scene); @@ -425,31 +449,52 @@ function SavedObject( props ) { return() } })} - { collidersToAdd && collidersToAdd.map((item, index)=>{ + { portals && portals.map((item, index)=>{ + var pos = new THREE.Vector3(); // create once an reuse it + var quat = new THREE.Quaternion(); // create once an reuse it + var rotation = new THREE.Euler(); + let position = item.getWorldPosition(pos); + var quaternion = item.getWorldQuaternion(quat); + var finalRotation = rotation.setFromQuaternion(quaternion); + return( + ) + })} + { colliders && colliders.map((item, index)=>{ var pos = new THREE.Vector3(); // create once an reuse it var quat = new THREE.Quaternion(); // create once an reuse it var rotation = new THREE.Euler(); var quaternion = item[0].getWorldQuaternion(quat); var finalRotation = rotation.setFromQuaternion(quaternion); - + var worldPosition = item[0].getWorldPosition(pos); if(item[1].type === "mesh"){ - return ( - - ) + return ( + + + + ) } if(item[1].type === "box"){ return ( - + ) } if(item[1].type === "capsule"){ return ( - + ) } if(item[1].type === "sphere"){ return ( - + ) } })} @@ -492,13 +537,14 @@ export default function EnvironmentFront( props ) { /> - - {/* */} + + {/* Debug physics */} + { props.threeUrl && ( <> { - console.log("adding", model); const modelPosX = model.querySelector( 'p.model-block-position-x' ) ? model.querySelector( 'p.model-block-position-x' ).innerText : ''; diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 30fa4ed..0000000 --- a/yarn.lock +++ /dev/null @@ -1,16298 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@airtap/browserify-istanbul@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@airtap/browserify-istanbul/-/browserify-istanbul-4.0.0.tgz#01ba9d25aad0114341e7cb3e09b3735420f3fbce" - integrity sha512-bZc90B1OJRN1llsvdIgUHTZ2tZhwlG4JdNHoQt8wVaBWhbgs5OB1XalGjN2BqaAtFfftYgRxcO5AN6e7t9HXAg== - dependencies: - istanbul-lib-instrument "^4.0.0" - minimatch "^3.0.4" - through2 "^3.0.1" - -"@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== - dependencies: - "@jridgewell/trace-mapping" "^0.3.0" - -"@angular/compiler@8.2.14": - version "8.2.14" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-8.2.14.tgz#46db7a9d1c17f236126518ff26480c160d5a6183" - integrity sha512-ABZO4E7eeFA1QyJ2trDezxeQM5ZFa1dXw1Mpl/+1vuXDKNjJgNyWYwKp/NwRkLmrsuV0yv4UDCDe4kJOGbPKnw== - dependencies: - tslib "^1.9.0" - -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/code-frame@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== - -"@babel/core@>=7.9.0", "@babel/core@^7", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.5": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/eslint-parser@^7.16.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" - integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== - dependencies: - eslint-scope "^5.1.1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/generator@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== - dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" - integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" - integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" - -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-explode-assignable-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" - integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@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.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== - dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@7.9.4": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" - integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" - integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - -"@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" - integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-proposal-class-static-block@^7.16.7": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" - integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.6" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" - integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" - integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" - integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" - integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" - integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" - integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== - dependencies: - "@babel/compat-data" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" - integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" - integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" - integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.10" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-proposal-private-property-in-object@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" - integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" - integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" - integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-arrow-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.8" - -"@babel/plugin-transform-block-scoped-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-block-scoping@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-classes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" - integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-duplicate-keys@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" - integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-exponentiation-operator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" - integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-for-of@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== - dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-member-expression-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-modules-amd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" - integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== - dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" - integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== - dependencies: - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.16.7": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" - integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== - dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" - integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== - dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - -"@babel/plugin-transform-new-target@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" - integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-object-super@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - -"@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-property-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-react-constant-elements@^7.12.1": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz#6cc273c2f612a6a50cb657e63ee1303e5e68d10a" - integrity sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-react-display-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" - integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-react-jsx-development@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" - integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.16.7" - -"@babel/plugin-transform-react-jsx@^7.16.0", "@babel/plugin-transform-react-jsx@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" - integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-jsx" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/plugin-transform-react-pure-annotations@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67" - integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-regenerator@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" - integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== - dependencies: - regenerator-transform "^0.15.0" - -"@babel/plugin-transform-reserved-words@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" - integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-runtime@^7.16.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" - integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - semver "^6.3.0" - -"@babel/plugin-transform-shorthand-properties@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-spread@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - -"@babel/plugin-transform-sticky-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" - integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-template-literals@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-typeof-symbol@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" - integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-typescript@^7.16.7": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0" - integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-typescript" "^7.16.7" - -"@babel/plugin-transform-unicode-escapes@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" - integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/plugin-transform-unicode-regex@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" - integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.0": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== - dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-async-generator-functions" "^7.16.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.16.7" - "@babel/plugin-proposal-json-strings" "^7.16.7" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.16.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.11" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.16.7" - "@babel/plugin-transform-classes" "^7.16.7" - "@babel/plugin-transform-computed-properties" "^7.16.7" - "@babel/plugin-transform-destructuring" "^7.16.7" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.16.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" - "@babel/plugin-transform-new-target" "^7.16.7" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.16.7" - "@babel/plugin-transform-reserved-words" "^7.16.7" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.16.7" - "@babel/plugin-transform-typeof-symbol" "^7.16.7" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.8" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.12.5": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" - integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-react-display-name" "^7.16.7" - "@babel/plugin-transform-react-jsx" "^7.16.7" - "@babel/plugin-transform-react-jsx-development" "^7.16.7" - "@babel/plugin-transform-react-pure-annotations" "^7.16.7" - -"@babel/preset-typescript@^7.16.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" - integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-transform-typescript" "^7.16.7" - -"@babel/runtime-corejs3@^7.10.2": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz#3d02d0161f0fbf3ada8e88159375af97690f4055" - integrity sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw== - dependencies: - core-js-pure "^3.20.2" - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.8", "@babel/runtime@^7.16.0", "@babel/runtime@^7.16.3", "@babel/runtime@^7.16.7", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" - integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.8.7": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.16.7", "@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@chevrotain/cst-dts-gen@^10.1.2": - version "10.1.2" - resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.1.2.tgz#4ee6eff237bb47f4990cfb76c18ee2e71237929c" - integrity sha512-E/XrL0QlzExycPzwhOEZGVOheJ/Clr5uNv3oCds88MiNqEmg3UU1iauZk7DhjsUo3jgEW4lf0I5HRl7/HC5ZkQ== - dependencies: - "@chevrotain/gast" "^10.1.2" - "@chevrotain/types" "^10.1.2" - lodash "4.17.21" - -"@chevrotain/gast@^10.1.2": - version "10.1.2" - resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-10.1.2.tgz#91d5b342480d7532118a6cf3958955f86c9cc03e" - integrity sha512-er+TcxUOMuGOPoiOq8CJsRm92zGE4YPIYtyxJfxoVwVgtj4AMrPNCmrHvYaK/bsbt2DaDuFdcbbAfM9bcBXW6Q== - dependencies: - "@chevrotain/types" "^10.1.2" - lodash "4.17.21" - -"@chevrotain/types@^10.1.2": - version "10.1.2" - resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-10.1.2.tgz#f4caa373b1cd14d13ecb61c77dfee2456eef1ab3" - integrity sha512-4qF9SmmWKv8AIG/3d+71VFuqLumNCQTP5GoL0CW6x7Ay2OdXm6FUgWFLTMneGUjYUk2C+MSCf7etQfdq3LEr1A== - -"@chevrotain/utils@^10.1.2": - version "10.1.2" - resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-10.1.2.tgz#d2fb7b968141139e5c2419553e5295382c265e7d" - integrity sha512-bbZIpW6fdyf7FMaeDmw3cBbkTqsecxEkwlVKgVfqqXWBPLH6azxhPA2V9F7OhoZSVrsnMYw7QuyK6qutXPjEew== - -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@dimforge/rapier3d-compat@0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@dimforge/rapier3d-compat/-/rapier3d-compat-0.8.1.tgz#7918044ac6b47d30c4bea71b21b6fdadcbd95ac2" - integrity sha512-D+Q7HR+qdMnXcb3ioqIl+TtLtag8A55fumO+LY9/0WTf2kX1xmFlpHJJNC9fpOza3pl5RYfeZW6K+5YQlEcptw== - -"@emotion/babel-plugin@^11.7.1": - version "11.9.2" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95" - integrity sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/runtime" "^7.13.10" - "@emotion/hash" "^0.8.0" - "@emotion/memoize" "^0.7.5" - "@emotion/serialize" "^1.0.2" - babel-plugin-macros "^2.6.1" - convert-source-map "^1.5.0" - escape-string-regexp "^4.0.0" - find-root "^1.1.0" - source-map "^0.5.7" - stylis "4.0.13" - -"@emotion/cache@^11.1.3", "@emotion/cache@^11.7.1": - version "11.7.1" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539" - integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A== - dependencies: - "@emotion/memoize" "^0.7.4" - "@emotion/sheet" "^1.1.0" - "@emotion/utils" "^1.0.0" - "@emotion/weak-memoize" "^0.2.5" - stylis "4.0.13" - -"@emotion/css@^11.1.3": - version "11.9.0" - resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.9.0.tgz#d5aeaca5ed19fc61cbdc9e032ad0b32fa6e366be" - integrity sha512-S9UjCxSrxEHawOLnWw4upTwfYKb0gVQdatHejn3W9kPyXxmKv3HmjVfJ84kDLmdX8jR20OuDQwaJ4Um24qD9vA== - dependencies: - "@emotion/babel-plugin" "^11.7.1" - "@emotion/cache" "^11.7.1" - "@emotion/serialize" "^1.0.3" - "@emotion/sheet" "^1.0.3" - "@emotion/utils" "^1.0.0" - -"@emotion/hash@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" - integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== - -"@emotion/is-prop-valid@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz#34ad6e98e871aa6f7a20469b602911b8b11b3a95" - integrity sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ== - dependencies: - "@emotion/memoize" "^0.7.4" - -"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" - integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== - -"@emotion/react@^11.1.5": - version "11.9.0" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.0.tgz#b6d42b1db3bd7511e7a7c4151dc8bc82e14593b8" - integrity sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ== - dependencies: - "@babel/runtime" "^7.13.10" - "@emotion/babel-plugin" "^11.7.1" - "@emotion/cache" "^11.7.1" - "@emotion/serialize" "^1.0.3" - "@emotion/utils" "^1.1.0" - "@emotion/weak-memoize" "^0.2.5" - hoist-non-react-statics "^3.3.1" - -"@emotion/serialize@^1.0.2", "@emotion/serialize@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.3.tgz#99e2060c26c6292469fb30db41f4690e1c8fea63" - integrity sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA== - dependencies: - "@emotion/hash" "^0.8.0" - "@emotion/memoize" "^0.7.4" - "@emotion/unitless" "^0.7.5" - "@emotion/utils" "^1.0.0" - csstype "^3.0.2" - -"@emotion/sheet@^1.0.3", "@emotion/sheet@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2" - integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g== - -"@emotion/styled@^11.3.0": - version "11.8.1" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.8.1.tgz#856f6f63aceef0eb783985fa2322e2bf66d04e17" - integrity sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ== - dependencies: - "@babel/runtime" "^7.13.10" - "@emotion/babel-plugin" "^11.7.1" - "@emotion/is-prop-valid" "^1.1.2" - "@emotion/serialize" "^1.0.2" - "@emotion/utils" "^1.1.0" - -"@emotion/unitless@^0.7.5": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" - integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== - -"@emotion/utils@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af" - integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA== - -"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf" - integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ== - -"@emotion/weak-memoize@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" - integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== - -"@es-joy/jsdoccomment@0.10.8": - version "0.10.8" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.10.8.tgz#b3152887e25246410ed4ea569a55926ec13b2b05" - integrity sha512-3P1JiGL4xaR9PoTKUHa2N/LKwa2/eUdRqGwijMWWgBqbFEqJUVpmaOi2TcjcemrsRMgFLBzQCK4ToPhrSVDiFQ== - dependencies: - comment-parser "1.2.4" - esquery "^1.4.0" - jsdoc-type-pratt-parser "1.1.1" - -"@esbuild/linux-loong64@0.15.5": - version "0.15.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz#91aef76d332cdc7c8942b600fa2307f3387e6f82" - integrity sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A== - -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== - dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" - -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.3.2" - globals "^13.15.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - -"@glimmer/interfaces@^0.41.4": - version "0.41.4" - resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.41.4.tgz#3f3e26abea8a4e1463130e9a75e94372781d154b" - integrity sha512-MzXwMyod3MlwSZezHSaVBsCEIW/giYYfTDYARR46QnYsaFVatMVbydjsI7jkAuBCbnLCyNOIc1TrYIj71i/rpg== - -"@glimmer/syntax@0.41.4": - version "0.41.4" - resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.41.4.tgz#9c0c763aab44069c828ce782947c84d31ff75879" - integrity sha512-NLPNirZDbNmpZ8T/ccle22zt2rhUq5il7ST6IJk62T58QZeJsdr3m3RS4kaGSBsQhXoKELrgX048yYEX5sC+fw== - dependencies: - "@glimmer/interfaces" "^0.41.4" - "@glimmer/util" "^0.41.4" - handlebars "^4.0.13" - simple-html-tokenizer "^0.5.7" - -"@glimmer/util@^0.41.4": - version "0.41.4" - resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.41.4.tgz#508fd82ca40305416e130f0da7b537295ded7989" - integrity sha512-DwS94K+M0vtG+cymxH0rslJr09qpdjyOLdCjmpKcG/nNiZQfMA1ybAaFEmwk9UaVlUG9STENFeQwyrLevJB+7g== - -"@goto-bus-stop/common-shake@^2.3.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@goto-bus-stop/common-shake/-/common-shake-2.4.0.tgz#7b29b093ed10d4075c061bf48905c02eb75d643c" - integrity sha512-LO+7v+UbxE3IyAS4Suf/KYB7Zq9DEIHibwDe6Wph4apNEfDyyxP7BSxzRS/Qa9lUH5gsm9eL9nF8EE1E0/nQkQ== - dependencies: - acorn-walk "^7.0.0" - debug "^3.2.6" - escope "^3.6.0" - -"@goto-bus-stop/envify@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@goto-bus-stop/envify/-/envify-5.0.0.tgz#db7db712f00901d9f71f852ed13dbb3db0909b1a" - integrity sha512-xAnxuDWmwQxO8CgVuPTxKuNsKDfwyXXTyAabG4sNoK59H/ZMC7BHxTA/4ehtinsxbcH7/9L65F5VhyNdQfUyqA== - dependencies: - acorn-node "^2.0.1" - dash-ast "^2.0.1" - multisplice "^1.0.0" - through2 "^2.0.5" - -"@hapi/address@2.x.x": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" - integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" - integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== - -"@hapi/joi@^15.0.3": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" - -"@hapi/topo@3.x.x": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" - integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== - dependencies: - "@hapi/hoek" "^8.3.0" - -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== - -"@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@iarna/toml@2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab" - integrity sha512-FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" - slash "^3.0.0" - -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== - dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== - dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" - "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" - -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" - -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== - dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== - -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@pixiv/three-vrm-core@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-core/-/three-vrm-core-1.0.0-beta.17.tgz#38c4fda10fd0b584c4b5542bf1c188dc85791347" - integrity sha512-UtZpLDJNIo477f3updD3SjExbkGimoLr+uFzAGZV+Cq3cniVo4cuPvb8Jsr2vK+l4KPvenZkCr3GxtkouZx/ag== - dependencies: - "@pixiv/types-vrm-0.0" "1.0.0-beta.17" - "@pixiv/types-vrmc-vrm-1.0" "1.0.0-beta.17" - -"@pixiv/three-vrm-materials-hdr-emissive-multiplier@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-hdr-emissive-multiplier/-/three-vrm-materials-hdr-emissive-multiplier-1.0.0-beta.17.tgz#63da84d01faa9b5bebf5d584628c6f8e673861c9" - integrity sha512-OXhqcBIDSYaG1+rKZ06rFYE9aWSFE8I+3D+Z+O7a8vm0fxsHvHMrmkCMtoxT7+xpPT6mrCoS8EJB/AkmZm7Ufg== - dependencies: - "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0" "1.0.0-beta.17" - -"@pixiv/three-vrm-materials-mtoon@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-mtoon/-/three-vrm-materials-mtoon-1.0.0-beta.17.tgz#14516998add31f1c630111adb1b5b57d9108380f" - integrity sha512-gg40SJ97A7cOuPu8puFGW0Yuhzs72kz31mztExJP7XGk+STvdqwyai7miCUb0w0OoewKVURrdLxfu/NQesUExg== - dependencies: - "@pixiv/types-vrm-0.0" "1.0.0-beta.17" - "@pixiv/types-vrmc-materials-mtoon-1.0" "1.0.0-beta.17" - -"@pixiv/three-vrm-materials-v0compat@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-v0compat/-/three-vrm-materials-v0compat-1.0.0-beta.17.tgz#768d7ad64073f551626e7114fced77f22e36efdb" - integrity sha512-XdSiCL2aDBK6wjILlUnJd6k5OjHI3Fd8j7xG7u3G2pvU6ZiDuUQGgRD1XfWAkAlMENOxLfLBSN4SKKmOrSRpew== - dependencies: - "@pixiv/types-vrm-0.0" "1.0.0-beta.17" - "@pixiv/types-vrmc-materials-mtoon-1.0" "1.0.0-beta.17" - -"@pixiv/three-vrm-node-constraint@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-node-constraint/-/three-vrm-node-constraint-1.0.0-beta.17.tgz#305dc8f9502e3bf4930426c2d886d22374842425" - integrity sha512-fkQxidc1NMuM5V6GJaRedA7rvWNiTycyR8AWeKgZW+jLi3VTvOvhQo19RlFM4LudKYHrcIwbXU2w1RJg/GsJlg== - dependencies: - "@pixiv/types-vrmc-node-constraint-1.0" "1.0.0-beta.17" - -"@pixiv/three-vrm-springbone@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-springbone/-/three-vrm-springbone-1.0.0-beta.17.tgz#97998910e807321a18660d803d8a5c8861118660" - integrity sha512-OaFgh8whc0xW4VW6AgnZxmW4IQ+SBVGenSpg+EfcPYCMbvd/9ZY+b/e++2fI6h5lp7eA0hpS/SG6bc1vaBZzAQ== - dependencies: - "@pixiv/types-vrm-0.0" "1.0.0-beta.17" - "@pixiv/types-vrmc-springbone-1.0" "1.0.0-beta.17" - -"@pixiv/three-vrm@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/three-vrm/-/three-vrm-1.0.0-beta.17.tgz#d8b5007c8684b27e01c56ea16c51f76aadc4dbb6" - integrity sha512-FJNofW1IxmqZdT5L/1AxpUGdGpoT5YPC2VnbCr8NnIOkWKM2gF2sNdgWzcZzdEHQ5yMpi2pFQzqLT4bJEp7UUg== - dependencies: - "@pixiv/three-vrm-core" "1.0.0-beta.17" - "@pixiv/three-vrm-materials-hdr-emissive-multiplier" "1.0.0-beta.17" - "@pixiv/three-vrm-materials-mtoon" "1.0.0-beta.17" - "@pixiv/three-vrm-materials-v0compat" "1.0.0-beta.17" - "@pixiv/three-vrm-node-constraint" "1.0.0-beta.17" - "@pixiv/three-vrm-springbone" "1.0.0-beta.17" - -"@pixiv/types-vrm-0.0@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrm-0.0/-/types-vrm-0.0-1.0.0-beta.17.tgz#788fdc0e44719fd8ec4fb4a7dbfd7566c3a2445d" - integrity sha512-2oRwbY9QGhwJ5BjGMj4SHUu17VcmIObiH1PoXMz05zQF1QKGkxQqMC6OdJtISqonLacbNYnxzLcwZiMBM5Iokg== - -"@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0/-/types-vrmc-materials-hdr-emissive-multiplier-1.0-1.0.0-beta.17.tgz#8ac561c1693575cfd70bb9bfef700012fe2a0b84" - integrity sha512-5gr+qy6EfzMwFn7sOLD327eyrIYclL7i0Wt0ImBQN4AG0fgw92tmPdZxKe8c5Zz4ygGXaL0K3U1x0F1JHYc/pw== - -"@pixiv/types-vrmc-materials-mtoon-1.0@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-mtoon-1.0/-/types-vrmc-materials-mtoon-1.0-1.0.0-beta.17.tgz#375af19299dc959ea35024e1fa2af43d4b309574" - integrity sha512-TrO35HE8scJlC2UqvIhzpMmKvvhkq/C9uYqsehEL033hBJWeKcMfanDUTkrx9QpUrB9E64vWTtrqmFppLCo/cA== - -"@pixiv/types-vrmc-node-constraint-1.0@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-node-constraint-1.0/-/types-vrmc-node-constraint-1.0-1.0.0-beta.17.tgz#973a97c1bf715ccecc3eea303f5ddae1f2d193f8" - integrity sha512-c35c/90XRNGPRE2rgf33GE7v/t33rq1HPVHuR1TTfL8702OKUypcXnKQW5yyXLBEQqiVQOu2h5ewXK6oHX7X6Q== - -"@pixiv/types-vrmc-springbone-1.0@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-springbone-1.0/-/types-vrmc-springbone-1.0-1.0.0-beta.17.tgz#7f5d58f64e2d9cc343ea070c278444fd5fc0a31c" - integrity sha512-Pp6BJgF2GXLsmfNPzk/TQZnAF5OotpD5S9HyBs8jq0zuezYAzOk4BeVZsTPuCSZbWZn03CEXlUSMP+LW8aQY/w== - -"@pixiv/types-vrmc-vrm-1.0@1.0.0-beta.17": - version "1.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-1.0.0-beta.17.tgz#3e924d82c417466ee300c8dd0ee3f0305d719cbb" - integrity sha512-ei2BH8nCp2E1vM+/TnQ1JlzJSVtO2RMna2FFIVbOrc4L3F9xHvhT+LWVWe3oCqHr0/WnPaZL2/JxgeZSB4ziPQ== - -"@polka/url@^1.0.0-next.20": - version "1.0.0-next.21" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" - integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== - -"@popperjs/core@^2.5.4": - version "2.11.5" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64" - integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw== - -"@react-spring/animated@~9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.4.4.tgz#15e21923e55c06ca2bcea432869b91b2f8b07519" - integrity sha512-e9xnuBaUTD+NolKikUmrGWjX8AVCPyj1GcEgjgq9E+0sXKv46UY7cm2EmB6mUDTxWIDVKebARY++xT4nGDraBQ== - dependencies: - "@react-spring/shared" "~9.4.4" - "@react-spring/types" "~9.4.4" - -"@react-spring/core@~9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.4.4.tgz#7730988cec7302ba6e0977cf4c08c30249d95622" - integrity sha512-llgb0ljFyjMB0JhWsaFHOi9XFT8n1jBMVs1IFY2ipIBerWIRWrgUmIpakLPHTa4c4jwqTaDSwX90s2a0iN7dxQ== - dependencies: - "@react-spring/animated" "~9.4.4" - "@react-spring/rafz" "~9.4.4" - "@react-spring/shared" "~9.4.4" - "@react-spring/types" "~9.4.4" - -"@react-spring/rafz@~9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.4.4.tgz#736c9ed1099baebeea20c357b9700b01b83ea9de" - integrity sha512-5ki/sQ06Mdf8AuFstSt5zbNNicRT4LZogiJttDAww1ozhuvemafNWEHxhzcULgCPCDu2s7HsroaISV7+GQWrhw== - -"@react-spring/shared@~9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.4.4.tgz#e1ae00a77d170d86d77d9a19dc7015bdddc2d26f" - integrity sha512-ySVgScDZlhm/+Iy2smY9i/DDrShArY0j6zjTS/Re1lasKnhq8qigoGiAxe8xMPJNlCaj3uczCqHy3TY9bKRtfQ== - dependencies: - "@react-spring/rafz" "~9.4.4" - "@react-spring/types" "~9.4.4" - -"@react-spring/three@^9.3.1": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.4.4.tgz#a26de44854e166184ddba57313bfc52efce67368" - integrity sha512-z77ohxg8zG0CcZJojzfoJTTrjSbIyefNz2RlId68/4IypnOs1p8kB2Q1p+wX4KyWORpLg8ivsPcjtwBjGwfDtg== - dependencies: - "@react-spring/animated" "~9.4.4" - "@react-spring/core" "~9.4.4" - "@react-spring/shared" "~9.4.4" - "@react-spring/types" "~9.4.4" - -"@react-spring/types@~9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.4.4.tgz#97c69881788e624d7cc68d4385fdaa9b5fd20642" - integrity sha512-KpxKt/D//q/t/6FBcde/RE36LKp8PpWu7kFEMLwpzMGl9RpcexunmYOQJWwmJWtkQjgE1YRr7DzBMryz6La1cQ== - -"@react-three/a11y@2.2.4": - version "2.2.4" - resolved "https://registry.yarnpkg.com/@react-three/a11y/-/a11y-2.2.4.tgz#f5c58496abcb7daff7d1da97c3f24b91fd618e31" - integrity sha512-EELVPNQC4JwXXAHRGQ9iA6O5S6stOk8zl+6alOdeQoYlXuVKyPGL3dCLGsaOqgudJERDFqxATDXRc/8JTNC/3Q== - dependencies: - utility-types "^3.10.0" - zustand "^3.2.0" - -"@react-three/drei@^8.7.4": - version "8.20.2" - resolved "https://registry.yarnpkg.com/@react-three/drei/-/drei-8.20.2.tgz#f91093369be911467ea6741538990b3bbcbb9042" - integrity sha512-V2P/YHYg2+N58eWtIqmOJf0t5nWGTcmpT+ci4tB5gt3CsWU2vuoeQFhvBmqEF+cXwZD5ZYKPfQDf/06NzTx/lw== - dependencies: - "@babel/runtime" "^7.11.2" - "@react-spring/three" "^9.3.1" - "@use-gesture/react" "^10.2.0" - detect-gpu "^4.0.14" - glsl-noise "^0.0.0" - lodash.omit "^4.5.0" - lodash.pick "^4.4.0" - meshline "^2.0.4" - react-composer "^5.0.2" - react-merge-refs "^1.1.0" - stats.js "^0.17.0" - suspend-react "^0.0.8" - three-mesh-bvh "^0.5.7" - three-stdlib "^2.8.9" - troika-three-text "^0.46.3" - utility-types "^3.10.0" - zustand "^3.5.13" - -"@react-three/fiber@^8.0.11": - version "8.0.11" - resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-8.0.11.tgz#3fc140b43d954270da15c2d366ee940e62b43f32" - integrity sha512-plvh1mLDIAa3lJfqXJHBWi0PxTOQVXoPXd03/SIwt+vZFBPSzuQCRnhYY/8Q2Of3S89PWTl8TtFXNfRzTUHNnw== - dependencies: - "@babel/runtime" "^7.17.8" - "@types/react-reconciler" "^0.26.4" - react-merge-refs "^1.1.0" - react-reconciler "^0.27.0" - react-use-measure "^2.1.1" - scheduler "^0.21.0" - suspend-react "^0.0.8" - zustand "^3.7.1" - -"@react-three/rapier@0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@react-three/rapier/-/rapier-0.4.1.tgz#66382f28b3ebd9b25cbaa21de37315428f5d98c5" - integrity sha512-1bL7RRMRI7COiqHjf1g1XD4FKSovRPm9YwbCqTBRIQLfeOhJATVRwSMwEQotN466ZGOzEeZ+FTtITU05AE2+3Q== - dependencies: - "@dimforge/rapier3d-compat" "0.8.1" - use-asset "^1.0.4" - -"@react-three/xr@^3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@react-three/xr/-/xr-3.5.0.tgz#90e41eed9b6fc492f9fb3c656ce658741d38b61a" - integrity sha512-Kb+dTjyOYwCw7CErZi2UYvhvTy41144HHpHpl/vvaa2B1xQKVK5vvbXJqUDzyrAcCZj5RUUx5e6W/u6NMa7miQ== - dependencies: - react-merge-refs "^1.1.0" - three-stdlib "^2.8.6" - -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" - integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== - dependencies: - any-observable "^0.3.0" - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@socket.io/component-emitter@~3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== - -"@stitches/react@^1.1.0": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@stitches/react/-/react-1.2.8.tgz#954f8008be8d9c65c4e58efa0937f32388ce3a38" - integrity sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA== - -"@stylelint/postcss-css-in-js@^0.37.2": - version "0.37.2" - resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" - integrity sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA== - dependencies: - "@babel/core" ">=7.9.0" - -"@stylelint/postcss-markdown@^0.36.2": - version "0.36.2" - resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz#0a540c4692f8dcdfc13c8e352c17e7bfee2bb391" - integrity sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ== - dependencies: - remark "^13.0.0" - unist-util-find-all-after "^3.0.2" - -"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" - integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== - -"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" - integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== - -"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" - integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== - -"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" - integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== - -"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" - integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== - -"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" - integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== - -"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" - integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== - -"@svgr/babel-plugin-transform-svg-component@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" - integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== - -"@svgr/babel-preset@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" - integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" - "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" - "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" - "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" - "@svgr/babel-plugin-transform-svg-component" "^5.5.0" - -"@svgr/core@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" - integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== - dependencies: - "@svgr/plugin-jsx" "^5.5.0" - camelcase "^6.2.0" - cosmiconfig "^7.0.0" - -"@svgr/hast-util-to-babel-ast@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" - integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== - dependencies: - "@babel/types" "^7.12.6" - -"@svgr/plugin-jsx@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" - integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== - dependencies: - "@babel/core" "^7.12.3" - "@svgr/babel-preset" "^5.5.0" - "@svgr/hast-util-to-babel-ast" "^5.5.0" - svg-parser "^2.0.2" - -"@svgr/plugin-svgo@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" - integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== - dependencies: - cosmiconfig "^7.0.0" - deepmerge "^4.2.2" - svgo "^1.2.2" - -"@svgr/webpack@^5.2.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" - integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== - dependencies: - "@babel/core" "^7.12.3" - "@babel/plugin-transform-react-constant-elements" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.5" - "@svgr/core" "^5.5.0" - "@svgr/plugin-jsx" "^5.5.0" - "@svgr/plugin-svgo" "^5.5.0" - loader-utils "^2.0.0" - -"@tannin/compile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@tannin/compile/-/compile-1.1.0.tgz#1e4d1c5364cbfeffa1c20352c053e19ef20ffe93" - integrity sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg== - dependencies: - "@tannin/evaluate" "^1.2.0" - "@tannin/postfix" "^1.1.0" - -"@tannin/evaluate@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@tannin/evaluate/-/evaluate-1.2.0.tgz#468a13c45eff45340108836fc46c708457199c3f" - integrity sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg== - -"@tannin/plural-forms@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@tannin/plural-forms/-/plural-forms-1.1.0.tgz#cffbb060d2640a56a314e3c77cbf6ea6072b51d5" - integrity sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw== - dependencies: - "@tannin/compile" "^1.1.0" - -"@tannin/postfix@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@tannin/postfix/-/postfix-1.1.0.tgz#6071f4204ae26c2e885cf3a3f1203a9f71e3f291" - integrity sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw== - -"@testing-library/dom@^8.0.0": - version "8.13.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.13.0.tgz#bc00bdd64c7d8b40841e27a70211399ad3af46f5" - integrity sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^4.2.0" - aria-query "^5.0.0" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.4.4" - pretty-format "^27.0.2" - -"@testing-library/react@^12": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" - integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.0.0" - "@types/react-dom" "<18.0.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@types/aria-query@^4.2.0": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" - integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.0.tgz#7a9b80f712fe2052bc20da153ff1e552404d8e4b" - integrity sha512-r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/cheerio@^0.22.22": - version "0.22.31" - resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.31.tgz#b8538100653d6bb1b08a1e46dec75b4f2a5d5eb6" - integrity sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw== - dependencies: - "@types/node" "*" - -"@types/cookie@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== - -"@types/cors@^2.8.12": - version "2.8.12" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" - integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= - -"@types/lodash@4.14.149": - version "4.14.149" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" - integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== - -"@types/lodash@^4.14.172": - version "4.14.181" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.181.tgz#d1d3740c379fda17ab175165ba04e2d03389385d" - integrity sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag== - -"@types/mdast@^3.0.0": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" - integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== - dependencies: - "@types/unist" "*" - -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/mousetrap@^1.6.8": - version "1.6.9" - resolved "https://registry.yarnpkg.com/@types/mousetrap/-/mousetrap-1.6.9.tgz#f1ef9adbd1eac3466f21b6988b1c82c633a45340" - integrity sha512-HUAiN65VsRXyFCTicolwb5+I7FM6f72zjMWr+ajGk+YTvzBgXqa2A5U7d+rtsouAkunJ5U4Sb5lNJjo9w+nmXg== - -"@types/node@*": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.24.tgz#20ba1bf69c1b4ab405c7a01e950c4f446b05029f" - integrity sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g== - -"@types/node@>=10.0.0": - version "18.7.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.9.tgz#180bfc495c91dc62573967edf047e15dbdce1491" - integrity sha512-0N5Y1XAdcl865nDdjbO0m3T6FdmQ4ijE89/urOHLREyTXbpMWbSafx9y7XIsgWGtwUP2iYTinLyyW3FatAxBLQ== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/offscreencanvas@^2019.6.4": - version "2019.7.0" - resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz#e4a932069db47bb3eabeb0b305502d01586fa90d" - integrity sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg== - -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== - -"@types/prettier@^2.0.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" - integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== - -"@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== - -"@types/react-dom@<18.0.0", "@types/react-dom@^17.0.11": - version "17.0.15" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.15.tgz#f2c8efde11521a4b7991e076cb9c70ba3bb0d156" - integrity sha512-Tr9VU9DvNoHDWlmecmcsE5ZZiUkYx+nKBzum4Oxe1K0yJVyBlfbq7H3eXjxXqJczBKqPGq3EgfTru4MgKb9+Yw== - dependencies: - "@types/react" "^17" - -"@types/react-dom@^16.9.0": - version "16.9.14" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.14.tgz#674b8f116645fe5266b40b525777fc6bb8eb3bcd" - integrity sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A== - dependencies: - "@types/react" "^16" - -"@types/react-reconciler@^0.26.4": - version "0.26.6" - resolved "https://registry.yarnpkg.com/@types/react-reconciler/-/react-reconciler-0.26.6.tgz#271b850616413b5c197ec485403961a11cedd4ef" - integrity sha512-N8MpyC6PJksD+CbMaZ1GW1t940+L4K+f7soiNKcKfgOgof3xWLvs5nPRQ/Q0P6QwDX0GH1PT1MsiQh2FtUY6aw== - dependencies: - "@types/react" "*" - -"@types/react@*": - version "18.0.5" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.5.tgz#1a4d4b705ae6af5aed369dec22800b20f89f5301" - integrity sha512-UPxNGInDCIKlfqBrm8LDXYWNfLHwIdisWcsH5GpMyGjhEDLFgTtlRBaoWuCua9HcyuE0rMkmAeZ3FXV1pYLIYQ== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^16", "@types/react@^16.9.0": - version "16.14.25" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.25.tgz#d003f712c7563fdef5a87327f1892825af375608" - integrity sha512-cXRVHd7vBT5v1is72mmvmsg9stZrbJO04DJqFeh3Yj2tVKO6vmxg5BI+ybI6Ls7ROXRG3aFbZj9x0WA3ZAoDQw== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^17", "@types/react@^17.0.37": - version "17.0.44" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" - integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/tapable@^1": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" - integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== - -"@types/uglify-js@*": - version "3.13.2" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.2.tgz#1044c1713fb81cb1ceef29ad8a9ee1ce08d690ef" - integrity sha512-/xFrPIo+4zOeNGtVMbf9rUm0N+i4pDf1ynExomqtokIJmVzR3962lJ1UE+MmexMkA0cmN9oTzg5Xcbwge0Ij2Q== - dependencies: - source-map "^0.6.1" - -"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - -"@types/webpack-sources@*": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" - integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" - -"@types/webpack@^4.4.31": - version "4.41.32" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" - integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== - dependencies: - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - anymatch "^3.0.0" - source-map "^0.6.0" - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^15.0.0": - version "15.0.14" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" - integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yauzl@^2.9.1": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" - integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== - dependencies: - "@types/node" "*" - -"@typescript-eslint/eslint-plugin@^4.31.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" - integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== - dependencies: - "@typescript-eslint/experimental-utils" "4.33.0" - "@typescript-eslint/scope-manager" "4.33.0" - debug "^4.3.1" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.1.0" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" - integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== - dependencies: - "@types/json-schema" "^7.0.7" - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/parser@^4.31.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" - integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== - dependencies: - "@typescript-eslint/scope-manager" "4.33.0" - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/typescript-estree" "4.33.0" - debug "^4.3.1" - -"@typescript-eslint/scope-manager@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" - integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - -"@typescript-eslint/types@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" - integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== - -"@typescript-eslint/typescript-estree@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.1.tgz#fb363dd4ca23384745c5ea4b7f4c867432b00d31" - integrity sha512-+sTnssW6bcbDZKE8Ce7VV6LdzkQz2Bxk7jzk1J8H1rovoTxnm6iXvYIyncvNsaB/kBCOM63j/LNJfm27bNdUoA== - dependencies: - debug "^4.1.1" - glob "^7.1.4" - is-glob "^4.0.1" - lodash.unescape "4.0.1" - semver "^6.3.0" - tsutils "^3.17.1" - -"@typescript-eslint/typescript-estree@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/visitor-keys@4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" - integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== - dependencies: - "@typescript-eslint/types" "4.33.0" - eslint-visitor-keys "^2.0.0" - -"@use-gesture/core@10.2.11": - version "10.2.11" - resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.11.tgz#914c36f190bcf452500d11a11fc294fe56e5dc2f" - integrity sha512-5YeVrT9prf9UeaAO+2fIuiKdZ01uVBvVsjG79berGZPTHVkz01eFX2ODWJG05uQTqmRw6olz1J80yt6qcGPdvA== - -"@use-gesture/react@^10.2.0": - version "10.2.11" - resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.2.11.tgz#f23776050aeaee3b18f80df9cd2b765229bbfa66" - integrity sha512-yATjHv6ZNe9Jar1YtJvcb6KxwpcGGW/X8FEUY6xo2mDxHkP7dCsnhZZm7I+giGlrJKBMvpVBARsbUhwQP6v6nA== - dependencies: - "@use-gesture/core" "10.2.11" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webgpu/glslang@^0.0.15": - version "0.0.15" - resolved "https://registry.yarnpkg.com/@webgpu/glslang/-/glslang-0.0.15.tgz#f5ccaf6015241e6175f4b90906b053f88483d1f2" - integrity sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q== - -"@wojtekmaj/enzyme-adapter-react-17@^0.6.1": - version "0.6.7" - resolved "https://registry.yarnpkg.com/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.6.7.tgz#7784bd32f518b186218cebb26c98c852676f30b0" - integrity sha512-B+byiwi/T1bx5hcj9wc0fUL5Hlb5giSXJzcnEfJVl2j6dGV2NJfcxDBYX0WWwIxlzNiFz8kAvlkFWI2y/nscZQ== - dependencies: - "@wojtekmaj/enzyme-adapter-utils" "^0.1.4" - enzyme-shallow-equal "^1.0.0" - has "^1.0.0" - prop-types "^15.7.0" - react-is "^17.0.0" - react-test-renderer "^17.0.0" - -"@wojtekmaj/enzyme-adapter-utils@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.1.4.tgz#bcd411ad6e368f17dce5425582c2907104cdb1ad" - integrity sha512-ARGIQSIIv3oBia1m5Ihn1VU0FGmft6KPe39SBKTb8p7LSXO23YI4kNtc4M/cKoIY7P+IYdrZcgMObvedyjoSQA== - dependencies: - function.prototype.name "^1.1.0" - has "^1.0.0" - object.fromentries "^2.0.0" - prop-types "^15.7.0" - -"@wordpress/a11y@^3.2.0", "@wordpress/a11y@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/a11y/-/a11y-3.6.0.tgz#6cf95e5e561c603c5942ee25f05a6225b6a1aa91" - integrity sha512-dlZCrVA/dorXYMyMmr7o5Z/Eh5ximwCG1lH13wyK+0MP/HN/XYRjjcny1Z4OtvrqwK81vUxmuyoqmwByHaNRdA== - dependencies: - "@babel/runtime" "^7.16.0" - "@wordpress/dom-ready" "^3.6.0" - "@wordpress/i18n" "^4.6.0" - -"@wordpress/api-fetch@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@wordpress/api-fetch/-/api-fetch-6.3.0.tgz#428de16d0ac9e8c56c48749290187c85e0bf6523" - integrity sha512-2fvpBlFb2DlDefMRD6O3iG7E0a4NprDaEHmlqx0My7UJ2fs0KN6+VLS9ZYZP1KcUg3bf0Ts+CnsZ3m4kk3+ZKg== - dependencies: - "@babel/runtime" "^7.16.0" - "@wordpress/i18n" "^4.6.0" - "@wordpress/url" "^3.7.0" - -"@wordpress/autop@^3.1.2", "@wordpress/autop@^3.2.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/autop/-/autop-3.6.0.tgz#4853d6169ccd5f54956525391451278405b45852" - integrity sha512-O4Y9yxrqD78psg2g5Ko7s12TrZQiofGIcm1rFfLKzYrxGU0ZGgFbRYwUvIvjngzrdbvM4vgKv8/U80dcGrApwg== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/babel-plugin-import-jsx-pragma@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-3.1.2.tgz#71596ae30b390ddb23680147011a26dce11f88e1" - integrity sha512-oMJnM3cJlu1hQMO4XmTFDhNPclj0cLRIeV5Y6uIF/9oNhhSfaMFu+ty0B4zBYodqwes/vbndwRg4j2q2bhG/Dg== - -"@wordpress/babel-preset-default@^6.2.1": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@wordpress/babel-preset-default/-/babel-preset-default-6.8.0.tgz#76a6ae40d2fd866e8b72504d4a5f783e414b0962" - integrity sha512-faEt3UqDNsUyF/047/vNB4dqF4RPk2T0W5ztvn0TTGPBP/pMOtmVPJoP/Op3bX9Dpv60o913u/NoVHt1F/fcDQ== - dependencies: - "@babel/core" "^7.16.0" - "@babel/plugin-transform-react-jsx" "^7.16.0" - "@babel/plugin-transform-runtime" "^7.16.0" - "@babel/preset-env" "^7.16.0" - "@babel/preset-typescript" "^7.16.0" - "@babel/runtime" "^7.16.0" - "@wordpress/babel-plugin-import-jsx-pragma" "^3.1.2" - "@wordpress/browserslist-config" "^4.1.2" - "@wordpress/element" "^4.4.0" - "@wordpress/warning" "^2.6.0" - browserslist "^4.17.6" - core-js "^3.19.1" - -"@wordpress/base-styles@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@wordpress/base-styles/-/base-styles-4.3.0.tgz#606ddb7c98253d9602eae25dd305c1b2b92b6f47" - integrity sha512-e9Z+txhEQ3zyAHkzzsuYg1ADFhKArz1eGU3ayqCNtCdakrgNjI6Q/sPODI26LlwTmjJPBIJ5wSCBrsDjMhdWqA== - -"@wordpress/blob@^3.1.2", "@wordpress/blob@^3.2.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/blob/-/blob-3.6.0.tgz#f06dafa94b37e1aec879224d37209a3ec7bcc11e" - integrity sha512-cbdjxXCfebS97hYXBnGzajM+CT83gV5Falx++cY5woVqPCPfpk6WagErjXbHMlM8HsYpbnhnYhQFs/oDuLhzTQ== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/block-editor@^6": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/block-editor/-/block-editor-6.2.0.tgz#ab6be155193b2c3dd55bba4160d80890b5579f7f" - integrity sha512-9jSpF2c6GN95g/Mt3XTNb9GF9irpv4sEaaH5KicvP9JTE1/AZcPG43HOoX+nYoiCwCu45BbAWnisJa7stvMMbw== - dependencies: - "@babel/runtime" "^7.13.10" - "@wordpress/a11y" "^3.2.0" - "@wordpress/blob" "^3.2.0" - "@wordpress/block-serialization-default-parser" "^4.2.0" - "@wordpress/blocks" "^10.0.0" - "@wordpress/components" "^14.2.0" - "@wordpress/compose" "^4.2.0" - "@wordpress/data" "^5.2.0" - "@wordpress/data-controls" "^2.2.0" - "@wordpress/deprecated" "^3.2.0" - "@wordpress/dom" "^3.2.0" - "@wordpress/element" "^3.2.0" - "@wordpress/hooks" "^3.2.0" - "@wordpress/html-entities" "^3.2.0" - "@wordpress/i18n" "^4.2.0" - "@wordpress/icons" "^4.1.0" - "@wordpress/is-shallow-equal" "^4.2.0" - "@wordpress/keyboard-shortcuts" "^2.2.0" - "@wordpress/keycodes" "^3.2.0" - "@wordpress/notices" "^3.2.0" - "@wordpress/rich-text" "^4.2.0" - "@wordpress/shortcode" "^3.2.0" - "@wordpress/token-list" "^2.2.0" - "@wordpress/url" "^3.2.0" - "@wordpress/warning" "^2.2.0" - "@wordpress/wordcount" "^3.2.0" - classnames "^2.3.1" - css-mediaquery "^0.1.2" - diff "^4.0.2" - dom-scroll-into-view "^1.2.1" - inherits "^2.0.3" - lodash "^4.17.21" - memize "^1.1.0" - react-autosize-textarea "^7.1.0" - react-spring "^8.0.19" - redux-multi "^0.1.12" - rememo "^3.0.0" - tinycolor2 "^1.4.2" - traverse "^0.6.6" - -"@wordpress/block-serialization-default-parser@^4.1.2", "@wordpress/block-serialization-default-parser@^4.2.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.6.0.tgz#3132be9a06c85f92178a53c7f08a84c3caf7a7a8" - integrity sha512-a/W6XyYxoWLlIOZhmHINC9HrMbqEdOElm5OVDzRtlSLpeafWxc/iLub5cxj2jTxX5Befi4fV0JzTD/waPl5P/Q== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/blocks@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@wordpress/blocks/-/blocks-10.0.0.tgz#7be73f76bdcd90b2d62093a16586e80b9b4900ba" - integrity sha512-AiCaU0BQQnMRI5ZvClbI4zXAI3PZ+agtKoJLSkFP9gZrffWcptOsZqnGu7NVoNkPT47PwJtImCLh1j3JSSAFvg== - dependencies: - "@babel/runtime" "^7.13.10" - "@wordpress/autop" "^3.2.0" - "@wordpress/blob" "^3.2.0" - "@wordpress/block-serialization-default-parser" "^4.2.0" - "@wordpress/compose" "^4.2.0" - "@wordpress/data" "^5.2.0" - "@wordpress/deprecated" "^3.2.0" - "@wordpress/dom" "^3.2.0" - "@wordpress/element" "^3.2.0" - "@wordpress/hooks" "^3.2.0" - "@wordpress/html-entities" "^3.2.0" - "@wordpress/i18n" "^4.2.0" - "@wordpress/icons" "^4.1.0" - "@wordpress/is-shallow-equal" "^4.2.0" - "@wordpress/shortcode" "^3.2.0" - hpq "^1.3.0" - lodash "^4.17.21" - rememo "^3.0.0" - showdown "^1.9.1" - simple-html-tokenizer "^0.5.7" - tinycolor2 "^1.4.2" - uuid "^8.3.0" - -"@wordpress/blocks@^9": - version "9.1.8" - resolved "https://registry.yarnpkg.com/@wordpress/blocks/-/blocks-9.1.8.tgz#9a40d060f07811d9a4b0dac66bbfec691084f8e5" - integrity sha512-RYemYN+q5/M0k5mESBkQbsB101p9hWSOTSlGLzEPBj7yXJp/OnyQVdc2hAr6CQgX16CxOyRRXx1CYQdiOtXGYg== - dependencies: - "@babel/runtime" "^7.13.10" - "@wordpress/autop" "^3.1.2" - "@wordpress/blob" "^3.1.2" - "@wordpress/block-serialization-default-parser" "^4.1.2" - "@wordpress/compose" "^4.1.6" - "@wordpress/data" "^5.1.6" - "@wordpress/deprecated" "^3.1.2" - "@wordpress/dom" "^3.1.5" - "@wordpress/element" "^3.1.2" - "@wordpress/hooks" "^3.1.1" - "@wordpress/html-entities" "^3.1.2" - "@wordpress/i18n" "^4.1.2" - "@wordpress/icons" "^4.0.3" - "@wordpress/is-shallow-equal" "^4.1.1" - "@wordpress/shortcode" "^3.1.2" - hpq "^1.3.0" - lodash "^4.17.21" - rememo "^3.0.0" - showdown "^1.9.1" - simple-html-tokenizer "^0.5.7" - tinycolor2 "^1.4.2" - uuid "^8.3.0" - -"@wordpress/browserslist-config@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@wordpress/browserslist-config/-/browserslist-config-4.1.2.tgz#3d33e6316af269f2478bd6b0923aadd73cb08612" - integrity sha512-UH0Ifmm4tEjVPOtiqH6yxDvk2EKtqSAhnyhyfSIb0wUnEoGsWTjREZjzuhgjt/I2nTqfg+0gUSzL5D0yQH6wDQ== - -"@wordpress/components@^14", "@wordpress/components@^14.2.0": - version "14.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/components/-/components-14.2.0.tgz#fa7c6ed96fb8ec98e05a04f8c0a7b583a84cd56f" - integrity sha512-a06jjuBQMcIyrfXBfk4Hyu9BLQkT1rQm3tbOIE9Ur/cV8K0os0DrMUPZlNZ37IeOORzXhz89/L5mopvRttGLJQ== - dependencies: - "@babel/runtime" "^7.13.10" - "@emotion/cache" "^11.1.3" - "@emotion/css" "^11.1.3" - "@emotion/react" "^11.1.5" - "@emotion/styled" "^11.3.0" - "@emotion/utils" "1.0.0" - "@wordpress/a11y" "^3.2.0" - "@wordpress/compose" "^4.2.0" - "@wordpress/date" "^4.2.0" - "@wordpress/deprecated" "^3.2.0" - "@wordpress/dom" "^3.2.0" - "@wordpress/element" "^3.2.0" - "@wordpress/hooks" "^3.2.0" - "@wordpress/i18n" "^4.2.0" - "@wordpress/icons" "^4.1.0" - "@wordpress/is-shallow-equal" "^4.2.0" - "@wordpress/keycodes" "^3.2.0" - "@wordpress/primitives" "^2.2.0" - "@wordpress/rich-text" "^4.2.0" - "@wordpress/warning" "^2.2.0" - classnames "^2.3.1" - dom-scroll-into-view "^1.2.1" - downshift "^6.0.15" - gradient-parser "^0.1.5" - highlight-words-core "^1.2.2" - lodash "^4.17.21" - memize "^1.1.0" - moment "^2.22.1" - re-resizable "^6.4.0" - react-dates "^17.1.1" - react-resize-aware "^3.1.0" - react-spring "^8.0.20" - react-use-gesture "^9.0.0" - reakit "^1.3.8" - rememo "^3.0.0" - tinycolor2 "^1.4.2" - uuid "^8.3.0" - -"@wordpress/compose@^4.1.6", "@wordpress/compose@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-4.2.0.tgz#f9d900237cdea2e8f648438fb5b992f5d1ab7842" - integrity sha512-8CJ4wzTXT9ZP+uIvN1d2cPBv06ZmhUh+UKzSf7v1o7T28SaYRcoZbsvDD2dnXbS2ZwWPIYAD9waNLWjCBq/izA== - dependencies: - "@babel/runtime" "^7.13.10" - "@types/lodash" "4.14.149" - "@types/mousetrap" "^1.6.8" - "@wordpress/deprecated" "^3.2.0" - "@wordpress/dom" "^3.2.0" - "@wordpress/element" "^3.2.0" - "@wordpress/is-shallow-equal" "^4.2.0" - "@wordpress/keycodes" "^3.2.0" - "@wordpress/priority-queue" "^2.2.0" - clipboard "^2.0.1" - lodash "^4.17.21" - mousetrap "^1.6.5" - react-resize-aware "^3.1.0" - use-memo-one "^1.1.1" - -"@wordpress/compose@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-5.4.0.tgz#39c515b3b723bbafa6e21eeef198a8ac93e83d23" - integrity sha512-KKRW2bJ9Lri2gRGX717b1iquxxDlNDnP5SenCoCR0kXXH2Q6DAlM6JfISspCst7ag6dgiBSVBWzIsDyjeezceA== - dependencies: - "@babel/runtime" "^7.16.0" - "@types/lodash" "^4.14.172" - "@types/mousetrap" "^1.6.8" - "@wordpress/deprecated" "^3.6.0" - "@wordpress/dom" "^3.6.0" - "@wordpress/element" "^4.4.0" - "@wordpress/is-shallow-equal" "^4.6.0" - "@wordpress/keycodes" "^3.6.0" - "@wordpress/priority-queue" "^2.6.0" - clipboard "^2.0.8" - lodash "^4.17.21" - mousetrap "^1.6.5" - react-resize-aware "^3.1.0" - use-memo-one "^1.1.1" - -"@wordpress/data-controls@^2.2.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/data-controls/-/data-controls-2.6.0.tgz#a94569922f65612ef9758af515bbf720acf76a0c" - integrity sha512-uMwbzvnyiSYAEx08E/qUdTrQbaj3H38mW0CqDykKRwrvuIgWV2O/ISxrHjUnnuMbW0YcqVP4FZTE5vv0u8pOdA== - dependencies: - "@babel/runtime" "^7.16.0" - "@wordpress/api-fetch" "^6.3.0" - "@wordpress/data" "^6.6.0" - "@wordpress/deprecated" "^3.6.0" - -"@wordpress/data@^5.1.6", "@wordpress/data@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-5.2.0.tgz#14fc63788586968f503d538a7a9fbb60838afe6f" - integrity sha512-NlPIC8PdKnPly9CnynQS1di59Af3eiCZrQgZm1VssfA620NDoJA5p3dlDYj/Ts4Ryzp78HCi7wjhkmbsHpnd6g== - dependencies: - "@babel/runtime" "^7.13.10" - "@wordpress/compose" "^4.2.0" - "@wordpress/deprecated" "^3.2.0" - "@wordpress/element" "^3.2.0" - "@wordpress/is-shallow-equal" "^4.2.0" - "@wordpress/priority-queue" "^2.2.0" - "@wordpress/redux-routine" "^4.2.0" - equivalent-key-map "^0.2.2" - is-promise "^4.0.0" - lodash "^4.17.21" - memize "^1.1.0" - turbo-combine-reducers "^1.0.2" - use-memo-one "^1.1.1" - -"@wordpress/data@^6.6.0": - version "6.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-6.6.0.tgz#ffb39c52fe1222bd09a1f99668700a41f7ef6c4d" - integrity sha512-qfMPcheQeP61sxjI4L2H2APiA0hPykY6xvoLDBmZ7flaP7ldncEiC70nRnSdopW3lykPQi/A555eTeYW/Gnw2g== - dependencies: - "@babel/runtime" "^7.16.0" - "@wordpress/compose" "^5.4.0" - "@wordpress/deprecated" "^3.6.0" - "@wordpress/element" "^4.4.0" - "@wordpress/is-shallow-equal" "^4.6.0" - "@wordpress/priority-queue" "^2.6.0" - "@wordpress/redux-routine" "^4.6.0" - equivalent-key-map "^0.2.2" - is-promise "^4.0.0" - lodash "^4.17.21" - redux "^4.1.2" - turbo-combine-reducers "^1.0.2" - use-memo-one "^1.1.1" - -"@wordpress/date@^4.2.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/date/-/date-4.6.0.tgz#2a291dea51923973dad775ea90e8c2914a993478" - integrity sha512-BzBWnonCyhnSTz0W7D2xhRNVBj6+i2MN5jmeuuOxKhugoVPzu/ekVD6zdJYZFrv78Gq2LdJCsNTeoJHd21Th3Q== - dependencies: - "@babel/runtime" "^7.16.0" - moment "^2.22.1" - moment-timezone "^0.5.31" - -"@wordpress/dependency-extraction-webpack-plugin@^3.1.4": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-3.4.1.tgz#30189db06a5569caaf0b6a1776439b89abfc6522" - integrity sha512-QtF3RS2eoPl3LBxur3Rt7hFzBqhrSNU5WR/nRn1FUBx+AJ5zuEO8fY/lhqyJ2cCM2irRTrrUfey3NQoerd6GBA== - dependencies: - json2php "^0.0.4" - webpack-sources "^3.2.2" - -"@wordpress/deprecated@^3.1.2", "@wordpress/deprecated@^3.2.0", "@wordpress/deprecated@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/deprecated/-/deprecated-3.6.0.tgz#a4340192dbbae4a3cbe6960b95f83a4c0966a966" - integrity sha512-ykuOrr6Lxfl1E8D7MYHubMC3q/vKTjGzCzNj/LT3BUk7q6HQbk2rHhHejECrei7D9WqyKtQh1INyMG6y3vqjIA== - dependencies: - "@babel/runtime" "^7.16.0" - "@wordpress/hooks" "^3.6.0" - -"@wordpress/dom-ready@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/dom-ready/-/dom-ready-3.6.0.tgz#b643cdb2e54a601998d14d09141156f3ddab4b59" - integrity sha512-u82BCZkp1V5qy32LtIlgpkQwyxgzSj6aFaUaYDI3akkqcg9PFMhVAFAqVKKP1WNaDp89l4oeIFJWJTBArfYHzA== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/dom@^3.1.5", "@wordpress/dom@^3.2.0", "@wordpress/dom@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/dom/-/dom-3.6.0.tgz#4a9f2279062d01333d00bf7a61f8ecd2ac448fb0" - integrity sha512-JmIi4IhY+syoRPmJsJBXt0HPV3yRsz7AR9tx4RXUc0t0DMbH1ULqcyuBFt24MkQ6HmL939gpESflKR4Wo3GIcw== - dependencies: - "@babel/runtime" "^7.16.0" - lodash "^4.17.21" - -"@wordpress/element@^3", "@wordpress/element@^3.1.2", "@wordpress/element@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-3.2.0.tgz#531720b3a023a1509f13d2464b2e1d670153116e" - integrity sha512-YXJhtBF8FnFYwA9X6Dvs4k6yJf5wy1lhU04VNJVzoUDwCt/pK747RGePIPDdUWVd3X/TlyNH2yLRtcCyOC/SzQ== - dependencies: - "@babel/runtime" "^7.13.10" - "@types/react" "^16.9.0" - "@types/react-dom" "^16.9.0" - "@wordpress/escape-html" "^2.2.0" - lodash "^4.17.21" - react "^17.0.1" - react-dom "^17.0.1" - -"@wordpress/element@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-4.4.0.tgz#2d5b870da913f2dc74002d3be80b4d0f20716578" - integrity sha512-3aQsvt7Nth6/OxOs9JTMKIb6Hu5uS4wdsU7fgb3aAv36Li3+fs6gdhhn2YdqWCWiKX2XVgEiFx6B7TK8+AglGw== - dependencies: - "@babel/runtime" "^7.16.0" - "@types/react" "^17.0.37" - "@types/react-dom" "^17.0.11" - "@wordpress/escape-html" "^2.6.0" - lodash "^4.17.21" - react "^17.0.2" - react-dom "^17.0.2" - -"@wordpress/escape-html@^2.2.0", "@wordpress/escape-html@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/escape-html/-/escape-html-2.6.0.tgz#00477508893ecbc41ff9518f6a33deb43d0a7d7b" - integrity sha512-gA+49nsTiQuxbgx4g4P9i9q3ea0RLOD6yBVSvtMzUX/vRhlz7xvlaj9PhFkbZu1FD+IHgBLuvRqHPbHNEqMyyQ== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/eslint-plugin@^9.0.6": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@wordpress/eslint-plugin/-/eslint-plugin-9.3.0.tgz#9099ed6f7c6f80a5653a79a3e0a0165c48fb5b79" - integrity sha512-9F7B60gHAjiTIi9vBw5ZoH0MZW3UnmbuKols4kWpJVdgsvG4X1Wj6XXTLmQKrzh/Em7mD1CCIbCSyWknEzIOLw== - dependencies: - "@babel/eslint-parser" "^7.16.0" - "@typescript-eslint/eslint-plugin" "^4.31.0" - "@typescript-eslint/parser" "^4.31.0" - "@wordpress/prettier-config" "^1.1.1" - cosmiconfig "^7.0.0" - eslint-config-prettier "^7.1.0" - eslint-plugin-import "^2.25.2" - eslint-plugin-jest "^24.1.3" - eslint-plugin-jsdoc "^36.0.8" - eslint-plugin-jsx-a11y "^6.4.1" - eslint-plugin-prettier "^3.3.0" - eslint-plugin-react "^7.22.0" - eslint-plugin-react-hooks "^4.2.0" - globals "^12.0.0" - prettier "npm:wp-prettier@2.2.1-beta-1" - requireindex "^1.2.0" - -"@wordpress/hooks@^3.1.1", "@wordpress/hooks@^3.2.0", "@wordpress/hooks@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/hooks/-/hooks-3.6.0.tgz#0c0ff4481ae050d3479b01776f8cf713975416ba" - integrity sha512-i2M68BR86v5Z0KBZLctlg8vXDqoXlZzmiPMCwDTVHGVm1QhbXA4aFX7LFcmCrZww9WvofX08liUVTwqwiPtNEg== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/html-entities@^3.1.2", "@wordpress/html-entities@^3.2.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/html-entities/-/html-entities-3.6.0.tgz#fcb8165b359863ea7e436ac5ffd161bd1fdc1170" - integrity sha512-JTcLDxd95NnhUh0wXDKP56KfgbEKsHnxfTOmmJiBcQ0IFE4C7v5eEFRwqCexCezv7QvJUYp/giFEBRi0lRIJ5w== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/i18n@^4", "@wordpress/i18n@^4.1.2", "@wordpress/i18n@^4.2.0", "@wordpress/i18n@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/i18n/-/i18n-4.6.0.tgz#eb7bcfbc2b9d73794d54f5686b5ad59a037c520e" - integrity sha512-ssAeBtKwlO5l4BqsU7p4tFV0h8BSluwDSsaR0J537cOBm2kUQxNe/XsJ6u08ChoXhxlIVYVBd7Mhc0emPX12rg== - dependencies: - "@babel/runtime" "^7.16.0" - "@wordpress/hooks" "^3.6.0" - gettext-parser "^1.3.1" - lodash "^4.17.21" - memize "^1.1.0" - sprintf-js "^1.1.1" - tannin "^1.2.0" - -"@wordpress/icons@^4.0.3", "@wordpress/icons@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@wordpress/icons/-/icons-4.1.0.tgz#12e3f6e5923c7c78200d242c152db6d068dc76a5" - integrity sha512-1FpEjT9kJbr0cWbgdgIwd2DoeerWijcVx3qCZ/WMFKNElBH9lfZLuWPI1hpX102HGWFcEi3VlbVpdBGeCeYQWg== - dependencies: - "@babel/runtime" "^7.13.10" - "@wordpress/element" "^3.2.0" - "@wordpress/primitives" "^2.2.0" - -"@wordpress/is-shallow-equal@^4.1.1", "@wordpress/is-shallow-equal@^4.2.0", "@wordpress/is-shallow-equal@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/is-shallow-equal/-/is-shallow-equal-4.6.0.tgz#9c40ef6b3efd94f2747f6bcc424034366acd8397" - integrity sha512-sRPDgTfaogRUaWxPCVm6ZhRcLb7W214Af2IItxAPTa3jkrEFY5oWXtqRROYmDDQpxJFAmESz9TgsH7Ls36vBwA== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/jest-console@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@wordpress/jest-console/-/jest-console-4.1.1.tgz#804c1f4b0ee6b54299c97ffb2fd6017850b8a534" - integrity sha512-f/DwduxU6k53tULurpCox4TKzp877+IWTHRUxE91+FOXS+2OsnhUPKfMiMEex4nu81a54EArwekPVKxaq4swbA== - dependencies: - "@babel/runtime" "^7.16.0" - jest-matcher-utils "^26.6.2" - lodash "^4.17.21" - -"@wordpress/jest-preset-default@^7.0.5": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@wordpress/jest-preset-default/-/jest-preset-default-7.1.3.tgz#1afd62c552b3c33d04964390ad4c854f2d7f3c7f" - integrity sha512-rz9V/YRr3TjLdZJQu7DAZHo848PpZ4N5ThtP4Lujy1O/UtcvtKF0r34SZTNDlFQO/G1USZQX/WL6HRhgl57iHA== - dependencies: - "@wojtekmaj/enzyme-adapter-react-17" "^0.6.1" - "@wordpress/jest-console" "^4.1.1" - babel-jest "^26.6.3" - enzyme "^3.11.0" - enzyme-to-json "^3.4.4" - -"@wordpress/keyboard-shortcuts@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-2.2.0.tgz#9cd945b5a72be9478dc62e2bbbb5520187f295b5" - integrity sha512-YSp6jkpsLGQAMwU0l400/t/kmronvdvTWzXuHolSktcy4uklg+yJjmufzGv7W22rdrjR8FmBEDST9jtFgZxjyA== - dependencies: - "@babel/runtime" "^7.13.10" - "@wordpress/compose" "^4.2.0" - "@wordpress/data" "^5.2.0" - "@wordpress/element" "^3.2.0" - "@wordpress/keycodes" "^3.2.0" - lodash "^4.17.21" - rememo "^3.0.0" - -"@wordpress/keycodes@^3.2.0", "@wordpress/keycodes@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/keycodes/-/keycodes-3.6.0.tgz#b95a799c8406e10d302f96aaf38a5d44ae5556a7" - integrity sha512-Iak71hXHSkT2N8/wv+5J/Mtoph8PLnJCAnFSZeKjOGCZ3Fw3hdnePK+aJby40CzaSll6y6Dk9Nj/OT8Bmkwe6Q== - dependencies: - "@babel/runtime" "^7.16.0" - "@wordpress/i18n" "^4.6.0" - lodash "^4.17.21" - -"@wordpress/notices@^3.2.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/notices/-/notices-3.6.0.tgz#b8309d4dd7c6ed33f084dc7c79782f5d7463ba77" - integrity sha512-xNjWV+fN5wJr7oEZ16wwYHRNL4K8nM+fTmPcjirbaXD39yY3FOJoMS8lI1+6OX+IlUztWPTVJT6gATlHYQwshg== - dependencies: - "@babel/runtime" "^7.16.0" - "@wordpress/a11y" "^3.6.0" - "@wordpress/data" "^6.6.0" - lodash "^4.17.21" - -"@wordpress/npm-package-json-lint-config@^4.0.5": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.1.2.tgz#b9d77eb7556ee531cfbda8bd16861aaee85a0013" - integrity sha512-Cq1qoSqt+nF2KOkzyH141YnHEnmd5jDRNbCmyC4lkofy6Qxpl4cVwFDX1dZ4S9WVjqqbLp3CEgRKxUzehyGInA== - -"@wordpress/postcss-plugins-preset@^3.1.4": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-3.6.0.tgz#5775b96200671c810921828fe834f3b6544cca3c" - integrity sha512-R6mihlMolkZPZ4O/0PuuKdD76dthih4aeaRzLSX7nduzBjHt6UYHWCk10m5mktDg4fyK7l+J4nRrQcX5T+PQdg== - dependencies: - "@wordpress/base-styles" "^4.3.0" - autoprefixer "^10.2.5" - -"@wordpress/prettier-config@^1.0.5", "@wordpress/prettier-config@^1.1.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@wordpress/prettier-config/-/prettier-config-1.1.3.tgz#4339ff68f7db37044af911de80f2413d1e8ad193" - integrity sha512-0ogGFvywFxVVhw5rXZUCDCV7aaw2KII5a3Xy0t1CAJYBP1TCF7tPNZIRyGD4bPzm5FM6IjmUMyB6NPzwRnpXrg== - -"@wordpress/primitives@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/primitives/-/primitives-2.2.0.tgz#a813c3d8a43ad1f873b8e53f0b125cb8832273b0" - integrity sha512-WupgR+tt6fKGZE1UKy2gz3wDdpRL9MWQbVuetXv/7TPAz2ofOS2fZIsXNrl4D0HkA82gYh8w8s2TXK0XNyAAow== - dependencies: - "@babel/runtime" "^7.13.10" - "@wordpress/element" "^3.2.0" - classnames "^2.3.1" - -"@wordpress/priority-queue@^2.2.0", "@wordpress/priority-queue@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/priority-queue/-/priority-queue-2.6.0.tgz#a57a0df13fa7da2308d01dbdad08f6bd4bc9f07a" - integrity sha512-FKXrJ2OO7/R4vtDXJV0hyS4mCE5HgMqKkAiV83c62oJo4OWTr4hB+LvlngCMdY03O3qp9YKUEiQPgQCCgIXBuw== - dependencies: - "@babel/runtime" "^7.16.0" - -"@wordpress/redux-routine@^4.2.0", "@wordpress/redux-routine@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/redux-routine/-/redux-routine-4.6.0.tgz#6ffbeb90d3ef3983f6e9c07470423f11afc07baf" - integrity sha512-0vpsdccfXf3efX6CBLRke/WTWJr1KGFaVgsC7TsSXGOJSzjrw1FLIOZEBZPPflM74reE3qyjzNwwBl8EoW/olA== - dependencies: - "@babel/runtime" "^7.16.0" - is-promise "^4.0.0" - lodash "^4.17.21" - rungen "^0.3.2" - -"@wordpress/rich-text@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/rich-text/-/rich-text-4.2.0.tgz#df14810323378702e257a59ef66705cfbf44450e" - integrity sha512-e+wfrkKtZIcFZJZLxkrikiXbxlr6nuGg+V94uKMLrzJEWdw7w/8l3dNhWHRGPkldXIEGrF/mV40ibjUa2p3Sfg== - dependencies: - "@babel/runtime" "^7.13.10" - "@wordpress/compose" "^4.2.0" - "@wordpress/data" "^5.2.0" - "@wordpress/dom" "^3.2.0" - "@wordpress/element" "^3.2.0" - "@wordpress/escape-html" "^2.2.0" - "@wordpress/is-shallow-equal" "^4.2.0" - "@wordpress/keycodes" "^3.2.0" - classnames "^2.3.1" - lodash "^4.17.21" - memize "^1.1.0" - rememo "^3.0.0" - -"@wordpress/scripts@^16": - version "16.1.5" - resolved "https://registry.yarnpkg.com/@wordpress/scripts/-/scripts-16.1.5.tgz#86b2871499fd3b8b0370f0bf7acf25e806f60c99" - integrity sha512-EF63cT5UGbWEMEJBBhxvcoNAuJIooKlqAAaMq5wN1urzsJRpQOTHTV658onoKFfgAxWB78CD7svuwIqNPGQdIw== - dependencies: - "@svgr/webpack" "^5.2.0" - "@wordpress/babel-preset-default" "^6.2.1" - "@wordpress/dependency-extraction-webpack-plugin" "^3.1.4" - "@wordpress/eslint-plugin" "^9.0.6" - "@wordpress/jest-preset-default" "^7.0.5" - "@wordpress/npm-package-json-lint-config" "^4.0.5" - "@wordpress/postcss-plugins-preset" "^3.1.4" - "@wordpress/prettier-config" "^1.0.5" - "@wordpress/stylelint-config" "^19.0.5" - babel-jest "^26.6.3" - babel-loader "^8.2.2" - chalk "^4.0.0" - check-node-version "^4.1.0" - clean-webpack-plugin "^3.0.0" - cross-spawn "^5.1.0" - css-loader "^5.1.3" - cwd "^0.10.0" - dir-glob "^3.0.1" - eslint "^7.17.0" - eslint-plugin-markdown "^1.0.2" - expect-puppeteer "^4.4.0" - file-loader "^6.2.0" - filenamify "^4.2.0" - ignore-emit-webpack-plugin "^2.0.6" - jest "^26.6.3" - jest-circus "^26.6.3" - jest-dev-server "^4.4.0" - jest-environment-node "^26.6.2" - markdownlint "^0.18.0" - markdownlint-cli "^0.21.0" - merge-deep "^3.0.3" - mini-css-extract-plugin "^1.3.9" - minimist "^1.2.0" - npm-package-json-lint "^5.0.0" - postcss "^8.2.15" - postcss-loader "^4.2.0" - prettier "npm:wp-prettier@2.2.1-beta-1" - puppeteer-core "^9.0.0" - read-pkg-up "^1.0.1" - resolve-bin "^0.4.0" - sass "^1.26.11" - sass-loader "^10.1.1" - source-map-loader "^0.2.4" - stylelint "^13.8.0" - terser-webpack-plugin "^3.0.3" - thread-loader "^3.0.1" - url-loader "^4.1.1" - webpack "^4.46.0" - webpack-bundle-analyzer "^4.2.0" - webpack-cli "^3.3.11" - webpack-livereload-plugin "^2.3.0" - webpack-sources "^2.2.0" - -"@wordpress/shortcode@^3.1.2", "@wordpress/shortcode@^3.2.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/shortcode/-/shortcode-3.6.0.tgz#e870890cf6540b8cab8ffdcbd4bf034a45608f45" - integrity sha512-0oMM2SJ1Irw67we50Aw4U90MC1SJDE+QeXWmebhszq3XXK0PvNRUNAVwLl74oMAgR8S21wMkit1Z7YR0uTebDQ== - dependencies: - "@babel/runtime" "^7.16.0" - lodash "^4.17.21" - memize "^1.1.0" - -"@wordpress/stylelint-config@^19.0.5": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@wordpress/stylelint-config/-/stylelint-config-19.1.0.tgz#ec023dfd265e1f8ae20e5c760f67aee9ba85a1e5" - integrity sha512-K/wB9rhB+pH5WvDh3fV3DN5C3Bud+jPGXmnPY8fOXKMYI3twCFozK/j6sVuaJHqGp/0kKEF0hkkGh+HhD30KGQ== - dependencies: - stylelint-config-recommended "^3.0.0" - stylelint-config-recommended-scss "^4.2.0" - stylelint-scss "^3.17.2" - -"@wordpress/token-list@^2.2.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/token-list/-/token-list-2.6.0.tgz#a4342a164f5121a8f446149ce4d5046b49ec5870" - integrity sha512-luJsNfsM6SkVBT32jOvzSDYym8qm45nS6roD3zR6AFzRXAnWouXHvoJJRjGwvRzq1+s8nUy+gQmBApgvmGAtYg== - dependencies: - "@babel/runtime" "^7.16.0" - lodash "^4.17.21" - -"@wordpress/url@^3.2.0", "@wordpress/url@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@wordpress/url/-/url-3.7.0.tgz#6b342da37e7776b012589a755c10565e94b17e8e" - integrity sha512-oDhuWIA8yS06+2cU3XipgDWROt7CBJJhA2UcQ8FU3pCwzV17gvjUMQZBIFEschSxttVMnDZSKi9C1D29HQtmPg== - dependencies: - "@babel/runtime" "^7.16.0" - lodash "^4.17.21" - -"@wordpress/warning@^2.2.0", "@wordpress/warning@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-2.6.0.tgz#db1e39671910f1f7b31e81c27a25fd40200f4b82" - integrity sha512-VWdFzDXt0ZQydNvvl0qjlPbqsCA7ZPupwV6U3gMnvMxELirAGONF0zjlD9/y+u7WGndRctzIJC/Er7qBhHVcNA== - -"@wordpress/wordcount@^3.2.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@wordpress/wordcount/-/wordcount-3.6.0.tgz#187de9d76c32a4318c87cc3ac0ace87686e52bfe" - integrity sha512-I2R/PNkC2elDppJRSCYCvSr0GWDpQmM0qzfS1NELKC50HVA6w6YtLRK81YfW6QnDI4P26U6UB5W/dhbiMiIjfQ== - dependencies: - "@babel/runtime" "^7.16.0" - lodash "^4.17.21" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -JSONStream@^1.0.3, JSONStream@^1.3.2: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abstract-browser@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/abstract-browser/-/abstract-browser-1.0.0.tgz#5ea71a937547c88f250b3103b7cbb9163c329016" - integrity sha512-CJC6Wzow4cSFLsKhZJj0EGi3+023xmoRpW1FeNF9ErPwixkJTSO70Op/i6L120I6W36xm9GrXm4yquLNAywrEw== - dependencies: - browser-manifest "^1.0.0" - catering "^2.0.0" - nanoresource "^1.3.0" - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.2.0, acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-node@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-2.0.1.tgz#4a93ba32335950da9250175c654721f20f3375a7" - integrity sha512-VLR5sHqjk+8c5hrKeP2fWaIHb8eewsoxnZ8r2qpwRHXMHuC7KyOPflnOx9dLssVQUurzJ7rO0OzIFjHcndafWw== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0, acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn-walk@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^5.1.0: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.0.4, acorn@^8.2.4: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== - -acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -airbnb-prop-types@^2.10.0, airbnb-prop-types@^2.15.0, airbnb-prop-types@^2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2" - integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== - dependencies: - array.prototype.find "^2.1.1" - function.prototype.name "^1.1.2" - is-regex "^1.1.0" - object-is "^1.1.2" - object.assign "^4.1.0" - object.entries "^1.1.2" - prop-types "^15.7.2" - prop-types-exact "^1.2.0" - react-is "^16.13.1" - -airtap-default@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/airtap-default/-/airtap-default-1.0.0.tgz#2dbfec471020cf2152c77b3381d447436cc247aa" - integrity sha512-57/mkOCfxNZHtbsQ0jsH7g5K1JlOV+rwytJulF6HOdc0lXiHiaksndYagRmbs1GuhCtn3/GIF9A8eTePEWPnUg== - dependencies: - abstract-browser "^1.0.0" - browser-provider "^1.1.0" - open "^7.1.0" - -airtap-match-browsers@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/airtap-match-browsers/-/airtap-match-browsers-1.1.1.tgz#2bded2f72902eaadf5de1e6998e948140249aaf6" - integrity sha512-bscZpmugpAo2v0Gg2NmlP9kFbHnQKTqYKFOWXYcdc2eo2k6MLVxaE2K08BLeO+wp3ctOt0reK/5y6BOLWWXfMg== - dependencies: - browser-names "^1.0.1" - deep-dot "0.0.2" - deep-equal "^2.0.1" - is-fork-pr "^2.5.0" - merge-deep "^3.0.2" - -airtap-multi@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/airtap-multi/-/airtap-multi-1.0.0.tgz#2850dc3f8b3e4a2b34aeeca79e95ac06ef6065ed" - integrity sha512-VD2oXTzre8W03goLO9Sd8YmtVD5GFYIVtqBLfGjiR83b2aWL/GT0ZmDShHLLBe4ehQtt014yhvwg9X6WFMZdDg== - dependencies: - browser-provider "^1.1.0" - debug "^4.1.1" - merge-deep "^3.0.2" - run-parallel-settled "^1.0.0" - -airtap@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/airtap/-/airtap-4.0.4.tgz#52bb095ea4890fe290ed7c641f2fd88b1b29dfe8" - integrity sha512-sWrWdmPYWYWqMLKcS6vUdlpZCutvzn9ephGkEXnxd3tSYcYtY1nEwF6FsOWDLEOO0IGin/Y5kkwZ90+JKxeWxg== - dependencies: - "@airtap/browserify-istanbul" "^4.0.0" - airtap-default "^1.0.0" - airtap-multi "^1.0.0" - browserify "^16.5.2" - bruce-millis-option "^1.0.0" - compression "^1.7.1" - debug "^4.1.0" - engine.io "^6.1.0" - engine.io-client "^6.1.1" - express "^4.17.0" - find-nearest-file "^1.1.0" - globs-to-files "^1.0.0" - http-proxy "^1.18.1" - humanize-duration "^3.23.1" - js-yaml "^4.0.0" - load-script "^2.0.0" - make-promises-safe "^5.1.0" - maybe-combine-errors "^1.0.0" - minimist "^1.2.5" - nanoresource "^1.3.0" - nanoresource-collection "^1.0.0" - on-stream-close "^1.0.0" - readable-stream "^3.6.0" - run-parallel-settled "^1.0.1" - server-destroy "^1.0.1" - shell-quote "^1.7.0" - tap-completed "^1.0.0" - thunky-with-args "^1.0.0" - transient-error "^1.0.0" - uuid "^8.3.0" - watchify "^4.0.0" - -ajv-errors@^1.0.0, ajv-errors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.12.6: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== - -angular-estree-parser@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/angular-estree-parser/-/angular-estree-parser-1.3.1.tgz#5b590c3ef431fccb512755eea563029f84c043ee" - integrity sha512-jvlnNk4aoEmA6EKK12OnsOkCSdsWleBsYB+aWyH8kpfTB6Li1kxWVbHKVldH9zDCwVVi1hXfqPi/gbSv49tkbQ== - dependencies: - lines-and-columns "^1.1.6" - tslib "^1.9.3" - -angular-html-parser@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/angular-html-parser/-/angular-html-parser-1.4.0.tgz#4080989e46cad183264f950fb475590888d31104" - integrity sha512-5KyzzYOeZV9g9ahXw4rbi8IIbMjUdXoarXJ0CfbWue5U1YsvMnjMZJ3oadpU8ZtnIx1zR/dsyt+FLJx2U65d2Q== - dependencies: - tslib "^1.9.3" - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -ansi-styles@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" - integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== - -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.0, anymatch@^3.0.3, anymatch@^3.1.0, anymatch@^3.1.1, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -aria-query@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" - integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== - dependencies: - "@babel/runtime" "^7.10.2" - "@babel/runtime-corejs3" "^7.10.2" - -aria-query@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" - integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-buffer-to-hex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-to-hex/-/array-buffer-to-hex-1.0.0.tgz#9c76e53010ef7bf7bf8a27ebbb41d24e1d83edf4" - integrity sha512-arycdkxgK1cj6s03GDb96tlCxOl1n3kg9M2OHseUc6Pqyqp+lgfceFPmG507eI5V+oxOSEnlOw/dFc7LXBXF4Q== - -array-differ@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" - integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-from@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== - -array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-includes@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" - integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-union@^1.0.1, array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1, array-uniq@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.every@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.3.tgz#31f01b48e1160bc4b49ecab246bf7f765c6686f9" - integrity sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - is-string "^1.0.7" - -array.prototype.filter@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.1.tgz#20688792acdb97a09488eaaee9eebbf3966aae21" - integrity sha512-Dk3Ty7N42Odk7PjU/Ci3zT4pLj20YvuVnneG/58ICM6bt4Ij5kZaJTVQ9TSaWaIECX2sFyz4KItkVZqHNnciqw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -array.prototype.find@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.2.0.tgz#153b8a28ad8965cd86d3117b07e6596af6f2880d" - integrity sha512-sn40qmUiLYAcRb/1HsIQjTTZ1kCy8II8VtZJpMn2Aoen9twULhbWXisfh3HimGqMlHGUul0/TfKCnXg42LuPpQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.4" - es-shim-unscopables "^1.0.0" - -array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.5: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" - integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.2.5, array.prototype.flatmap@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1, assert@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async@^2.5.0, async@^2.6.2: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -asyncreduce@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/asyncreduce/-/asyncreduce-0.1.4.tgz#18210e01978bfdcba043955497a5cd315c0a6a41" - integrity sha512-9q50+pYllC5Xg2BQCJBYvHpc5InGixioeLPxaKvUg3lFwItSbxbEpClPX7+GjXT3RFQk64ThvyGTdFs9ftb/hg== - dependencies: - runnel "~0.5.0" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^10.2.5: - version "10.4.4" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.4.tgz#3e85a245b32da876a893d3ac2ea19f01e7ea5a1e" - integrity sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA== - dependencies: - browserslist "^4.20.2" - caniuse-lite "^1.0.30001317" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -autoprefixer@^9.8.6: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -autosize@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.4.tgz#924f13853a466b633b9309330833936d8bccce03" - integrity sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axe-core@^4.3.5: - version "4.4.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" - integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== - -axobject-query@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" - integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== - -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-loader@^8.2.2: - version "8.2.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b" - integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.0" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-macros@^2.6.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" - integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== - dependencies: - "@babel/runtime" "^7.7.2" - cosmiconfig "^6.0.0" - resolve "^1.12.0" - -babel-plugin-polyfill-corejs2@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" - -babel-plugin-polyfill-regenerator@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== - dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - -bail@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" - integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -balanced-match@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" - integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== - -base64-arraybuffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" - integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== - -base64-js@^1.0.2, base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64id@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bidi-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bidi-js/-/bidi-js-1.0.2.tgz#1a497a762c2ddea377429d2649c9ce0f8a91527f" - integrity sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw== - dependencies: - require-from-string "^2.0.2" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.10.3" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -body-scroll-lock@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" - integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brcast@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brcast/-/brcast-2.0.2.tgz#2db16de44140e418dc37fab10beec0369e78dcef" - integrity sha512-Tfn5JSE7hrUlFcOoaLzVvkbgIemIorMIyoMr3TgvszWW7jFt2C9PdeMLtysYD9RU0MmU17b69+XJG1eRY2OBRg== - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-manifest@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-manifest/-/browser-manifest-1.0.0.tgz#fbf58bb517f687203d8e541c7fcc9292ccce1293" - integrity sha512-+XZt3+6aTlqzI7OWYz4IPx8a2Ogxnl65AA5rTQvPYdB6YO1SLDQLqWJ4TR2QoAwyb29w78vU6trpqX5+9RoXXg== - -browser-names@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/browser-names/-/browser-names-1.1.0.tgz#9bbfcb326b08b8c909bc1c8fd98077299d4600a4" - integrity sha512-ytPHDpg38klSYRfsrvpU9IglWptXoLHWLrXGUuF3p+HqnowPciDAVcmldvey8B+EjP0eC2Mvwnk6sZxRt9PhMQ== - -browser-pack-flat@^3.0.9: - version "3.5.0" - resolved "https://registry.yarnpkg.com/browser-pack-flat/-/browser-pack-flat-3.5.0.tgz#8c3cc15ef9b444c8c40d6240e8eb7c3c90970484" - integrity sha512-u3iJUjs+TC/NGIL2GLyIcn5ppoNZXhTWqSW/gQbGIGvQiXXCQQzr5VWfACFraXQn2JrDlyRnKLeOs5AWXzKI6A== - dependencies: - JSONStream "^1.3.2" - combine-source-map "^0.8.0" - convert-source-map "^1.5.1" - count-lines "^0.1.2" - dedent "^0.7.0" - estree-is-member-expression "^1.0.0" - estree-is-require "^1.0.0" - esutils "^2.0.2" - path-parse "^1.0.5" - scope-analyzer "^2.0.0" - stream-combiner "^0.2.2" - through2 "^3.0.1" - transform-ast "^2.4.2" - umd "^3.0.3" - wrap-comment "^1.0.0" - -browser-pack@^6.0.1, browser-pack@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" - integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== - dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.8.0" - defined "^1.0.0" - safe-buffer "^5.1.1" - through2 "^2.0.0" - umd "^3.0.0" - -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-provider@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browser-provider/-/browser-provider-1.2.0.tgz#338382e5e3196a2a8d9510f6fc3df3427497908b" - integrity sha512-8ixthQVQxgDyVt3tMzbbaonsjq+eDDS9opxCE+b7EzaqbgD9LVMunmijCm3/rmKFC7JLeHY0d2o0hsH98G1tKw== - dependencies: - airtap-match-browsers "^1.0.0" - browser-manifest "^1.0.0" - catering "^2.0.0" - -browser-resolve@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" - integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== - dependencies: - resolve "^1.17.0" - -browser-unpack@^1.1.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/browser-unpack/-/browser-unpack-1.4.2.tgz#7a708774dc7448df1c24a735d65d409708b95ce2" - integrity sha512-uHkiY4bmXjjBBWoKH1aRnEGTQxUUCCcVtoJfH9w1lmGGjETY4u93Zk+GRYkCE/SRMrdoMTINQ/1/manr/3aMVA== - dependencies: - acorn-node "^1.5.2" - concat-stream "^1.5.0" - minimist "^1.1.1" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserify@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.2.tgz#d926835e9280fa5fd57f5bc301f2ef24a972ddfe" - integrity sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g== - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^2.0.0" - browserify-zlib "~0.2.0" - buffer "~5.2.1" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^2.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - mkdirp-classic "^0.5.2" - module-deps "^6.2.3" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^3.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.10.1" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserify@^17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-17.0.0.tgz#4c48fed6c02bfa2b51fd3b670fddb805723cdc22" - integrity sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w== - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^2.0.0" - browserify-zlib "~0.2.0" - buffer "~5.2.1" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.1" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^3.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.2.1" - labeled-stream-splicer "^2.0.0" - mkdirp-classic "^0.5.2" - module-deps "^6.2.3" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "^1.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum-object "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^3.0.0" - stream-http "^3.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.12.0" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6, browserslist@^4.20.2: - version "4.20.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== - dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" - -bruce-millis-option@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bruce-millis-option/-/bruce-millis-option-1.0.0.tgz#d2247d576d7593d5644853c08244934283dc6300" - integrity sha512-CJOBham7dfRAU97F7vmGEmNXcSkK0GlDV+0QqsaVUu7cH/LO4I/y80j1GWX7MasKJMo6zQU2oCuTRl/ko2kyQA== - dependencies: - bruce-millis "^1.0.0" - -bruce-millis@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bruce-millis/-/bruce-millis-1.0.0.tgz#78c7cb499283fb7feb5ef1432fc3a11e4b4ce469" - integrity sha512-fUdlIysbXdH8xLNLfNHzcmJOEaJ845eVrmi1VuTCHOEB4tVdQeJ+xh+dkShiYwkntCdCbUyWk1t/R4V4fRhoqw== - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffer@^5.2.1, buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -builtins@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" - -bundle-collapser@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/bundle-collapser/-/bundle-collapser-1.4.0.tgz#c6e5c1104e91865b5158e91053b38788f50aa1d7" - integrity sha512-Gd3K3+3KI1Utuk+gwAvuOVOjT/2XLGL8tU6FwDKk04LlOZkYfT0pwQllsG1Dv8RRhgcjNxZSDmmSXb0AOkwSwg== - dependencies: - browser-pack "^6.0.2" - browser-unpack "^1.1.0" - concat-stream "^1.5.0" - falafel "^2.1.0" - minimist "^1.1.1" - through2 "^2.0.0" - -bytes@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cacache@^15.0.5: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" - integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-matcher@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-2.0.0.tgz#a38bee4e9ddbeec76aa31cc20311085a34dd395b" - integrity sha512-CIDC5wZZfZ2VjZu849WQckS58Z3pJXFfRaSjNjgo/q3in5zxkhTwVL83vttgtmvyLG7TuDlLlBya7SKP6CjDIA== - dependencies: - deep-equal "^1.0.0" - espurify "^2.0.0" - estraverse "^4.0.0" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0, camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -candygraph@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/candygraph/-/candygraph-0.3.1.tgz#cd1d179cf99d47a6eb8d7a02c6af8302c9e3d5cf" - integrity sha512-hKucn1biGRIDYxtYj+a5lIl5L8oQy7reE4aQAFKBteq3EodYfZQnLgmbMoQItBFZMLFa173fm3CLfiLhwM6lZw== - dependencies: - gl-matrix "^3.3.0" - regl "^1.7.0" - -caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317: - version "1.0.30001332" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" - integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -catering@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" - integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== - -chalk@3.0.0, chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -check-node-version@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/check-node-version/-/check-node-version-4.2.1.tgz#42f7e3c6e2427327b5c9080dae593d8997fe9a06" - integrity sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw== - dependencies: - chalk "^3.0.0" - map-values "^1.0.1" - minimist "^1.2.0" - object-filter "^1.0.2" - run-parallel "^1.1.4" - semver "^6.3.0" - -cheerio-select@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" - integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== - dependencies: - css-select "^4.3.0" - css-what "^6.0.1" - domelementtype "^2.2.0" - domhandler "^4.3.1" - domutils "^2.8.0" - -cheerio@^1.0.0-rc.3: - version "1.0.0-rc.10" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" - integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== - dependencies: - cheerio-select "^1.5.0" - dom-serializer "^1.3.2" - domhandler "^4.2.0" - htmlparser2 "^6.1.0" - parse5 "^6.0.1" - parse5-htmlparser2-tree-adapter "^6.0.1" - tslib "^2.2.0" - -chevrotain@^10.1.2: - version "10.1.2" - resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-10.1.2.tgz#c990ab43e32fd0bfb176ad1cbdebf48302ac8542" - integrity sha512-hvRiQuhhTZxkPMGD/dke+s1EGo8AkKDBU05CcufBO278qgAQSwIC4QyLdHz0CFHVtqVYWjlAS5D1KwvBbaHT+w== - dependencies: - "@chevrotain/cst-dts-gen" "^10.1.2" - "@chevrotain/gast" "^10.1.2" - "@chevrotain/types" "^10.1.2" - "@chevrotain/utils" "^10.1.2" - lodash "4.17.21" - regexp-to-ast "0.5.0" - -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.4.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cjk-regex@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cjk-regex/-/cjk-regex-2.0.0.tgz#060aa111e61092768c438ccc9c643a53e8fe1ee5" - integrity sha512-E4gFi2f3jC0zFVHpaAcupW+gv9OejZ2aV3DP/LlSO0dDcZJAXw7W0ivn+vN17edN/PhU4HCgs1bfx7lPK7FpdA== - dependencies: - regexp-util "^1.2.1" - unicode-regex "^2.0.0" - -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -classnames@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -clean-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b" - integrity sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A== - dependencies: - "@types/webpack" "^4.4.31" - del "^4.1.1" - -cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== - dependencies: - restore-cursor "^2.0.0" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== - dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== - dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.0" - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -clipboard@^2.0.1, clipboard@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.10.tgz#e61f6f7139ac5044c58c0484dcac9fb2a918bfd6" - integrity sha512-cz3m2YVwFz95qSEbCDi2fzLN/epEN9zXBvfgAoGkvGOJZATMl9gtTDVOtBYkx2ODUJl2kvmud7n32sV2BpYR4g== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -clone-deep@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" - integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= - dependencies: - for-own "^0.1.3" - is-plain-object "^2.0.1" - kind-of "^3.0.2" - lazy-cache "^1.0.3" - shallow-clone "^0.1.2" - -clone-regexp@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f" - integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q== - dependencies: - is-regexp "^2.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.16, colorette@^2.0.17: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== - -combine-source-map@^0.8.0, combine-source-map@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" - integrity sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg== - dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.19.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -commander@^9.3.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" - integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== - -commander@~2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= - dependencies: - graceful-readlink ">= 1.0.0" - -comment-parser@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.2.4.tgz#489f3ee55dfd184a6e4bffb31baba284453cb760" - integrity sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw== - -common-shakeify@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/common-shakeify/-/common-shakeify-1.1.1.tgz#b8ceff048db5dbfa7704ce83f0c993f560c73fa3" - integrity sha512-M9hTU14RkpKvNggSU4zJIzgm89inwjnhipxvKxCNms/gM77R7keRqOqGYIM/Jr4BBhtbZB8ZF//raYqAbHk/DA== - dependencies: - "@goto-bus-stop/common-shake" "^2.3.0" - convert-source-map "^1.5.1" - through2 "^2.0.3" - transform-ast "^2.4.3" - wrap-comment "^1.0.1" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.1: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -compute-scroll-into-view@^1.0.17: - version "1.0.17" - resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" - integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg== - -computed-style@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/computed-style/-/computed-style-0.1.4.tgz#7f344fd8584b2e425bedca4a1afc0e300bb05d74" - integrity sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ= - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -"consolidated-events@^1.1.1 || ^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/consolidated-events/-/consolidated-events-2.0.2.tgz#da8d8f8c2b232831413d9e190dc11669c79f4a91" - integrity sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ== - -constants-browserify@^1.0.0, constants-browserify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= - -convert-hex@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" - integrity sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A== - -convert-source-map@^1.1.1, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" - integrity sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cookie@~0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.22.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.0.tgz#7ce17ab57c378be2c717c7c8ed8f82a50a25b3e4" - integrity sha512-WwA7xbfRGrk8BGaaHlakauVXrlYmAIkk8PNGb1FDQS+Rbrewc3pgFfwJFRw6psmJVAll7Px9UHRYE16oRQnwAQ== - dependencies: - browserslist "^4.20.2" - semver "7.0.0" - -core-js-pure@^3.20.2: - version "3.22.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.22.0.tgz#0eaa54b6d1f4ebb4d19976bb4916dfad149a3747" - integrity sha512-ylOC9nVy0ak1N+fPIZj00umoZHgUVqmucklP5RT5N+vJof38klKn8Ze6KGyvchdClvEBr6LcQqJpI216LUMqYA== - -core-js@^2.6.5: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.19.1: - version "3.22.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.0.tgz#b52007870c5e091517352e833b77f0b2d2b259f3" - integrity sha512-8h9jBweRjMiY+ORO7bdWSeWfHhLPO7whobj7Z2Bl0IDo00C228EdGgH7FE4jGumbEjzcFfkfW8bXgdkEDhnwHQ== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cors@~2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cosmiconfig@5.2.1, cosmiconfig@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -count-lines@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/count-lines/-/count-lines-0.1.2.tgz#e33493fb6860a82f7159d8237843fbfaefee5962" - integrity sha512-YS8P4UYXX/hrDyLU3r/A5OcCNwdNbJFJckbe8j+x2Jhxsr2J4/rYl0sDwOljLZL7Uxc4s7mRSNcQD8dSjobz+g== - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-loader@^5.1.3: - version "5.2.7" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" - integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== - dependencies: - icss-utils "^5.1.0" - loader-utils "^2.0.0" - postcss "^8.2.15" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^3.0.0" - semver "^7.3.5" - -css-mediaquery@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/css-mediaquery/-/css-mediaquery-0.1.2.tgz#6a2c37344928618631c54bd33cedd301da18bea0" - integrity sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA= - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -css-what@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -csstype@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" - integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== - -cwd@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/cwd/-/cwd-0.10.0.tgz#172400694057c22a13b0cf16162c7e4b7a7fe567" - integrity sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc= - dependencies: - find-pkg "^0.1.2" - fs-exists-sync "^0.1.0" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -damerau-levenshtein@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" - integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== - -dash-ast@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" - integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== - -dash-ast@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-2.0.1.tgz#8d0fd2e601c59bf874cc22877ee7dd889f54dee8" - integrity sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -dashify@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dashify/-/dashify-2.0.0.tgz#fff270ca2868ca427fee571de35691d6e437a648" - integrity sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A== - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -date-fns@^1.27.2: - version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - -debounce@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" - integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -dedent@0.7.0, dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-dot@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/deep-dot/-/deep-dot-0.0.2.tgz#d7488c8777440032ebb9c6b8e9773c4135bc3ffa" - integrity sha512-SB8QWQ0wL8poi7ddhKaXijYbHYQYuv4lPvQGxOIwVDYu5G0OjUSTkvjPB1H9AGW0rOf49XHKWOtFnBTJtmHbvQ== - -deep-equal@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-equal@^2.0.1, deep-equal@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" - integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== - dependencies: - call-bind "^1.0.0" - es-get-iterator "^1.1.1" - get-intrinsic "^1.0.1" - is-arguments "^1.0.4" - is-date-object "^1.0.2" - is-regex "^1.1.1" - isarray "^2.0.5" - object-is "^1.1.4" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.3" - which-boxed-primitive "^1.0.1" - which-collection "^1.0.1" - which-typed-array "^1.1.2" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-extend@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" - integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w== - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -del@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" - integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== - dependencies: - globby "^10.0.1" - graceful-fs "^4.2.2" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.1" - p-map "^3.0.0" - rimraf "^3.0.0" - slash "^3.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -deps-sort@^2.0.0, deps-sort@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" - integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== - dependencies: - JSONStream "^1.0.3" - shasum-object "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-gpu@^4.0.14: - version "4.0.18" - resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-4.0.18.tgz#5f367d9fea3e0570ccbe47fec920fa03f5705b4d" - integrity sha512-dqBIrt6EJ7YfSWN9d1HylWI/2j7YbnDNdU4jH4zm7/l4XJQhsEk77WrNEYfp9v8OWPmho3hqv54up1zafwxgzw== - dependencies: - webgl-constants "^1.1.1" - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detective@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" - integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== - dependencies: - acorn-node "^1.8.2" - defined "^1.0.0" - minimist "^1.2.6" - -devtools-protocol@0.0.869402: - version "0.0.869402" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.869402.tgz#03ade701761742e43ae4de5dc188bcd80f156d8d" - integrity sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA== - -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff@4.0.2, diff@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -direction@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442" - integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ== - -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -document.contains@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/document.contains/-/document.contains-1.0.2.tgz#4260abad67a6ae9e135c1be83d68da0db169d5f0" - integrity sha512-YcvYFs15mX8m3AO1QNQy3BlIpSMfNRj3Ujk2BEJxsZG+HZf7/hZ6jr7mDpXrF8q+ff95Vef5yjhiZxm8CGJr6Q== - dependencies: - define-properties "^1.1.3" - -dom-accessibility-api@^0.5.9: - version "0.5.13" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b" - integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw== - -dom-scroll-into-view@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz#e8f36732dd089b0201a88d7815dc3f88e6d66c7e" - integrity sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4= - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^1.0.1, dom-serializer@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domain-browser@^1.1.1, domain-browser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^2.5.2, domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dotignore@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -downshift@^6.0.15: - version "6.1.7" - resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.7.tgz#fdb4c4e4f1d11587985cd76e21e8b4b3fa72e44c" - integrity sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg== - dependencies: - "@babel/runtime" "^7.14.8" - compute-scroll-into-view "^1.0.17" - prop-types "^15.7.2" - react-is "^17.0.2" - tslib "^2.3.0" - -draco3d@^1.4.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.5.2.tgz#a09604a9e6bbf4e5a69208af4622038c55ef4ca7" - integrity sha512-AeRQ25Fb29c14vpjnh167UGW0nGY0ZpEM3ld+zEXoEySlmEXcXfsCHZeTgo5qXH925V1JsdjrzasdaQ22/vXog== - -duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== - dependencies: - readable-stream "^2.0.2" - -duplexer@^0.1.2, duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -duplexify@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" - integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== - dependencies: - end-of-stream "^1.4.1" - inherits "^2.0.3" - readable-stream "^3.1.1" - stream-shift "^1.0.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -editorconfig-to-prettier@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/editorconfig-to-prettier/-/editorconfig-to-prettier-0.1.1.tgz#7391c7067dfd68ffee65afc2c4fbe4fba8d4219a" - integrity sha512-MMadSSVRDb4uKdxV6bCXXN4cTsxIsXYtV4XdPu6FOCSAw6zsCIDA+QEktEU+u6h+c/mTrul5NR+pwFpPxwetiQ== - -editorconfig@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== - dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.4.84: - version "1.4.111" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.111.tgz#897613f6504f3f17c9381c7499a635b413e4df4e" - integrity sha512-/s3+fwhKf1YK4k7btOImOzCQLpUjS6MaPf0ODTNuT4eTM1Bg4itBpLkydhOzJmpmH6Z9eXFyuuK5czsmzRzwtw== - -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encoding@^0.1.12: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -engine.io-client@^6.1.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" - integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.2.3" - xmlhttprequest-ssl "~2.0.0" - -engine.io-parser@~5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" - integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== - -engine.io@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" - integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== - dependencies: - "@types/cookie" "^0.4.1" - "@types/cors" "^2.8.12" - "@types/node" ">=10.0.0" - accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.4.1" - cors "~2.8.5" - debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.2.3" - -enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@~2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== - -enzyme-shallow-equal@^1.0.0, enzyme-shallow-equal@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e" - integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q== - dependencies: - has "^1.0.3" - object-is "^1.1.2" - -enzyme-to-json@^3.4.4: - version "3.6.2" - resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.6.2.tgz#94f85c413bcae8ab67be53b0a94b69a560e27823" - integrity sha512-Ynm6Z6R6iwQ0g2g1YToz6DWhxVnt8Dy1ijR2zynRKxTyBGA8rCDXU3rs2Qc4OKvUvc2Qoe1bcFK6bnPs20TrTg== - dependencies: - "@types/cheerio" "^0.22.22" - lodash "^4.17.21" - react-is "^16.12.0" - -enzyme@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" - integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== - dependencies: - array.prototype.flat "^1.2.3" - cheerio "^1.0.0-rc.3" - enzyme-shallow-equal "^1.0.1" - function.prototype.name "^1.1.2" - has "^1.0.3" - html-element-map "^1.2.0" - is-boolean-object "^1.0.1" - is-callable "^1.1.5" - is-number-object "^1.0.4" - is-regex "^1.0.5" - is-string "^1.0.5" - is-subset "^0.1.1" - lodash.escape "^4.0.1" - lodash.isequal "^4.5.0" - object-inspect "^1.7.0" - object-is "^1.0.2" - object.assign "^4.1.0" - object.entries "^1.1.1" - object.values "^1.1.1" - raf "^3.4.1" - rst-selector-parser "^2.2.3" - string.prototype.trim "^1.2.1" - -equivalent-key-map@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz#be4d57049bb8d46a81d6e256c1628465620c2a13" - integrity sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew== - -err-code@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" - integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.4: - version "1.19.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" - integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.19.5, es-abstract@^1.20.0: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.4.3" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-get-iterator@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" - integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.0" - has-symbols "^1.0.1" - is-arguments "^1.1.0" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.5" - isarray "^2.0.5" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@~0.10.14: - version "0.10.62" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" - integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== - dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - next-tick "^1.1.0" - -es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3, es6-map@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A== - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@^0.1.5, es6-set@~0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8" - integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== - dependencies: - d "^1.0.1" - es5-ext "^0.10.62" - es6-iterator "~2.0.3" - es6-symbol "^3.1.3" - event-emitter "^0.3.5" - type "^2.7.2" - -es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -es6-weak-map@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" - -esbuild-android-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz#3c7b2f2a59017dab3f2c0356188a8dd9cbdc91c8" - integrity sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg== - -esbuild-android-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz#e301db818c5a67b786bf3bb7320e414ac0fcf193" - integrity sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg== - -esbuild-darwin-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz#11726de5d0bf5960b92421ef433e35871c091f8d" - integrity sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ== - -esbuild-darwin-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz#ad89dafebb3613fd374f5a245bb0ce4132413997" - integrity sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg== - -esbuild-freebsd-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz#6bfb52b4a0d29c965aa833e04126e95173289c8a" - integrity sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA== - -esbuild-freebsd-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz#38a3fed8c6398072f9914856c7c3e3444f9ef4dd" - integrity sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w== - -esbuild-linux-32@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz#942dc70127f0c0a7ea91111baf2806e61fc81b32" - integrity sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ== - -esbuild-linux-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz#6d748564492d5daaa7e62420862c31ac3a44aed9" - integrity sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg== - -esbuild-linux-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz#28cd899beb2d2b0a3870fd44f4526835089a318d" - integrity sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA== - -esbuild-linux-arm@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz#6441c256225564d8794fdef5b0a69bc1a43051b5" - integrity sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q== - -esbuild-linux-mips64le@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz#d4927f817290eaffc062446896b2a553f0e11981" - integrity sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ== - -esbuild-linux-ppc64le@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz#b6d660dc6d5295f89ac51c675f1a2f639e2fb474" - integrity sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw== - -esbuild-linux-riscv64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz#2801bf18414dc3d3ad58d1ea83084f00d9d84896" - integrity sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA== - -esbuild-linux-s390x@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz#12a634ae6d3384cacc2b8f4201047deafe596eae" - integrity sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ== - -esbuild-netbsd-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz#951bbf87600512dfcfbe3b8d9d117d684d26c1b8" - integrity sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w== - -esbuild-openbsd-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz#26705b61961d525d79a772232e8b8f211fdbb035" - integrity sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA== - -esbuild-sunos-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz#d794da1ae60e6e2f6194c44d7b3c66bf66c7a141" - integrity sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA== - -esbuild-windows-32@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz#0670326903f421424be86bc03b7f7b3ff86a9db7" - integrity sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg== - -esbuild-windows-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz#64f32acb7341f3f0a4d10e8ff1998c2d1ebfc0a9" - integrity sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw== - -esbuild-windows-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz#4fe7f333ce22a922906b10233c62171673a3854b" - integrity sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA== - -esbuild@^0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.5.tgz#5effd05666f621d4ff2fe2c76a67c198292193ff" - integrity sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg== - optionalDependencies: - "@esbuild/linux-loong64" "0.15.5" - esbuild-android-64 "0.15.5" - esbuild-android-arm64 "0.15.5" - esbuild-darwin-64 "0.15.5" - esbuild-darwin-arm64 "0.15.5" - esbuild-freebsd-64 "0.15.5" - esbuild-freebsd-arm64 "0.15.5" - esbuild-linux-32 "0.15.5" - esbuild-linux-64 "0.15.5" - esbuild-linux-arm "0.15.5" - esbuild-linux-arm64 "0.15.5" - esbuild-linux-mips64le "0.15.5" - esbuild-linux-ppc64le "0.15.5" - esbuild-linux-riscv64 "0.15.5" - esbuild-linux-s390x "0.15.5" - esbuild-netbsd-64 "0.15.5" - esbuild-openbsd-64 "0.15.5" - esbuild-sunos-64 "0.15.5" - esbuild-windows-32 "0.15.5" - esbuild-windows-64 "0.15.5" - esbuild-windows-arm64 "0.15.5" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^1.6.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - integrity sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ== - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-prettier@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9" - integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== - -eslint-config-standard-jsx@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz#70852d395731a96704a592be5b0bfaccfeded239" - integrity sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ== - -eslint-config-standard@17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" - integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== - -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== - dependencies: - debug "^3.2.7" - resolve "^1.20.0" - -eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== - dependencies: - debug "^3.2.7" - find-up "^2.1.0" - -eslint-plugin-es@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" - integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" - has "^1.0.3" - is-core-module "^2.8.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-jest@^24.1.3: - version "24.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz#206ac0833841e59e375170b15f8d0955219c4889" - integrity sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA== - dependencies: - "@typescript-eslint/experimental-utils" "^4.0.1" - -eslint-plugin-jsdoc@^36.0.8: - version "36.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.1.1.tgz#124cd0e53a5d07f01ebde916a96dd1a6009625d6" - integrity sha512-nuLDvH1EJaKx0PCa9oeQIxH6pACIhZd1gkalTUxZbaxxwokjs7TplqY0Q8Ew3CoZaf5aowm0g/Z3JGHCatt+gQ== - dependencies: - "@es-joy/jsdoccomment" "0.10.8" - comment-parser "1.2.4" - debug "^4.3.2" - esquery "^1.4.0" - jsdoc-type-pratt-parser "^1.1.1" - lodash "^4.17.21" - regextras "^0.8.0" - semver "^7.3.5" - spdx-expression-parse "^3.0.1" - -eslint-plugin-jsx-a11y@^6.4.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" - integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== - dependencies: - "@babel/runtime" "^7.16.3" - aria-query "^4.2.2" - array-includes "^3.1.4" - ast-types-flow "^0.0.7" - axe-core "^4.3.5" - axobject-query "^2.2.0" - damerau-levenshtein "^1.0.7" - emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.2.1" - language-tags "^1.0.5" - minimatch "^3.0.4" - -eslint-plugin-markdown@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz#79274bf17ce3ead48e4a55cbcb6d7ce735754280" - integrity sha512-BfvXKsO0K+zvdarNc801jsE/NTLmig4oKhZ1U3aSUgTf2dB/US5+CrfGxMsCK2Ki1vS1R3HPok+uYpufFndhzw== - dependencies: - object-assign "^4.0.1" - remark-parse "^5.0.0" - unified "^6.1.2" - -eslint-plugin-n@^15.1.0: - version "15.2.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.2.4.tgz#d62021a0821ae650701ed459756aaf478a9b6056" - integrity sha512-tjnVMv2fiXYMnuiIFI8QMtyUFI42SckEEWvi8h68SWGWshfqO6SSCASy24dGMGAiy7NUk6DZt90DM0iNUsmQ5w== - dependencies: - builtins "^5.0.1" - eslint-plugin-es "^4.1.0" - eslint-utils "^3.0.0" - ignore "^5.1.1" - is-core-module "^2.9.0" - minimatch "^3.1.2" - resolve "^1.10.1" - semver "^7.3.7" - -eslint-plugin-prettier@^3.3.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" - integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-promise@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz#017652c07c9816413a41e11c30adc42c3d55ff18" - integrity sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw== - -eslint-plugin-react-hooks@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz#71c39e528764c848d8253e1aa2c7024ed505f6c4" - integrity sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ== - -eslint-plugin-react@^7.22.0: - version "7.29.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" - integrity sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ== - dependencies: - array-includes "^3.1.4" - array.prototype.flatmap "^1.2.5" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.0" - object.values "^1.1.5" - prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.6" - -eslint-plugin-react@^7.28.0: - version "7.30.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22" - integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg== - dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" - prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.7" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.0.0, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^2.0.0, eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^7.0.0" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.3" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -eslint@^7.17.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -eslint@^8.13.0: - version "8.22.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" - integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== - dependencies: - "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.3.3" - esquery "^1.4.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.15.0" - globby "^11.1.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - -espree@^9.3.2, espree@^9.3.3: - version "9.3.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" - integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -espurify@^2.0.0, espurify@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/espurify/-/espurify-2.1.1.tgz#afb043f22fac908d991dd25f7bf40bcf03935b9c" - integrity sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ== - -esquery@^1.0.1, esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0, esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-is-function@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/estree-is-function/-/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" - integrity sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA== - -estree-is-identifier@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/estree-is-identifier/-/estree-is-identifier-1.0.0.tgz#50433fa88d3d00a1bf7a1d7df6e4e67f36aa89f7" - integrity sha512-2BDRGrkQJV/NhCAmmE33A35WAaxq3WQaGHgQuD//7orGWfpFqj8Srkwvx0TH+20yIdOF1yMQwi8anv5ISec2AQ== - -estree-is-member-expression@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/estree-is-member-expression/-/estree-is-member-expression-1.0.0.tgz#e724721e0a14949d363915fd71448eaa6312f590" - integrity sha512-Ec+X44CapIGExvSZN+pGkmr5p7HwUVQoPQSd458Lqwvaf4/61k/invHSh4BYK8OXnCkfEhWuIoG5hayKLQStIg== - -estree-is-require@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/estree-is-require/-/estree-is-require-1.0.0.tgz#fce2c6126d141d1f9316e8c07799d7f0a55bb69b" - integrity sha512-oWxQdSEmnUwNZsDQYiBNpVxKEhMmsJQSSxnDrwsr1MWtooCLfhgzsNGzmokdmfK0EzEIS5V4LPvqxv1Kmb1vvA== - dependencies: - estree-is-identifier "^1.0.0" - -esutils@2.0.3, esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -event-emitter@^0.3.5, event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== - dependencies: - d "1" - es5-ext "~0.10.14" - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events-to-array@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" - integrity sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA== - -events@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" - integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== - -events@^3.0.0, events@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^2.0.3, execa@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" - integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^3.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -execall@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" - integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow== - dependencies: - clone-regexp "^2.1.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" - integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= - dependencies: - os-homedir "^1.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -expect-puppeteer@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz#1c948af08acdd6c8cbdb7f90e617f44d86888886" - integrity sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA== - -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== - dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - -express@^4.17.0: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.0" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.10.3" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" - integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== - dependencies: - type "^2.5.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-zip@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - -falafel@^2.1.0: - version "2.2.5" - resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.2.5.tgz#3ccb4970a09b094e9e54fead2deee64b4a589d56" - integrity sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ== - dependencies: - acorn "^7.1.1" - isarray "^2.0.1" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.0.3, fast-glob@^3.2.5, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fast-memoize@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" - integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== - -fast-safe-stringify@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -fflate@^0.6.9: - version "0.6.10" - resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" - integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg== - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filename-reserved-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" - integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= - -filenamify@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" - integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== - dependencies: - filename-reserved-regex "^2.0.0" - strip-outer "^1.0.1" - trim-repeated "^1.0.0" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-file-up@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/find-file-up/-/find-file-up-0.1.3.tgz#cf68091bcf9f300a40da411b37da5cce5a2fbea0" - integrity sha1-z2gJG8+fMApA2kEbN9pczlovvqA= - dependencies: - fs-exists-sync "^0.1.0" - resolve-dir "^0.1.0" - -find-nearest-file@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-nearest-file/-/find-nearest-file-1.1.0.tgz#e29441740329a2015f7655faecd7b85e02cad686" - integrity sha512-NMsS0ITOwpBPrHOyO7YUtDhaVEGUKS0kBJDVaWZPuCzO7JMW+uzFQQVts/gPyIV9ioyNWDb5LjhHWXVf1OnBDA== - -find-parent-dir@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" - integrity sha512-41+Uo9lF5JNGpIMGrujNKDuqH9ofU2ISJ1XCZPLIN/Yayql599PtA0ywYtlLMYmJcSPkr4uAF14wJmKlW2Fx3g== - -find-parent-dir@~0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.1.tgz#c5c385b96858c3351f95d446cab866cbf9f11125" - integrity sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A== - -find-pkg@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/find-pkg/-/find-pkg-0.1.2.tgz#1bdc22c06e36365532e2a248046854b9788da557" - integrity sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc= - dependencies: - find-file-up "^0.1.2" - -find-process@^1.4.3: - version "1.4.7" - resolved "https://registry.yarnpkg.com/find-process/-/find-process-1.4.7.tgz#8c76962259216c381ef1099371465b5b439ea121" - integrity sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg== - dependencies: - chalk "^4.0.0" - commander "^5.1.0" - debug "^4.1.1" - -find-project-root@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/find-project-root/-/find-project-root-1.1.1.tgz#d242727a2d904725df5714f23dfdcdedda0b6ef8" - integrity sha512-4+yZ013W+EZc+hvdgA2RlzlgNfP1eGdMNxU6xzw1yt518cF6/xZD3kLV+bprYX5+AD0IL76xcN28TPqYJHxrHw== - -find-root@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -flow-parser@0.111.3: - version "0.111.3" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.111.3.tgz#4c256aa21a5dbb53d5305e3512cc120659ca08f3" - integrity sha512-iEjGZ94OBMcESxnLorXNjJmtd/JtQYXUVrQpfwvtAKkuyawRmv+2LM6nqyOsOJkISEYbyY6ziudRE0u4VyPSVA== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -from2-string@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/from2-string/-/from2-string-1.1.0.tgz#18282b27d08a267cb3030cd2b8b4b0f212af752a" - integrity sha512-m8vCh+KnXXXBtfF2VUbiYlQ+nczLcntB0BrtNgpmLkHylhObe9WF1b2LZjBBzrZzA6P4mkEla6ZYQoOUTG8cYA== - dependencies: - from2 "^2.0.3" - -from2@^2.0.3, from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-exists-sync@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" - integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.1.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.0, function.prototype.name@^1.1.2, function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -functions-have-names@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" - integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-assigned-identifiers@^1.1.0, get-assigned-identifiers@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== - -get-browser-rtc@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz#d1494e299b00f33fc8e9d6d3343ba4ba99711a2c" - integrity sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stdin@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" - integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== - -get-stdin@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" - integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== - -get-stdin@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" - integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= - -get-stream@4.1.0, get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -gettext-parser@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-1.4.0.tgz#f8baf34a292f03d5e42f02df099d301f167a7ace" - integrity sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA== - dependencies: - encoding "^0.1.12" - safe-buffer "^5.1.1" - -gl-matrix@^3.3.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.4.3.tgz#fc1191e8320009fd4d20e9339595c6041ddc22c9" - integrity sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA== - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^5.0.10: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.0, glob@^7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~7.1.2: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-cache@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/global-cache/-/global-cache-1.2.1.tgz#39ca020d3dd7b3f0934c52b75363f8d53312c16d" - integrity sha512-EOeUaup5DgWKlCMhA9YFqNRIlZwoxt731jCh47WBV9fQqHgXhr3Fa55hfgIUqilIcPsfdNKN7LHjrNY+Km40KA== - dependencies: - define-properties "^1.1.2" - is-symbol "^1.0.1" - -global-modules@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" - integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= - dependencies: - global-prefix "^0.1.4" - is-windows "^0.2.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" - integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= - dependencies: - homedir-polyfill "^1.0.0" - ini "^1.3.4" - is-windows "^0.2.0" - which "^1.2.12" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^12.0.0, globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -globals@^13.15.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== - dependencies: - type-fest "^0.20.2" - -globals@^13.6.0, globals@^13.9.0: - version "13.13.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" - integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== - dependencies: - type-fest "^0.20.2" - -globby@6.1.0, globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globjoin@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" - integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= - -globs-to-files@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/globs-to-files/-/globs-to-files-1.0.0.tgz#54490f6d1f4b9fd2de9d99445146ffb37550380d" - integrity sha512-zNZNFS6hwQ0rsbu8EKAX+1j1kZk2qglDBfxRMJYnlNxCzFVOLGpWaRjK745cSK+zDrjLQ5qIrwhkdghTiR6x7A== - dependencies: - array-uniq "~1.0.2" - asyncreduce "~0.1.4" - glob "^5.0.10" - xtend "^4.0.0" - -glsl-noise@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz#367745f3a33382c0eeec4cb54b7e99cfc1d7670b" - integrity sha1-NndF86MzgsDu7Ey1S36Zz8HXZws= - -gonzales-pe@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" - integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== - dependencies: - minimist "^1.2.5" - -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.2, graceful-fs@^4.2.4: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= - -gradient-parser@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/gradient-parser/-/gradient-parser-0.1.5.tgz#0c7e2179559e5ce7d8d71f4423af937100b2248c" - integrity sha1-DH4heVWeXOfY1x9EI6+TcQCyJIw= - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -graphql@14.6.0: - version "14.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49" - integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg== - dependencies: - iterall "^1.2.2" - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - -handlebars@^4.0.13: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-dynamic-import@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" - integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -highlight-words-core@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/highlight-words-core/-/highlight-words-core-1.2.2.tgz#1eff6d7d9f0a22f155042a00791237791b1eeaaa" - integrity sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoist-non-react-statics@^3.2.1, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hpq@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/hpq/-/hpq-1.3.0.tgz#fe73406927f6327ea66aa6055fbb130ac9a249c0" - integrity sha512-fvYTvdCFOWQupGxqkahrkA+ERBuMdzkxwtUdKrxR6rmMd4Pfl+iZ1QiQYoaZ0B/v0y59MOMnz3XFUWbT50/NWA== - -html-element-attributes@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-2.2.1.tgz#ff397c7a3d6427064b117b6f36b45be08e79db93" - integrity sha512-gGTgCeQu+g1OFExZKWQ1LwbFXxLJ6cGdCGj64ByEaxatr/EPVc23D6Gxngb37ao+SNInP/sGu8FXxRsSxMm7aQ== - -html-element-map@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.1.tgz#44b2cbcfa7be7aa4ff59779e47e51012e1c73c08" - integrity sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg== - dependencies: - array.prototype.filter "^1.0.0" - call-bind "^1.0.2" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-styles@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/html-styles/-/html-styles-1.0.0.tgz#a18061fd651f99c6b75c45c8e0549a3bc3e01a75" - integrity sha512-cDl5dcj73oI4Hy0DSUNh54CAwslNLJRCCoO+RNkVo+sBrjA/0+7E/xzvj3zH/GxbbBLGJhE0hBe1eg+0FINC6w== - -html-tag-names@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.5.tgz#f537420c16769511283f8ae1681785fbc89ee0a9" - integrity sha512-aI5tKwNTBzOZApHIynaAwecLBv8TlZTEy/P4Sj2SzzAhBrGuI8yGZ0UIXVPQzOHGS+to2mjb04iy6VWt/8+d8A== - -html-tags@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" - integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== - -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - integrity sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg== - -htmlparser2@^3.10.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-parser-js@>=0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" - integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-proxy@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== - -humanize-duration@^3.23.1: - version "3.27.2" - resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.27.2.tgz#4b4e565bec098d22c9a54344e16156d1c649f160" - integrity sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg== - -iconv-lite@0.4.24, iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-utils@^5.0.0, icss-utils@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ieee754@^1.1.13, ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-emit-webpack-plugin@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/ignore-emit-webpack-plugin/-/ignore-emit-webpack-plugin-2.0.6.tgz#570c30a08ee4c2ce6060f80d4bc4c5c5fec4d606" - integrity sha512-/zC18RWCC2wz4ZwnS4UoujGWzvSKy28DLjtE+jrGBOXej6YdmityhBDzE8E0NlktEqi4tgdNbydX8B6G4haHSQ== - -ignore@4.0.6, ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^3.3.7: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^5.1.1, ignore@^5.1.8, ignore@^5.1.9, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -ignore@~5.1.4: - version "5.1.9" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" - integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== - -immutable@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== - -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - integrity sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA== - dependencies: - source-map "~0.5.3" - -inquirer@^7.0.0: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -insert-module-globals@^7.0.0, insert-module-globals@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" - integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== - dependencies: - JSONStream "^1.0.3" - acorn-node "^1.5.2" - combine-source-map "^0.8.0" - concat-stream "^1.6.1" - is-buffer "^1.1.0" - path-is-absolute "^1.0.1" - process "~0.11.0" - through2 "^2.0.0" - undeclared-identifiers "^1.1.2" - xtend "^4.0.0" - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - -interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -irregular-plurals@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-3.3.0.tgz#67d0715d4361a60d9fd9ee80af3881c631a31ee2" - integrity sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arguments@^1.0.4, is-arguments@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.0.2, is-buffer@^1.1.0, is-buffer@^1.1.4, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-ci@2.0.0, is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -is-core-module@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1, is-date-object@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fork-pr@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/is-fork-pr/-/is-fork-pr-2.5.0.tgz#75f9f44ae245448c84f6c1b07fa816592538da56" - integrity sha512-kca2MhWNsJSUxN/Ud1CPPa+r+XpRnUXfheB8bvgjP6kCgCMYgIL5YMlwx0k7xnyqjnNaEzkQgS14S/SzhOPYkQ== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== - -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== - dependencies: - symbol-observable "^1.1.0" - -is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-path-inside@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-obj@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-plain-obj@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" - integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-promise@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" - integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== - -is-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== - -is-regexp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" - integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== - -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= - -is-symbol@^1.0.1, is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-touch-device@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-touch-device/-/is-touch-device-1.0.1.tgz#9a2fd59f689e9a9bf6ae9a86924c4ba805a42eab" - integrity sha512-LAYzo9kMT1b2p19L/1ATGt2XcSilnzNlyvq6c0pbPRVisLbAPpLqr53tIJS00kvrTkj0HtR8U7+u8X0yR8lPSw== - -is-typed-array@^1.1.3, is-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" - integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - -is-windows@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" - integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-wsl@^2.1.1, is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.1, isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -iterall@^1.2.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" - integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== - -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== - dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" - -jest-circus@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-26.6.3.tgz#3cc7ef2a6a3787e5d7bfbe2c72d83262154053e7" - integrity sha512-ACrpWZGcQMpbv13XbzRzpytEJlilP/Su0JtNCi5r/xLpOUhnaIJr8leYYpLEMgPFURZISEHrnnpmB54Q/UziPw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - stack-utils "^2.0.2" - throat "^5.0.0" - -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== - dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" - prompts "^2.0.1" - yargs "^15.4.1" - -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" - -jest-dev-server@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/jest-dev-server/-/jest-dev-server-4.4.0.tgz#557113faae2877452162696aa94c1e44491ab011" - integrity sha512-STEHJ3iPSC8HbrQ3TME0ozGX2KT28lbT4XopPxUm2WimsX3fcB3YOptRh12YphQisMhfqNSNTZUmWyT3HEXS2A== - dependencies: - chalk "^3.0.0" - cwd "^0.10.0" - find-process "^1.4.3" - prompts "^2.3.0" - spawnd "^4.4.0" - tree-kill "^1.2.2" - wait-on "^3.3.0" - -jest-diff@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-docblock@25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" - integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== - dependencies: - detect-newline "^3.0.0" - -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== - dependencies: - chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" - -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== - dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" - -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" - slash "^3.0.0" - -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.7.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" - source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - cjs-module-lexer "^0.6.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^15.4.1" - -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - natural-compare "^1.4.0" - pretty-format "^26.6.2" - semver "^7.3.2" - -jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== - dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.3.0" - leven "^3.1.0" - pretty-format "^26.6.2" - -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== - dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.6.2" - string-length "^4.0.1" - -jest-worker@^26.2.1, jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== - dependencies: - "@jest/core" "^26.6.3" - import-local "^3.0.2" - jest-cli "^26.6.3" - -js-base64@^2.1.9: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.0.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -js-yaml@~3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdoc-type-pratt-parser@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.1.1.tgz#10fe5e409ba38de22a48b555598955a26ff0160f" - integrity sha512-uelRmpghNwPBuZScwgBG/OzodaFk5RbO5xaivBdsAY70icWfShwZ7PCMO0x1zSkOa8T1FzHThmrdoyg/0AwV5g== - -jsdoc-type-pratt-parser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.2.0.tgz#3482a3833b74a88c95a6ba7253f0c0de3b77b9f5" - integrity sha512-4STjeF14jp4bqha44nKMY1OUI6d2/g6uclHWUCZ7B4DoLzaB5bmpTkQrpqU+vSVzMD0LsKAOskcnI3I3VfIpmg== - -jsdom@^16.4.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stable-stringify@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== - dependencies: - jsonify "~0.0.0" - -json-stable-stringify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" - integrity sha512-nKtD/Qxm7tWdZqJoldEC7fF0S41v0mWbeaXG3637stOWfyGxTgWTYE2wtfKmjzpvxv2MA2xzxsXOIiwUpkX6Qw== - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json2php@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/json2php/-/json2php-0.0.4.tgz#6bd85a1dda6a5dd7e91022bb24403cc1b7c2ee34" - integrity sha1-a9haHdpqXdfpECK7JEA8wbfC7jQ= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== - -jsonc-parser@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" - integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA== - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz#6ab1e52c71dfc0c0707008a91729a9491fe9f76c" - integrity sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw== - dependencies: - array-includes "^3.1.4" - object.assign "^4.1.2" - -kind-of@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" - integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= - dependencies: - is-buffer "^1.0.2" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -klona@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== - -known-css-properties@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.21.0.tgz#15fbd0bbb83447f3ce09d8af247ed47c68ede80d" - integrity sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw== - -ktx-parse@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.2.2.tgz#b037b66044855215b332cb73104590af49e47791" - integrity sha512-cFBc1jnGG2WlUf52NbDUXK2obJ+Mo9WUkBRvr6tP6CKxRMvZwDDFNV3JAS4cewETp5KyexByfWm9sm+O8AffiQ== - -ktx-parse@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.4.5.tgz#79905e22281a9d3e602b2ff522df1ee7d1813aa6" - integrity sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg== - -labeled-stream-splicer@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" - integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== - dependencies: - inherits "^2.0.1" - stream-splicer "^2.0.0" - -language-subtag-registry@~0.3.2: - version "0.3.21" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" - integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== - -language-tags@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= - dependencies: - language-subtag-registry "~0.3.2" - -lazy-cache@^0.2.3: - version "0.2.7" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" - integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - -lerp@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/lerp/-/lerp-1.0.3.tgz#a18c8968f917896de15ccfcc28d55a6b731e776e" - integrity sha512-70Rh4rCkJDvwWiTsyZ1HmJGvnyfFah4m6iTux29XmasRiZPDBpT9Cfa4ai73+uLZxnlKruUS62jj2lb11wURiA== - -leven@3.1.0, leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lilconfig@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== - -line-height@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/line-height/-/line-height-0.3.1.tgz#4b1205edde182872a5efa3c8f620b3187a9c54c9" - integrity sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk= - dependencies: - computed-style "~0.1.3" - -lines-and-columns@1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linguist-languages@7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/linguist-languages/-/linguist-languages-7.6.0.tgz#6e3d9aa7a98ddf5299f8115788dce8deb8a97c9d" - integrity sha512-DBZPIWjrQmb/52UlSEN8MTiwwugrAh4NBX9/DyIG8IuO8rDLYDRM+KVPbuiPVKd3ResxYtZB5AiSuc8dTzOSog== - -linkify-it@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" - integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== - dependencies: - uc.micro "^1.0.1" - -lint-staged@9.4.3: - version "9.4.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.4.3.tgz#f55ad5f94f6e105294bfd6499b23142961f7b982" - integrity sha512-PejnI+rwOAmKAIO+5UuAZU9gxdej/ovSEOAY34yMfC3OS4Ac82vCBPzAWLReR9zCPOMqeVwQRaZ3bUBpAsaL2Q== - dependencies: - chalk "^2.4.2" - commander "^2.20.0" - cosmiconfig "^5.2.1" - debug "^4.1.1" - dedent "^0.7.0" - del "^5.0.0" - execa "^2.0.3" - listr "^0.14.3" - log-symbols "^3.0.0" - micromatch "^4.0.2" - normalize-path "^3.0.0" - please-upgrade-node "^3.1.1" - string-argv "^0.3.0" - stringify-object "^3.3.0" - -lint-staged@^13.0.3: - version "13.0.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" - integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== - dependencies: - cli-truncate "^3.1.0" - colorette "^2.0.17" - commander "^9.3.0" - debug "^4.3.4" - execa "^6.1.0" - lilconfig "2.0.5" - listr2 "^4.0.5" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.2" - pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.1.1" - -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== - -listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" - integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" - integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== - dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" - -listr2@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" - integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.5" - through "^2.3.8" - wrap-ansi "^7.0.0" - -listr@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" - -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" - integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== - dependencies: - graceful-fs "^4.1.15" - parse-json "^4.0.0" - pify "^4.0.1" - strip-bom "^3.0.0" - type-fest "^0.3.0" - -load-script@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-script/-/load-script-2.0.0.tgz#40821aaa59e9bbe7be2e28b6ab053e6f44330fa1" - integrity sha512-km6cyoPW4rM22JMGb+SHUKPMZVDpUaMpMAKrv8UHWllIxc/qjgMGHD91nY+5hM+/NFs310OZ2pqQeJKs7HqWPA== - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-runner@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" - integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.differencewith@~4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz#bafafbc918b55154e179176a00bb0aefaac854b7" - integrity sha1-uvr7yRi1UVTheRdqALsK76rIVLc= - -lodash.escape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" - integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= - -lodash.flatten@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - -lodash.memoize@~3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" - integrity sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.omit@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" - integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= - -lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - -lodash.unescape@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" - integrity sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg== - -lodash.uniqby@4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== - -lodash@4.17.21, lodash@^4.1.1, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== - dependencies: - chalk "^1.0.0" - -log-symbols@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== - dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -longest-streak@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" - integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^4.0.1, lru-cache@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lz-string@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= - -magic-string@^0.23.2: - version "0.23.2" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.23.2.tgz#204d7c3ea36c7d940209fcc54c39b9f243f13369" - integrity sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA== - dependencies: - sourcemap-codec "^1.4.1" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-promises-safe@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/make-promises-safe/-/make-promises-safe-5.1.0.tgz#dd9d311f555bcaa144f12e225b3d37785f0aa8f2" - integrity sha512-AfdZ49rtyhQR/6cqVKGoH7y4ql7XkS5HJI1lZm0/5N6CQosy1eYbBJ/qbhkKHzo17UH7M918Bysf6XB9f3kS1g== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-age-cleaner@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -map-values@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-values/-/map-values-1.0.1.tgz#768b8e79c009bf2b64fee806e22a7b1c4190c990" - integrity sha1-douOecAJvytk/ugG4ip7HEGQyZA= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -markdown-it@10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" - integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== - dependencies: - argparse "^1.0.7" - entities "~2.0.0" - linkify-it "^2.0.0" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -markdownlint-cli@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.21.0.tgz#d792b157e9de63ce1d6b6e13d7cf83d5e552d5e8" - integrity sha512-gvnczz3W3Wgex851/cIQ/2y8GNhY+EVK8Ael8kRd8hoSQ0ps9xjhtwPwMyJPoiYbAoPxG6vSBFISiysaAbCEZg== - dependencies: - commander "~2.9.0" - deep-extend "~0.5.1" - get-stdin "~5.0.1" - glob "~7.1.2" - ignore "~5.1.4" - js-yaml "~3.13.1" - jsonc-parser "~2.2.0" - lodash.differencewith "~4.5.0" - lodash.flatten "~4.4.0" - markdownlint "~0.18.0" - markdownlint-rule-helpers "~0.6.0" - minimatch "~3.0.4" - rc "~1.2.7" - -markdownlint-rule-helpers@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.6.0.tgz#3a866a340d394d21d40777b787d3ad84489405c5" - integrity sha512-LiZVAbg9/cqkBHtLNNqHV3xuy4Y2L/KuGU6+ZXqCT9NnCdEkIoxeI5/96t+ExquBY0iHy2CVWxPH16nG1RKQVQ== - -markdownlint@^0.18.0, markdownlint@~0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.18.0.tgz#906ab9229da4c4be074d0b79de23a69bfa8471d3" - integrity sha512-nQAfK9Pbq0ZRoMC/abNGterEnV3kL8MZmi0WHhw8WJKoIbsm3cXGufGsxzCRvjW15cxe74KWcxRSKqwplS26Bw== - dependencies: - markdown-it "10.0.0" - -mathml-tag-names@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" - integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== - -maybe-combine-errors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/maybe-combine-errors/-/maybe-combine-errors-1.0.0.tgz#e9592832e61fc47643a92cff3c1f33e27211e5be" - integrity sha512-eefp6IduNPT6fVdwPp+1NgD0PML1NU5P6j1Mj5nz1nidX8/sWY7119WL8vTAHgqfsY74TzW0w1XPgdYEKkGZ5A== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdast-util-from-markdown@^0.8.0: - version "0.8.5" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" - integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^2.0.0" - micromark "~2.11.0" - parse-entities "^2.0.0" - unist-util-stringify-position "^2.0.0" - -mdast-util-to-markdown@^0.6.0: - version "0.6.5" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" - integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== - dependencies: - "@types/unist" "^2.0.0" - longest-streak "^2.0.0" - mdast-util-to-string "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.0.0" - zwitch "^1.0.0" - -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -mem@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" - integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== - dependencies: - map-age-cleaner "^0.1.3" - mimic-fn "^2.1.0" - p-is-promise "^2.1.0" - -memize@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/memize/-/memize-1.1.0.tgz#4a5a684ac6992a13b1299043f3e49b1af6a0b0d3" - integrity sha512-K4FcPETOMTwe7KL2LK0orMhpOmWD2wRGwWWpbZy0fyArwsyIKR8YJVz8+efBAh3BO4zPqlSICu4vsLTRRqtFAg== - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" - integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "^4.0.2" - normalize-package-data "^2.5.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.13.1" - yargs-parser "^18.1.3" - -meow@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" - integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize "^1.2.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-deep@^3.0.2, merge-deep@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.3.tgz#1a2b2ae926da8b2ae93a0ac15d90cd1922766003" - integrity sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA== - dependencies: - arr-union "^3.1.0" - clone-deep "^0.2.4" - kind-of "^3.0.2" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-source-map@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" - integrity sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA== - dependencies: - source-map "^0.5.6" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -meshline@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/meshline/-/meshline-2.0.4.tgz#39c7bcf36b503397642f2312e6211f2a8ecf75c5" - integrity sha512-Jh6DJl/zLqA4xsKvGv5950jr2ukyXQE1wgxs8u94cImHrvL6soVIggqjP+2hVHZXGYaKnWszhtjuCbKNeQyYiw== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromark@~2.11.0: - version "2.11.4" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" - integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== - dependencies: - debug "^4.0.0" - parse-entities "^2.0.0" - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -mini-css-extract-plugin@^1.3.9: - version "1.6.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" - integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - webpack-sources "^1.1.0" - -minify-stream@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/minify-stream/-/minify-stream-2.1.0.tgz#2df5cceee43260f57017cb90739fbf15ca7ade04" - integrity sha512-P5xE4EQRkn7Td54VGcgfDMFx1jmKPPIXCdcMfrbXS6cNHK4dO1LXwtYFb48hHrSmZfT+jlGImvHgSZEkbpNtCw== - dependencies: - concat-stream "^2.0.0" - convert-source-map "^1.5.0" - duplexify "^4.1.1" - from2-string "^1.1.0" - terser "^4.7.0" - xtend "^4.0.1" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@~3.0.4: - version "3.0.8" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" - integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0, minimist-options@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@3.1.6, minipass@^3.0.0, minipass@^3.1.1: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mixin-object@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" - integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mmd-parser@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mmd-parser/-/mmd-parser-1.0.4.tgz#87cc05782cb5974ca854f0303fc5147bc9d690e7" - integrity sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg== - -module-deps@^6.2.3: - version "6.2.3" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" - integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA== - dependencies: - JSONStream "^1.0.3" - browser-resolve "^2.0.0" - cached-path-relative "^1.0.2" - concat-stream "~1.6.0" - defined "^1.0.0" - detective "^5.2.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.4.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" - -moment-timezone@^0.5.31: - version "0.5.34" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c" - integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg== - dependencies: - moment ">= 2.9.0" - -"moment@>= 2.9.0", moment@>=1.6.0, moment@^2.22.1: - version "2.29.2" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4" - integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg== - -moo@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== - -mousetrap@^1.6.5: - version "1.6.5" - resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" - integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -mri@^1.1.5: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -mrmime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" - integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multi-stage-sourcemap@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz#b09fc8586eaa17f81d575c4ad02e0f7a3f6b1105" - integrity sha512-umaOM+8BZByZIB/ciD3dQLzTv50rEkkGJV78ta/tIVc/J/rfGZY5y1R+fBD3oTaolx41mK8rRcyGtYbDXlzx8Q== - dependencies: - source-map "^0.1.34" - -multimatch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" - integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== - dependencies: - array-differ "^2.0.3" - array-union "^1.0.2" - arrify "^1.0.1" - minimatch "^3.0.4" - -multisplice@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/multisplice/-/multisplice-1.0.0.tgz#e74cf2948dcb51a6c317fc5e22980a652f7830e9" - integrity sha512-KU5tVjIdTGsMb92JlWwEZCGrvtI1ku9G9GuNbWdQT/Ici1ztFXX0L8lWpbbC3pISVMfBNL56wdqplHvva2XSlA== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -mutexify@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/mutexify/-/mutexify-1.4.0.tgz#b7f4ac0273c81824b840887c6a6e0bfab14bbe94" - integrity sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg== - dependencies: - queue-tick "^1.0.0" - -n-readlines@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/n-readlines/-/n-readlines-1.0.0.tgz#c353797f216c253fdfef7e91da4e8b17c29a91a6" - integrity sha512-ISDqGcspVu6U3VKqtJZG1uR55SmNNF9uK0EMq1IvNVVZOui6MW6VR0+pIZhqz85ORAGp+4zW+5fJ/SE7bwEibA== - -nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -nanobench@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nanobench/-/nanobench-2.1.1.tgz#c2f23fcce116d50b4998b1954ba114674c137269" - integrity sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A== - dependencies: - browser-process-hrtime "^0.1.2" - chalk "^1.1.3" - mutexify "^1.1.0" - pretty-hrtime "^1.0.2" - -nanoid@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" - integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -nanoresource-collection@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/nanoresource-collection/-/nanoresource-collection-1.0.0.tgz#df34cc1b040839d7309d63d95c8b7620e75be4bc" - integrity sha512-S43CyBqLVil3JkG+F7G3SnezPJxdukhirc8yirg931hPWsq+sChwNjaCXkSmeCzIJL6smVvFMyYISmEcLDkwTw== - dependencies: - catering "^2.0.0" - maybe-combine-errors "^1.0.0" - nanoresource "^1.3.0" - -nanoresource@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/nanoresource/-/nanoresource-1.3.0.tgz#823945d9667ab3e81a8b2591ab8d734552878cd0" - integrity sha512-OI5dswqipmlYfyL3k/YMm7mbERlh4Bd1KuKdMHpeoVD1iVxqxaTMKleB4qaA2mbQZ6/zMNSxCXv9M9P/YbqTuQ== - dependencies: - inherits "^2.0.4" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -nearley@^2.7.10: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-fetch@^2.6.1: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - -node-releases@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-selector@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" - integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= - -npm-package-json-lint@^5.0.0: - version "5.4.2" - resolved "https://registry.yarnpkg.com/npm-package-json-lint/-/npm-package-json-lint-5.4.2.tgz#f2565b1c71ce7dd8a5a14b29da0d54bd6509aad0" - integrity sha512-DH1MSvYvm+cuQFXcPehIIu/WiYzMYs7BOxlhOOFHaH2SNrA+P2uDtTEe5LOG90Ci7PTwgF/dCmSKM2HWTgWXNA== - dependencies: - ajv "^6.12.6" - ajv-errors "^1.0.1" - chalk "^4.1.2" - cosmiconfig "^7.0.1" - debug "^4.3.2" - globby "^11.0.4" - ignore "^5.1.9" - is-plain-obj "^3.0.0" - jsonc-parser "^3.0.0" - log-symbols "^4.1.0" - meow "^6.1.1" - plur "^4.0.0" - semver "^7.3.5" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" - integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== - dependencies: - path-key "^3.0.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== - dependencies: - boolbase "^1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== - -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-filter@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/object-filter/-/object-filter-1.0.2.tgz#af0b797ffebeaf8a52c6637cedbe8816cfec1bc8" - integrity sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g= - -object-inspect@^1.12.0, object-inspect@^1.7.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object-inspect@^1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-is@^1.0.1, object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.4, object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.assign@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.fromentries@^2.0.0, object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.hasown@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" - integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.19.1" - -object.hasown@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" - integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== - dependencies: - define-properties "^1.1.4" - es-abstract "^1.19.5" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.0.4, object.values@^1.1.0, object.values@^1.1.1, object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -on-stream-close@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/on-stream-close/-/on-stream-close-1.0.0.tgz#4f833fe2e8e240168e555860a3dc003e45ef3c84" - integrity sha512-0MkKOAgt9r3XCqYRTIcnxks6fQ3Jd4xPognM5pUED1VLnpyLHsTWXW7LW7V/4deOKfvn4bnn3ahOFcQ2AOgJ/g== - dependencies: - catering "^2.0.0" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== - dependencies: - mimic-fn "^1.0.0" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^7.1.0: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -opener@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -opentype.js@^1.3.3: - version "1.3.4" - resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77" - integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw== - dependencies: - string.prototype.codepointat "^0.2.1" - tiny-inflate "^1.0.3" - -optionator@^0.8.1, optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -os-browserify@^0.3.0, os-browserify@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -outpipe@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" - integrity sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA== - dependencies: - shell-quote "^1.4.2" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== - -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== - dependencies: - aggregate-error "^3.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parents@^1.0.0, parents@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - integrity sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg== - dependencies: - path-platform "~0.11.15" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-entities@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" - integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parse-srcset@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" - integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== - -parse5-htmlparser2-tree-adapter@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - -parse5@6.0.1, parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1, path-browserify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-browserify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.5, path-parse@^1.0.6, path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pirates@^4.0.1: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-conf@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" - integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== - dependencies: - find-up "^3.0.0" - load-json-file "^5.2.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -please-upgrade-node@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - -plur@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/plur/-/plur-4.0.0.tgz#729aedb08f452645fe8c58ef115bf16b0a73ef84" - integrity sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg== - dependencies: - irregular-plurals "^3.2.0" - -portfinder@^1.0.17: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-html@^0.36.0: - version "0.36.0" - resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204" - integrity sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw== - dependencies: - htmlparser2 "^3.10.0" - -postcss-less@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-2.0.0.tgz#5d190b8e057ca446d60fe2e2587ad791c9029fb8" - integrity sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ== - dependencies: - postcss "^5.2.16" - -postcss-less@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" - integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA== - dependencies: - postcss "^7.0.14" - -postcss-loader@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" - integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== - dependencies: - cosmiconfig "^7.0.0" - klona "^2.0.4" - loader-utils "^2.0.0" - schema-utils "^3.0.0" - semver "^7.3.4" - -postcss-media-query-parser@0.2.3, postcss-media-query-parser@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" - integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" - integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-resolve-nested-selector@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" - integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= - -postcss-safe-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== - dependencies: - postcss "^7.0.26" - -postcss-sass@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz#91f0f3447b45ce373227a98b61f8d8f0785285a3" - integrity sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg== - dependencies: - gonzales-pe "^4.3.0" - postcss "^7.0.21" - -postcss-scss@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" - integrity sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug== - dependencies: - postcss "^7.0.0" - -postcss-scss@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz#ec3a75fa29a55e016b90bf3269026c53c1d2b383" - integrity sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA== - dependencies: - postcss "^7.0.6" - -postcss-selector-parser@2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-syntax@^0.36.2: - version "0.36.2" - resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c" - integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w== - -postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss-values-parser@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz#5d9fa63e2bcb0179ce48f3235303765eb89f3047" - integrity sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ== - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -postcss@^8.2.15: - version "8.4.12" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" - integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== - dependencies: - nanoid "^3.3.1" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -potpack@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.2.tgz#23b99e64eb74f5741ffe7656b5b5c4ddce8dfc14" - integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier-standard@^16.4.1: - version "16.4.1" - resolved "https://registry.yarnpkg.com/prettier-standard/-/prettier-standard-16.4.1.tgz#964e7e3f3029427ab8e01bdffb72dea9a87f62c8" - integrity sha512-IW3Sct4GOdqc1s4+1HZjH2HegzLZQ6mDMl2xz6i6KHCac7kCM+obLbvm2e0zp8PytKkLQCdOpj0cWWa48Ruetw== - dependencies: - chalk "^2.4.2" - diff "^4.0.2" - eslint "^6.8.0" - execa "^2.0.4" - find-up "^4.1.0" - get-stdin "^7.0.0" - globby "^6.1.0" - ignore "^3.3.7" - lint-staged "9.4.3" - mri "^1.1.5" - multimatch "^3.0.0" - prettierx "0.11.3" - -prettier@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -"prettier@npm:wp-prettier@2.2.1-beta-1": - version "2.2.1-beta-1" - resolved "https://registry.yarnpkg.com/wp-prettier/-/wp-prettier-2.2.1-beta-1.tgz#8afb761f83426bde870f692edc49adbd3e265118" - integrity sha512-+JHkqs9LC/JPp51yy1hzs3lQ7qeuWCwOcSzpQNeeY/G7oSpnF61vxt7hRh87zNRTr6ob2ndy0W8rVzhgrcA+Gw== - -prettierx@0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/prettierx/-/prettierx-0.11.3.tgz#379d1aa7df4dbd049c1b34a1990d903efa4e6130" - integrity sha512-Xf04LEfD3ITo26i5U/zR++hwqKPG3feR06rrjB0t2o+QFv8ZidFp4o7nPqPGLfE4UwHJgd0qwnZKwm0MsUQHUA== - dependencies: - "@angular/compiler" "8.2.14" - "@babel/code-frame" "7.8.3" - "@babel/parser" "7.9.4" - "@glimmer/syntax" "0.41.4" - "@iarna/toml" "2.2.3" - "@typescript-eslint/typescript-estree" "2.6.1" - angular-estree-parser "1.3.1" - angular-html-parser "1.4.0" - camelcase "5.3.1" - chalk "3.0.0" - cjk-regex "2.0.0" - cosmiconfig "5.2.1" - dashify "2.0.0" - dedent "0.7.0" - diff "4.0.2" - editorconfig "0.15.3" - editorconfig-to-prettier "0.1.1" - escape-string-regexp "2.0.0" - esutils "2.0.3" - find-parent-dir "0.3.0" - find-project-root "1.1.1" - flow-parser "0.111.3" - get-stream "4.1.0" - globby "6.1.0" - graphql "14.6.0" - html-element-attributes "2.2.1" - html-styles "1.0.0" - html-tag-names "1.1.5" - ignore "4.0.6" - is-ci "2.0.0" - jest-docblock "25.3.0" - json-stable-stringify "1.0.1" - leven "3.1.0" - lines-and-columns "1.1.6" - linguist-languages "7.6.0" - lodash.uniqby "4.7.0" - mem "5.1.1" - minimatch "3.0.4" - minimist "1.2.5" - n-readlines "1.0.0" - normalize-path "3.0.0" - parse-srcset "1.0.2" - postcss-less "2.0.0" - postcss-media-query-parser "0.2.3" - postcss-scss "2.0.0" - postcss-selector-parser "2.2.3" - postcss-values-parser "1.5.0" - regexp-util "1.2.2" - remark-math "1.0.6" - remark-parse "5.0.0" - resolve "1.15.1" - semver "6.3.0" - string-width "4.2.0" - unicode-regex "3.0.0" - unified "8.4.2" - vnopts "1.0.2" - yaml "1.8.3" - yaml-unist-parser "1.1.1" - -pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^27.0.2: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-hrtime@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10, process@~0.11.0: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0, progress@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -prompts@^2.0.1, prompts@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prop-types-exact@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" - integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA== - dependencies: - has "^1.0.3" - object.assign "^4.1.0" - reflect.ownkeys "^0.2.0" - -prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.0, prop-types@^15.7.2, prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4, punycode@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -puppeteer-core@^9.0.0: - version "9.1.1" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-9.1.1.tgz#0c189c3275967d65c39270e6b146e559baca3d47" - integrity sha512-zbedbitVIGhmgz0nt7eIdLsnaoVZSlNJfBivqm2w67T8LR2bU1dvnruDZ8nQO0zn++Iet7zHbAOdnuS5+H2E7A== - dependencies: - debug "^4.1.0" - devtools-protocol "0.0.869402" - extract-zip "^2.0.0" - https-proxy-agent "^5.0.0" - node-fetch "^2.6.1" - pkg-dir "^4.2.0" - progress "^2.0.1" - proxy-from-env "^1.1.0" - rimraf "^3.0.2" - tar-fs "^2.0.0" - unbzip2-stream "^1.3.3" - ws "^7.2.3" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.10.3, qs@^6.4.0: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - -querystring-es3@^0.2.0, querystring-es3@~0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -queue-microtask@^1.2.2, queue-microtask@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -queue-tick@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.0.tgz#011104793a3309ae86bfeddd54e251dc94a36725" - integrity sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ== - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== - -r3f-perf@4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/r3f-perf/-/r3f-perf-4.9.1.tgz#f9b0e1e076871e8c54ce2ecf8e7a66c7d4923478" - integrity sha512-IGOrpxIjNhdxV46vqmET4X+C1pIuEk3fPpVHafoEknm1+jiysKLxGOtXGSNlmD3plyi9JRx/cC84BHyJ0Czwkw== - dependencies: - "@stitches/react" "^1.1.0" - candygraph "0.3.1" - lerp "^1.0.3" - rafz "^0.1.14" - react-icons "^4.2.0" - three "*" - three-stdlib "^2.4.0" - zustand "^3.5.10" - -raf@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -rafz@^0.1.14: - version "0.1.14" - resolved "https://registry.yarnpkg.com/rafz/-/rafz-0.1.14.tgz#164f01cf7cc6094e08467247ef351ef5c8d278fe" - integrity sha512-YiQkedSt1urYtYbvHhTQR3l67M8SZbUvga5eJFM/v4vx/GmDdtXlE2hjJIyRjhhO/PjcdGC+CXCYOUA4onit8w== - -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= - -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - -random-string@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/random-string/-/random-string-0.2.0.tgz#a46e4375352beda9a0d7b0d19ed6d321ecd1d82d" - integrity sha512-isA91IquV3ZrFbvwkAtExP8aGL+csx3KGEsEJrvCidzOHioPl5B5g7WyJlk0lMkEz5/i1PqrWTvcdtJHPtrp1g== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= - dependencies: - bytes "1" - string_decoder "0.10" - -rc@~1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -re-resizable@^6.4.0: - version "6.9.6" - resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.9.6.tgz#b95d37e3821481b56ddfb1e12862940a791e827d" - integrity sha512-0xYKS5+Z0zk+vICQlcZW+g54CcJTTmHluA7JUUgvERDxnKAnytylcyPsA+BSFi759s5hPlHmBRegFrwXs2FuBQ== - dependencies: - fast-memoize "^2.5.1" - -re-resizable@^6.9.9: - version "6.9.9" - resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.9.9.tgz#99e8b31c67a62115dc9c5394b7e55892265be216" - integrity sha512-l+MBlKZffv/SicxDySKEEh42hR6m5bAHfNu3Tvxks2c4Ah+ldnWjfnVRwxo/nxF27SsUsxDS0raAzFuJNKABXA== - -react-addons-shallow-compare@^15.6.2: - version "15.6.3" - resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.3.tgz#28a94b0dfee71530852c66a69053d59a1baf04cb" - integrity sha512-EDJbgKTtGRLhr3wiGDXK/+AEJ59yqGS+tKE6mue0aNXT6ZMR7VJbbzIiT6akotmHg1BLj46ElJSb+NBMp80XBg== - dependencies: - object-assign "^4.1.0" - -react-autosize-textarea@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/react-autosize-textarea/-/react-autosize-textarea-7.1.0.tgz#902c84fc395a689ca3a484dfb6bc2be9ba3694d1" - integrity sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g== - dependencies: - autosize "^4.0.2" - line-height "^0.3.1" - prop-types "^15.5.6" - -react-composer@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/react-composer/-/react-composer-5.0.2.tgz#131cb53326abb07363795ad3abb0dc4a3005ee05" - integrity sha512-6E2UNjUF0e7KRY+/faU2Hv7D9zagXnYdTfSSCGdYfuds6mRnVpN19vrbHXShaQzJNVXL4VOUb8qq6DvClDIG1g== - dependencies: - prop-types "^15.6.0" - -react-dates@^17.1.1: - version "17.2.0" - resolved "https://registry.yarnpkg.com/react-dates/-/react-dates-17.2.0.tgz#d8cfe29ceecb3fbe37abbaa385683504cc53cdf6" - integrity sha512-RDlerU8DdRRrlYS0MQ7Z9igPWABGLDwz6+ykBNff67RM3Sset2TDqeuOr+R5o00Ggn5U47GeLsGcSDxlZd9cHw== - dependencies: - airbnb-prop-types "^2.10.0" - consolidated-events "^1.1.1 || ^2.0.0" - is-touch-device "^1.0.1" - lodash "^4.1.1" - object.assign "^4.1.0" - object.values "^1.0.4" - prop-types "^15.6.1" - react-addons-shallow-compare "^15.6.2" - react-moment-proptypes "^1.6.0" - react-outside-click-handler "^1.2.0" - react-portal "^4.1.5" - react-with-styles "^3.2.0" - react-with-styles-interface-css "^4.0.2" - -react-dom@^17.0.1, react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" - -react-icons@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.4.0.tgz#a13a8a20c254854e1ec9aecef28a95cdf24ef703" - integrity sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg== - -react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -"react-is@^16.12.0 || ^17.0.0 || ^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.0.0.tgz#026f6c4a27dbe33bf4a35655b9e1327c4e55e3f5" - integrity sha512-yUcBYdBBbo3QiPsgYDcfQcIkGZHfxOaoE6HLSnr1sPzMhdyxusbfKOSUbSd/ocGi32dxcj366PsTj+5oggeKKw== - -react-is@^17.0.0, react-is@^17.0.1, react-is@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-merge-refs@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" - integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ== - -react-moment-proptypes@^1.6.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/react-moment-proptypes/-/react-moment-proptypes-1.8.1.tgz#7ba4076147f6b5998f0d4f51d302d6d8c62049fd" - integrity sha512-Er940DxWoObfIqPrZNfwXKugjxMIuk1LAuEzn23gytzV6hKS/sw108wibi9QubfMN4h+nrlje8eUCSbQRJo2fQ== - dependencies: - moment ">=1.6.0" - -react-outside-click-handler@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/react-outside-click-handler/-/react-outside-click-handler-1.3.0.tgz#3831d541ac059deecd38ec5423f81e80ad60e115" - integrity sha512-Te/7zFU0oHpAnctl//pP3hEAeobfeHMyygHB8MnjP6sX5OR8KHT1G3jmLsV3U9RnIYo+Yn+peJYWu+D5tUS8qQ== - dependencies: - airbnb-prop-types "^2.15.0" - consolidated-events "^1.1.1 || ^2.0.0" - document.contains "^1.0.1" - object.values "^1.1.0" - prop-types "^15.7.2" - -react-portal@^4.1.5: - version "4.2.2" - resolved "https://registry.yarnpkg.com/react-portal/-/react-portal-4.2.2.tgz#bff1e024147d6041ba8c530ffc99d4c8248f49fa" - integrity sha512-vS18idTmevQxyQpnde0Td6ZcUlv+pD8GTyR42n3CHUQq9OHi1C4jDE4ZWEbEsrbrLRhSECYiao58cvocwMtP7Q== - dependencies: - prop-types "^15.5.8" - -react-reconciler@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.27.0.tgz#360124fdf2d76447c7491ee5f0e04503ed9acf5b" - integrity sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.21.0" - -react-resize-aware@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/react-resize-aware/-/react-resize-aware-3.1.1.tgz#a428fd53f34dec3a52b68c923a6ebe51a192c63c" - integrity sha512-M8IyVLBN8D6tEUss+bxQlWte3ZYtNEGhg7rBxtCVG8yEBjUlZwUo5EFLq6tnvTZXcgAbCLjsQn+NCoTJKumRYg== - -react-shallow-renderer@^16.13.1: - version "16.15.0" - resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" - integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== - dependencies: - object-assign "^4.1.1" - react-is "^16.12.0 || ^17.0.0 || ^18.0.0" - -react-spring@^8.0.19, react-spring@^8.0.20: - version "8.0.27" - resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-8.0.27.tgz#97d4dee677f41e0b2adcb696f3839680a3aa356a" - integrity sha512-nDpWBe3ZVezukNRandTeLSPcwwTMjNVu1IDq9qA/AMiUqHuRN4BeSWvKr3eIxxg1vtiYiOLy4FqdfCP5IoP77g== - dependencies: - "@babel/runtime" "^7.3.1" - prop-types "^15.5.8" - -react-test-renderer@^17.0.0: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c" - integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ== - dependencies: - object-assign "^4.1.1" - react-is "^17.0.2" - react-shallow-renderer "^16.13.1" - scheduler "^0.20.2" - -react-use-gesture@^9.0.0: - version "9.1.3" - resolved "https://registry.yarnpkg.com/react-use-gesture/-/react-use-gesture-9.1.3.tgz#92bd143e4f58e69bd424514a5bfccba2a1d62ec0" - integrity sha512-CdqA2SmS/fj3kkS2W8ZU8wjTbVBAIwDWaRprX7OKaj7HlGwBasGEFggmk5qNklknqk9zK/h8D355bEJFTpqEMg== - -react-use-measure@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba" - integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig== - dependencies: - debounce "^1.2.1" - -react-with-direction@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/react-with-direction/-/react-with-direction-1.4.0.tgz#ebdf64d685d0650ce966e872e6431ad5a2485444" - integrity sha512-ybHNPiAmaJpoWwugwqry9Hd1Irl2hnNXlo/2SXQBwbLn/jGMauMS2y9jw+ydyX5V9ICryCqObNSthNt5R94xpg== - dependencies: - airbnb-prop-types "^2.16.0" - brcast "^2.0.2" - deepmerge "^1.5.2" - direction "^1.0.4" - hoist-non-react-statics "^3.3.2" - object.assign "^4.1.2" - object.values "^1.1.5" - prop-types "^15.7.2" - -react-with-styles-interface-css@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/react-with-styles-interface-css/-/react-with-styles-interface-css-4.0.3.tgz#c4a61277b2b8e4126b2cd25eca3ac4097bd2af09" - integrity sha512-wE43PIyjal2dexxyyx4Lhbcb+E42amoYPnkunRZkb9WTA+Z+9LagbyxwsI352NqMdFmghR0opg29dzDO4/YXbw== - dependencies: - array.prototype.flat "^1.2.1" - global-cache "^1.2.1" - -react-with-styles@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/react-with-styles/-/react-with-styles-3.2.3.tgz#b058584065bb36c0d80ccc911725492692db8a61" - integrity sha512-MTI1UOvMHABRLj5M4WpODfwnveHaip6X7QUMI2x6zovinJiBXxzhA9AJP7MZNaKqg1JRFtHPXZdroUC8KcXwlQ== - dependencies: - hoist-non-react-statics "^3.2.1" - object.assign "^4.1.0" - prop-types "^15.6.2" - react-with-direction "^1.3.0" - -react@^17.0.1, react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - integrity sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w== - dependencies: - readable-stream "^2.0.2" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -reakit-system@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/reakit-system/-/reakit-system-0.15.2.tgz#a485fab84b3942acbed6212c3b56a6ef8611c457" - integrity sha512-TvRthEz0DmD0rcJkGamMYx+bATwnGNWJpe/lc8UV2Js8nnPvkaxrHk5fX9cVASFrWbaIyegZHCWUBfxr30bmmA== - dependencies: - reakit-utils "^0.15.2" - -reakit-utils@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/reakit-utils/-/reakit-utils-0.15.2.tgz#b4d5836e534576bfd175171541d43182ad97f2d2" - integrity sha512-i/RYkq+W6hvfFmXw5QW7zvfJJT/K8a4qZ0hjA79T61JAFPGt23DsfxwyBbyK91GZrJ9HMrXFVXWMovsKBc1qEQ== - -reakit-warning@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/reakit-warning/-/reakit-warning-0.6.2.tgz#9c346ae483eb1f284f2088653f90cabd26dbee56" - integrity sha512-z/3fvuc46DJyD3nJAUOto6inz2EbSQTjvI/KBQDqxwB0y02HDyeP8IWOJxvkuAUGkWpeSx+H3QWQFSNiPcHtmw== - dependencies: - reakit-utils "^0.15.2" - -reakit@^1.3.8: - version "1.3.11" - resolved "https://registry.yarnpkg.com/reakit/-/reakit-1.3.11.tgz#c15360ac43e94fbe4291d233af3ac5040428252e" - integrity sha512-mYxw2z0fsJNOQKAEn5FJCPTU3rcrY33YZ/HzoWqZX0G7FwySp1wkCYW79WhuYMNIUFQ8s3Baob1RtsEywmZSig== - dependencies: - "@popperjs/core" "^2.5.4" - body-scroll-lock "^3.1.5" - reakit-system "^0.15.2" - reakit-utils "^0.15.2" - reakit-warning "^0.6.2" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -redux-multi@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/redux-multi/-/redux-multi-0.1.12.tgz#28e1fe5e49672cbc5bd8a07f0b2aeaf0ef8355c2" - integrity sha1-KOH+XklnLLxb2KB/Cyrq8O+DVcI= - -redux@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104" - integrity sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw== - dependencies: - "@babel/runtime" "^7.9.2" - -reflect.ownkeys@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" - integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= - -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp-to-ast@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" - integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== - -regexp-util@1.2.2, regexp-util@^1.2.0, regexp-util@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/regexp-util/-/regexp-util-1.2.2.tgz#5cf599134921eb0d776e41d41e9c0da33f0fa2fc" - integrity sha512-5/rl2UD18oAlLQEIuKBeiSIOp1hb5wCXcakl5yvHxlY1wyWI4D5cUKKzCibBeu741PA9JKvZhMqbkDQqPusX3w== - dependencies: - tslib "^1.9.0" - -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.0.0, regexpp@^3.1.0, regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regextras@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.8.0.tgz#ec0f99853d4912839321172f608b544814b02217" - integrity sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ== - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== - dependencies: - jsesc "~0.5.0" - -regl@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/regl/-/regl-1.7.0.tgz#0d185431044a356bf80e9b775b11b935ef2746d3" - integrity sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w== - -remark-math@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-1.0.6.tgz#49eb3dd15d298734c9ae21673115389793af4d1b" - integrity sha512-I43wU/QOQpXvVFXKjA4FHp5xptK65+5F6yolm8+69/JV0EqSOB64wURUZ3JK50JtnTL8FvwLiH2PZ+fvsBxviA== - dependencies: - trim-trailing-lines "^1.1.0" - -remark-parse@5.0.0, remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== - dependencies: - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^1.1.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^1.0.0" - vfile-location "^2.0.0" - xtend "^4.0.1" - -remark-parse@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" - integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== - dependencies: - mdast-util-from-markdown "^0.8.0" - -remark-stringify@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" - integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg== - dependencies: - mdast-util-to-markdown "^0.6.0" - -remark@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz#d15d9bf71a402f40287ebe36067b66d54868e425" - integrity sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA== - dependencies: - remark-parse "^9.0.0" - remark-stringify "^9.0.0" - unified "^9.1.0" - -rememo@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rememo/-/rememo-3.0.0.tgz#06e8e76e108865cc1e9b73329db49f844eaf8392" - integrity sha512-eWtut/7pqMRnSccbexb647iPjN7ir6Tmf4RG92ZVlykFEkHqGYy9tWnpHH3I+FS+WQ6lQ1i1iDgarYzGKgTcRQ== - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.0.0, repeat-string@^1.5.4, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requireindex@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" - integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-bin@^0.4.0: - version "0.4.3" - resolved "https://registry.yarnpkg.com/resolve-bin/-/resolve-bin-0.4.3.tgz#7edf1026d78ec684d69e5a5dbbb321ffdce6938e" - integrity sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw== - dependencies: - find-parent-dir "~0.3.0" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-dir@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" - integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= - dependencies: - expand-tilde "^1.2.2" - global-modules "^0.2.3" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.15.1: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.1.4, resolve@^1.10.1, resolve@^1.17.0, resolve@^1.4.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.3: - version "2.0.0-next.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -resumer@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== - dependencies: - through "~2.3.4" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rst-selector-parser@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" - integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE= - dependencies: - lodash.flattendeep "^4.4.0" - nearley "^2.7.10" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-parallel-settled@^1.0.0, run-parallel-settled@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/run-parallel-settled/-/run-parallel-settled-1.0.1.tgz#68fa9dc286cd21042ef5d6a0b721890fa8db5112" - integrity sha512-YHN5KR7pjtjc1Jejcb02SGrZslYLOJtzdNhBq1gUze/llv3lJ3pgLmfLBM4cbpi+rNv7Yn9AcyD8rtPI2iRmvA== - dependencies: - maybe-combine-errors "^1.0.0" - -run-parallel@^1.1.4, run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rungen@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/rungen/-/rungen-0.3.2.tgz#400c09ebe914e7b17e0b6ef3263400fc2abc7cb3" - integrity sha1-QAwJ6+kU57F+C27zJjQA/Cq8fLM= - -runnel@~0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/runnel/-/runnel-0.5.3.tgz#f9362b165a05fc6f5e46e458f77a1f7ecdc0daec" - integrity sha512-XAVCMr+hCRGKA4AJdNit1aQC0EKCuCZnlxqfeh9u2CbSPSPyLSI/BfavMfoC/WUd6HyaRBWW1usNsVAqWN9hgw== - -rx@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= - -rxjs@^6.3.3, rxjs@^6.6.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.5.5: - version "7.5.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" - integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== - dependencies: - tslib "^2.1.0" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -sass-loader@^10.1.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.2.1.tgz#17e51df313f1a7a203889ce8ff91be362651276e" - integrity sha512-RRvWl+3K2LSMezIsd008ErK4rk6CulIMSwrcc2aZvjymUgKo/vjXGp1rSWmfTUX7bblEOz8tst4wBwWtCGBqKA== - dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" - -sass@^1.26.11: - version "1.50.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.0.tgz#3e407e2ebc53b12f1e35ce45efb226ea6063c7c8" - integrity sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scheduler@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820" - integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== - dependencies: - loose-envify "^1.1.0" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5, schema-utils@^2.6.6: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" - integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -scope-analyzer@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.1.2.tgz#b958162feb59823c2835c7b0229187a97c77e9cd" - integrity sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ== - dependencies: - array-from "^2.1.1" - dash-ast "^2.0.1" - es6-map "^0.1.5" - es6-set "^0.1.5" - es6-symbol "^3.1.1" - estree-is-function "^1.0.0" - get-assigned-identifiers "^1.1.0" - -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== - -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@6.3.0, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^7.0.0, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -server-destroy@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" - integrity sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" - integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= - dependencies: - is-extendable "^0.1.1" - kind-of "^2.0.1" - lazy-cache "^0.2.3" - mixin-object "^2.0.1" - -shasum-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" - integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== - dependencies: - fast-safe-stringify "^2.0.7" - -shasum@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" - integrity sha512-UTzHm/+AzKfO9RgPgRpDIuMSNie1ubXRaljjlhFMNGYoG7z+rm9AHLPMf70R7887xboDH9Q+5YQbWKObFHEAtw== - dependencies: - json-stable-stringify "~0.0.0" - sha.js "~2.4.4" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.4.2, shell-quote@^1.6.1, shell-quote@^1.7.0: - version "1.7.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" - integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -showdown@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.9.1.tgz#134e148e75cd4623e09c21b0511977d79b5ad0ef" - integrity sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA== - dependencies: - yargs "^14.2" - -side-channel@^1.0.3, side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -sigmund@^1.0.1, sigmund@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-html-tokenizer@^0.5.7: - version "0.5.11" - resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz#4c5186083c164ba22a7b477b7687ac056ad6b1d9" - integrity sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og== - -sirv@^1.0.7: - version "1.0.19" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" - integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== - dependencies: - "@polka/url" "^1.0.0-next.20" - mrmime "^1.0.0" - totalist "^1.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-list-map@^2.0.0, source-list-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-loader@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" - integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ== - dependencies: - async "^2.5.0" - loader-utils "^1.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.6, source-map-support@~0.5.10, source-map-support@~0.5.12: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.1.34: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ== - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -sourcemap-codec@^1.4.1: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -spawnd@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/spawnd/-/spawnd-4.4.0.tgz#bb52c5b34a22e3225ae1d3acb873b2cd58af0886" - integrity sha512-jLPOfB6QOEgMOQY15Z6+lwZEhH3F5ncXxIaZ7WHPIapwNNLyjrs61okj3VJ3K6tmP5TZ6cO0VAu9rEY4MD4YQg== - dependencies: - exit "^0.1.2" - signal-exit "^3.0.2" - tree-kill "^1.2.2" - wait-port "^0.2.7" - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -specificity@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" - integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -standard-engine@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-15.0.0.tgz#e37ca2e1a589ef85431043a3e87cb9ce95a4ca4e" - integrity sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA== - dependencies: - get-stdin "^8.0.0" - minimist "^1.2.6" - pkg-conf "^3.1.0" - xdg-basedir "^4.0.0" - -standard@^17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/standard/-/standard-17.0.0.tgz#85718ecd04dc4133908434660788708cca855aa1" - integrity sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA== - dependencies: - eslint "^8.13.0" - eslint-config-standard "17.0.0" - eslint-config-standard-jsx "^11.0.0" - eslint-plugin-import "^2.26.0" - eslint-plugin-n "^15.1.0" - eslint-plugin-promise "^6.0.0" - eslint-plugin-react "^7.28.0" - standard-engine "^15.0.0" - -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stats.js@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d" - integrity sha1-scPcRtlEmLV4t/05hbgaznExzH0= - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -stream-browserify@^2.0.0, stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-browserify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" - integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - dependencies: - inherits "~2.0.4" - readable-stream "^3.5.0" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -stream-combiner@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" - integrity sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ== - dependencies: - duplexer "~0.1.1" - through "~2.3.4" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-http@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" - integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.4" - readable-stream "^3.6.0" - xtend "^4.0.2" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -stream-splicer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" - integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" - -string-argv@^0.3.0, string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.codepointat@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" - integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== - -string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" - side-channel "^1.0.4" - -string.prototype.trim@^1.2.1: - version "1.2.5" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.5.tgz#a587bcc8bfad8cb9829a577f5de30dd170c1682c" - integrity sha512-Lnh17webJVsD6ECeovpVN17RlAKjmz4rF9S+8Y45CkMc/ufVpTkU3vZIyIC7sllQ1FCvObZnnCdNs/HXTUOTlg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -string.prototype.trim@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz#824960787db37a9e24711802ed0c1d1c0254f83e" - integrity sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string_decoder@0.10: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-outer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" - integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== - dependencies: - escape-string-regexp "^1.0.2" - -style-search@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" - integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= - -stylelint-config-recommended-scss@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-4.3.0.tgz#717dc253b4cab246da654cee208e499c5c797ae4" - integrity sha512-/noGjXlO8pJTr/Z3qGMoaRFK8n1BFfOqmAbX1RjTIcl4Yalr+LUb1zb9iQ7pRx1GsEBXOAm4g2z5/jou/pfMPg== - dependencies: - stylelint-config-recommended "^5.0.0" - -stylelint-config-recommended@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz#e0e547434016c5539fe2650afd58049a2fd1d657" - integrity sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ== - -stylelint-config-recommended@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz#fb5653f495a60b4938f2ad3e77712d9e1039ae78" - integrity sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA== - -stylelint-scss@^3.17.2: - version "3.21.0" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.21.0.tgz#9f50898691b16b1c1ca3945837381d98c5b22331" - integrity sha512-CMI2wSHL+XVlNExpauy/+DbUcB/oUZLARDtMIXkpV/5yd8nthzylYd1cdHeDMJVBXeYHldsnebUX6MoV5zPW4A== - dependencies: - lodash "^4.17.15" - postcss-media-query-parser "^0.2.3" - postcss-resolve-nested-selector "^0.1.1" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -stylelint@^13.8.0: - version "13.13.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.13.1.tgz#fca9c9f5de7990ab26a00f167b8978f083a18f3c" - integrity sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ== - dependencies: - "@stylelint/postcss-css-in-js" "^0.37.2" - "@stylelint/postcss-markdown" "^0.36.2" - autoprefixer "^9.8.6" - balanced-match "^2.0.0" - chalk "^4.1.1" - cosmiconfig "^7.0.0" - debug "^4.3.1" - execall "^2.0.0" - fast-glob "^3.2.5" - fastest-levenshtein "^1.0.12" - file-entry-cache "^6.0.1" - get-stdin "^8.0.0" - global-modules "^2.0.0" - globby "^11.0.3" - globjoin "^0.1.4" - html-tags "^3.1.0" - ignore "^5.1.8" - import-lazy "^4.0.0" - imurmurhash "^0.1.4" - known-css-properties "^0.21.0" - lodash "^4.17.21" - log-symbols "^4.1.0" - mathml-tag-names "^2.1.3" - meow "^9.0.0" - micromatch "^4.0.4" - normalize-selector "^0.2.0" - postcss "^7.0.35" - postcss-html "^0.36.0" - postcss-less "^3.1.4" - postcss-media-query-parser "^0.2.3" - postcss-resolve-nested-selector "^0.1.1" - postcss-safe-parser "^4.0.2" - postcss-sass "^0.4.4" - postcss-scss "^2.1.1" - postcss-selector-parser "^6.0.5" - postcss-syntax "^0.36.2" - postcss-value-parser "^4.1.0" - resolve-from "^5.0.0" - slash "^3.0.0" - specificity "^0.4.1" - string-width "^4.2.2" - strip-ansi "^6.0.0" - style-search "^0.1.0" - sugarss "^2.0.0" - svg-tags "^1.0.0" - table "^6.6.0" - v8-compile-cache "^2.3.0" - write-file-atomic "^3.0.3" - -stylis@4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" - integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg== - dependencies: - minimist "^1.1.0" - -sugarss@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" - integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ== - dependencies: - postcss "^7.0.2" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -suspend-react@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.0.8.tgz#b0740c1386b4eb652f17affe4339915ee268bd31" - integrity sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg== - -svg-parser@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" - integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -svgo@^1.2.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -syntax-error@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" - integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== - dependencies: - acorn-node "^1.2.0" - -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -table@^6.0.9, table@^6.6.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tannin@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tannin/-/tannin-1.2.0.tgz#1da6fe65280dca4c3d84efb075b077b1b94362a6" - integrity sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA== - dependencies: - "@tannin/plural-forms" "^1.1.0" - -tap-completed@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tap-completed/-/tap-completed-1.0.1.tgz#c7497e80e0b284862471b6a7d633847a9873b55f" - integrity sha512-ro7dZ/LkQQFSNnyClAOiLo4LM7qhIBv6BFwt19N/J2q5Xf00AfBrQZYNF+6q3f1XzLQDeyZ07QfE6ooob0en5Q== - dependencies: - minipass "3.1.6" - tap-parser "^10.1.0" - -tap-parser@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-10.1.0.tgz#7b1aac40dbcaa4716c0b58952686eae65d2b74ad" - integrity sha512-FujQeciDaOiOvaIVGS1Rpb0v4R6XkOjvWCWowlz5oKuhPkEJ8U6pxgqt38xuzYhPt8dWEnfHn2jqpZdJEkW7pA== - dependencies: - events-to-array "^1.0.1" - minipass "^3.0.0" - tap-yaml "^1.0.0" - -tap-yaml@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/tap-yaml/-/tap-yaml-1.0.0.tgz#4e31443a5489e05ca8bbb3e36cef71b5dec69635" - integrity sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ== - dependencies: - yaml "^1.5.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tape@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.0.tgz#588af7292e4a91e49ce5eba344d632d412317b9b" - integrity sha512-LyM4uqbiTAqDgsHTY0r1LH66yE24P3SZaz5TL3mPUds0XCTFl/0AMUBrjgBjUclvbPTFB4IalXg0wFfbTuuu/Q== - dependencies: - array.prototype.every "^1.1.3" - call-bind "^1.0.2" - deep-equal "^2.0.5" - defined "^1.0.0" - dotignore "^0.1.2" - for-each "^0.3.3" - get-package-type "^0.1.0" - glob "^7.2.3" - has "^1.0.3" - has-dynamic-import "^2.0.1" - inherits "^2.0.4" - is-regex "^1.1.4" - minimist "^1.2.6" - object-inspect "^1.12.2" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.3" - resolve "^2.0.0-next.3" - resumer "^0.0.0" - string.prototype.trim "^1.2.6" - through "^2.3.8" - -tar-fs@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar@^6.0.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.1.0.tgz#91e6d39571460ed240c0cf69d295bcf30ebf98cb" - integrity sha512-cjdZte66fYkZ65rQ2oJfrdCAkkhJA7YLYk5eGOcGCSGlq0ieZupRdjedSQXYknMPo2IveQL+tPdrxUkERENCFA== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.2.1" - p-limit "^3.0.2" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.8.0" - webpack-sources "^1.4.3" - -terser@^3.7.5: - version "3.17.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" - integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== - dependencies: - commander "^2.19.0" - source-map "~0.6.1" - source-map-support "~0.5.10" - -terser@^4.1.2, terser@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^4.7.0: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -thread-loader@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.4.tgz#c392e4c0241fbc80430eb680e4886819b504a31b" - integrity sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA== - dependencies: - json-parse-better-errors "^1.0.2" - loader-runner "^4.1.0" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - -three-mesh-bvh@^0.5.7: - version "0.5.10" - resolved "https://registry.yarnpkg.com/three-mesh-bvh/-/three-mesh-bvh-0.5.10.tgz#6eadd0a9f63d8fc1bb3516bdc96b6ed906a888c4" - integrity sha512-yOJPT3DhfZB/DvIr0lEfPUPMRX11HJABGapeuBa4GwgsF1NMMsy1nW1wMGxImmVyRCZ61yoor/YVqRRQV1p5VQ== - -three-omi@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/three-omi/-/three-omi-0.1.5.tgz#51a96d9f998ec770fc0ff58a9ce7bd297e71daef" - integrity sha512-0kDTKeEaowN9u0C0wHxbpmDHLJDmsqavbynjIi2ITPoIo/R2znbqxKdd64IfHf9Xv7HgxLnBfL0OM8PDTLu79A== - -three-stdlib@^2.4.0: - version "2.17.0" - resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.17.0.tgz#5915b110ec6dbf07e0e653bd59889293c7b93407" - integrity sha512-m19X4+ajh+2EJIVcjB288LgbqTli5b8kFahJlg9oNCBfaL8geCgEoM4OUirgV0Ez6Lr58N1MPBR6LjJt7ALfKQ== - dependencies: - "@babel/runtime" "^7.16.7" - "@types/offscreencanvas" "^2019.6.4" - "@webgpu/glslang" "^0.0.15" - chevrotain "^10.1.2" - draco3d "^1.4.1" - fflate "^0.6.9" - ktx-parse "^0.4.5" - mmd-parser "^1.0.4" - opentype.js "^1.3.3" - potpack "^1.0.1" - zstddec "^0.0.2" - -three-stdlib@^2.8.6, three-stdlib@^2.8.9: - version "2.9.1" - resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.9.1.tgz#300abf6cf12ab388e515fd8572217288dffe4736" - integrity sha512-e+Hyd47ssVTy2UzUfmaccB7m30qITVMdvGs/QypeGdJa3uwhw1zR9jO/ce61S65Omiy/oGDMWG8dJIZxyQ7u8w== - dependencies: - "@babel/runtime" "^7.16.7" - "@webgpu/glslang" "^0.0.15" - chevrotain "^10.1.2" - draco3d "^1.4.1" - fflate "^0.6.9" - ktx-parse "^0.2.1" - mmd-parser "^1.0.4" - opentype.js "^1.3.3" - potpack "^1.0.1" - zstddec "^0.0.2" - -three@*: - version "0.145.0" - resolved "https://registry.yarnpkg.com/three/-/three-0.145.0.tgz#a613d71e75effc2aed88be630027ca01e2b6502e" - integrity sha512-EKoHQEtEJ4CB6b2BGMBgLZrfwLjXcSUfoI/MiIXUuRpeYsfK5aPWbYhdtIVWOH+x6X0TouldHKHBuc/LAiFzAw== - -three@0.144.0: - version "0.144.0" - resolved "https://registry.yarnpkg.com/three/-/three-0.144.0.tgz#2818517169f8ff94eea5f664f6ff1fcdcd436cc8" - integrity sha512-R8AXPuqfjfRJKkYoTQcTK7A6i3AdO9++2n8ubya/GTU+fEHhYKu1ZooRSCPkx69jbnzT7dD/xEo6eROQTt2lJw== - -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - -through2@^2.0.0, through2@^2.0.3, through2@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" - integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== - dependencies: - inherits "^2.0.4" - readable-stream "2 || 3" - -through2@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" - integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== - dependencies: - readable-stream "3" - -"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.7, through@^2.3.8, through@~2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky-with-args@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/thunky-with-args/-/thunky-with-args-1.0.0.tgz#5b202235d8e6c88986c941226c0b4d7e49b2e25d" - integrity sha512-e9QU3bJpxzJx1XcQ1ivwW15xoR3oUJ8MTSpboSTVcTAii2KoxrUaEo+x3PxkgseflqjynJsUP3IqB9jwDZwNtw== - dependencies: - sigmund "~1.0.1" - thunky "~1.0.2" - -thunky@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" - integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - integrity sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q== - dependencies: - process "~0.11.0" - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tiny-inflate@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" - integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== - -tiny-lr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tiny-simple-peer@^10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/tiny-simple-peer/-/tiny-simple-peer-10.1.1.tgz#f7df8e425422660ae1fb606715049e3144f52063" - integrity sha512-Hd3Q6ACo08Xb5BGgUMaqYKQuz8fNrd1aWUVJsIvbkFNk+3FtxVgVvnQZlLuUiXhnyZDubR9xTlXqeJOMGwpI3Q== - dependencies: - debug "^4.3.2" - err-code "^3.0.1" - events "^3.3.0" - get-browser-rtc "^1.1.0" - queue-microtask "^1.2.3" - random-string "^0.2.0" - -tinycolor2@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" - integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== - -tinyify@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/tinyify/-/tinyify-3.1.0.tgz#cd3f974c24f3ab0ccd0b471b8c4816c7431317fa" - integrity sha512-r4tHoDkWhhoItWbxJ3KCHXask3hJN7gCUkR5PLfnQzQagTA6oDkzhCbiEDHkMqo7Ck7vVSA1pTP1gDc9p1AC1w== - dependencies: - "@goto-bus-stop/envify" "^5.0.0" - acorn-node "^1.8.2" - browser-pack-flat "^3.0.9" - bundle-collapser "^1.3.0" - common-shakeify "^1.1.1" - dash-ast "^1.0.0" - minify-stream "^2.0.1" - multisplice "^1.0.0" - through2 "^3.0.1" - uglifyify "^5.0.0" - unassertify "^2.1.1" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -transform-ast@^2.4.2, transform-ast@^2.4.3: - version "2.4.4" - resolved "https://registry.yarnpkg.com/transform-ast/-/transform-ast-2.4.4.tgz#bebf494e2e73f024746f76348bc86a5992851d00" - integrity sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ== - dependencies: - acorn-node "^1.3.0" - convert-source-map "^1.5.1" - dash-ast "^1.0.0" - is-buffer "^2.0.0" - magic-string "^0.23.2" - merge-source-map "1.0.4" - nanobench "^2.1.1" - -transient-error@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/transient-error/-/transient-error-1.0.0.tgz#9822b38ccdd75a2b8527a865534fe9ba5f0b6ab6" - integrity sha512-pHi+O9OajOp96ldjeZ0i45n/d4QqV8ef8VCrpx5+RL5VO7Xdt2oQj//zcOhuGw5tiPYe73I4d28wV+yCqhSWxA== - -traverse@^0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - -trim-repeated@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" - integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= - dependencies: - escape-string-regexp "^1.0.2" - -trim-trailing-lines@^1.0.0, trim-trailing-lines@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" - integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - -troika-three-text@^0.46.3: - version "0.46.4" - resolved "https://registry.yarnpkg.com/troika-three-text/-/troika-three-text-0.46.4.tgz#77627ac2ac4765d5248c857a8b42f82c25f2d034" - integrity sha512-Qsv0HhUKTZgSmAJs5wvO7YlBoJSP9TGPLmrg+K9pbQq4lseQdcevbno/WI38bwJBZ/qS56hvfqEzY0zUEFzDIw== - dependencies: - bidi-js "^1.0.2" - troika-three-utils "^0.46.0" - troika-worker-utils "^0.46.0" - webgl-sdf-generator "1.1.1" - -troika-three-utils@^0.46.0: - version "0.46.0" - resolved "https://registry.yarnpkg.com/troika-three-utils/-/troika-three-utils-0.46.0.tgz#6d97a9bf08f2260285edf2bb0be6328dd3d50eec" - integrity sha512-llHyrXAcwzr0bpg80GxsIp73N7FuImm4WCrKDJkAqcAsWmE5pfP9+Qzw+oMWK1P/AdHQ79eOrOl9NjyW4aOw0w== - -troika-worker-utils@^0.46.0: - version "0.46.0" - resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.46.0.tgz#1b698090af78b51a27e03881c90237a2e648d6c4" - integrity sha512-bzOx5f2ZBxkFhXtIvDJlLn2AI3bzCkGVbCndl/2dL5QZrwHEKl45OEIilCxYQQWJG1rEbOD9O80tMjoYjw19OA== - -trough@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" - integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== - -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tslib@^2.2.0, tslib@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tsutils@^3.17.1, tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -turbo-combine-reducers@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/turbo-combine-reducers/-/turbo-combine-reducers-1.0.2.tgz#aa3650b3c63daa6804d35a4042014f6d31df1e47" - integrity sha512-gHbdMZlA6Ym6Ur5pSH/UWrNQMIM9IqTH6SoL1DbHpqEdQ8i+cFunSmSlFykPt0eGQwZ4d/XTHOl74H0/kFBVWw== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.5.0, type@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" - integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -uglify-js@^3.1.4: - version "3.17.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.0.tgz#55bd6e9d19ce5eef0d5ad17cd1f587d85b180a85" - integrity sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg== - -uglifyify@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/uglifyify/-/uglifyify-5.0.2.tgz#7d0269885e09faa963208a9ec6721afcaf45fc50" - integrity sha512-NcSk6pgoC+IgwZZ2tVLVHq+VNKSvLPlLkF5oUiHPVOJI0s/OlSVYEGXG9PCAH0hcyFZLyvt4KBdPAQBRlVDn1Q== - dependencies: - convert-source-map "~1.1.0" - minimatch "^3.0.2" - terser "^3.7.5" - through "~2.3.4" - xtend "^4.0.1" - -umd@^3.0.0, umd@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" - integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== - -unassert@^1.3.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/unassert/-/unassert-1.6.0.tgz#ceb6d39ce47c6d2bfa9cb3cab407352cbfb60a19" - integrity sha512-GoMtWTwGSxSFuRD0NKmbjlx3VJkgvSogzDzMPpJXYmBZv6MIWButsyMqEYhMx3NI4osXACcZA9mXiBteXyJtRw== - dependencies: - acorn "^7.0.0" - call-matcher "^2.0.0" - deep-equal "^1.0.0" - espurify "^2.0.1" - estraverse "^4.1.0" - esutils "^2.0.2" - object-assign "^4.1.0" - -unassertify@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/unassertify/-/unassertify-2.1.1.tgz#23772d76c136fb3d5df7dad4911c737d952357d3" - integrity sha512-YIAaIlc6/KC9Oib8cVZLlpDDhK1UTEuaDyx9BwD97xqxDZC0cJOqwFcs/Y6K3m73B5VzHsRTBLXNO0dxS/GkTw== - dependencies: - acorn "^5.1.0" - convert-source-map "^1.1.1" - escodegen "^1.6.1" - multi-stage-sourcemap "^0.2.1" - through "^2.3.7" - unassert "^1.3.1" - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unbzip2-stream@^1.3.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -undeclared-identifiers@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" - integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== - dependencies: - acorn-node "^1.3.0" - dash-ast "^1.0.0" - get-assigned-identifiers "^1.2.0" - simple-concat "^1.0.0" - xtend "^4.0.1" - -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - -unicode-regex@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unicode-regex/-/unicode-regex-3.0.0.tgz#0c20df914c6da0412b3714cd300726e0f7f24698" - integrity sha512-WiDJdORsqgxkZrjC8WsIP573130HNn7KsB0IDnUccW2BG2b19QQNloNhVe6DKk3Aef0UcoIHhNVj7IkkcYWrNw== - dependencies: - regexp-util "^1.2.0" - -unicode-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-regex/-/unicode-regex-2.0.0.tgz#ef8f6642c37dddcaa0c09af5b9456aabf6b436a3" - integrity sha512-5nbEG2YU7loyTvPABaKb+8B0u8L7vWCsVmCSsiaO249ZdMKlvrXlxR2ex4TUVAdzv/Cne/TdoXSSaJArGXaleQ== - dependencies: - regexp-util "^1.2.0" - -unified@8.4.2: - version "8.4.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" - integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -unified@^6.1.2: - version "6.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" - integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^1.1.0" - trough "^1.0.0" - vfile "^2.0.0" - x-is-string "^0.1.0" - -unified@^9.1.0: - version "9.2.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" - integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-buffer "^2.0.0" - is-plain-obj "^2.0.0" - trough "^1.0.0" - vfile "^4.0.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unist-util-find-all-after@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6" - integrity sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ== - dependencies: - unist-util-is "^4.0.0" - -unist-util-is@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" - integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== - -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - -unist-util-remove-position@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" - integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== - dependencies: - unist-util-visit "^1.1.0" - -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== - -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - -unist-util-visit-parents@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" - integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== - dependencies: - unist-util-is "^3.0.0" - -unist-util-visit@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" - integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== - dependencies: - unist-util-visit-parents "^2.0.0" - -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" - integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.27" - schema-utils "^3.0.0" - -url@^0.11.0, url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use-asset@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/use-asset/-/use-asset-1.0.4.tgz#506caafc29f602890593799e58b577b70293a6e2" - integrity sha512-7/hqDrWa0iMnCoET9W1T07EmD4Eg/Wmoj/X8TGBc++ECRK4m5yTsjP4O6s0yagbxfqIOuUkIxe2/sA+VR2GxZA== - dependencies: - fast-deep-equal "^3.1.3" - -use-memo-one@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.2.tgz#0c8203a329f76e040047a35a1197defe342fab20" - integrity sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ== - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -util@~0.10.1: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -util@~0.12.0: - version "0.12.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" - integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - safe-buffer "^5.1.2" - which-typed-array "^1.1.2" - -utility-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" - integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vfile-location@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" - integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== - -vfile-message@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" - integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== - dependencies: - unist-util-stringify-position "^1.1.1" - -vfile-message@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" - integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-stringify-position "^2.0.0" - -vfile@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" - integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== - dependencies: - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== - dependencies: - "@types/unist" "^2.0.0" - is-buffer "^2.0.0" - unist-util-stringify-position "^2.0.0" - vfile-message "^2.0.0" - -vm-browserify@^1.0.0, vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -vnopts@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/vnopts/-/vnopts-1.0.2.tgz#f6a331473de0179d1679112cc090572b695202f7" - integrity sha512-d2rr2EFhAGHnTlURu49G7GWmiJV80HbAnkYdD9IFAtfhmxC+kSWEaZ6ZF064DJFTv9lQZQV1vuLTntyQpoanGQ== - dependencies: - chalk "^2.4.1" - leven "^2.1.0" - tslib "^1.9.3" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -wait-on@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-3.3.0.tgz#9940981d047a72a9544a97b8b5fca45b2170a082" - integrity sha512-97dEuUapx4+Y12aknWZn7D25kkjMk16PbWoYzpSdA8bYpVfS6hpl2a2pOWZ3c+Tyt3/i4/pglyZctG3J4V1hWQ== - dependencies: - "@hapi/joi" "^15.0.3" - core-js "^2.6.5" - minimist "^1.2.0" - request "^2.88.0" - rx "^4.1.0" - -wait-port@^0.2.7: - version "0.2.9" - resolved "https://registry.yarnpkg.com/wait-port/-/wait-port-0.2.9.tgz#3905cf271b5dbe37a85c03b85b418b81cb24ee55" - integrity sha512-hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ== - dependencies: - chalk "^2.4.2" - commander "^3.0.2" - debug "^4.1.1" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -watchify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/watchify/-/watchify-4.0.0.tgz#53b002d51e7b0eb640b851bb4de517a689973392" - integrity sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA== - dependencies: - anymatch "^3.1.0" - browserify "^17.0.0" - chokidar "^3.4.0" - defined "^1.0.0" - outpipe "^1.1.0" - through2 "^4.0.2" - xtend "^4.0.2" - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -webgl-constants@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/webgl-constants/-/webgl-constants-1.1.1.tgz#f9633ee87fea56647a60b9ce735cbdfb891c6855" - integrity sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg== - -webgl-sdf-generator@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz#3e1b422b3d87cd3cc77f2602c9db63bc0f6accbd" - integrity sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA== - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -webpack-bundle-analyzer@^4.2.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz#1b0eea2947e73528754a6f9af3e91b2b6e0f79d5" - integrity sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ== - dependencies: - acorn "^8.0.4" - acorn-walk "^8.0.0" - chalk "^4.1.0" - commander "^7.2.0" - gzip-size "^6.0.0" - lodash "^4.17.20" - opener "^1.5.2" - sirv "^1.0.7" - ws "^7.3.1" - -webpack-cli@^3.3.11: - version "3.3.12" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" - integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== - dependencies: - chalk "^2.4.2" - cross-spawn "^6.0.5" - enhanced-resolve "^4.1.1" - findup-sync "^3.0.0" - global-modules "^2.0.0" - import-local "^2.0.0" - interpret "^1.4.0" - loader-utils "^1.4.0" - supports-color "^6.1.0" - v8-compile-cache "^2.1.1" - yargs "^13.3.2" - -webpack-livereload-plugin@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/webpack-livereload-plugin/-/webpack-livereload-plugin-2.3.0.tgz#61994e0500a0c1e27355ff753a9642641bef5d6a" - integrity sha512-vVBLQLlNpElt2sfsBG+XLDeVbQFS4RrniVU8Hi1/hX5ycSfx6mtW8MEEITr2g0Cvo36kuPWShFFDuy+DS7KFMA== - dependencies: - anymatch "^3.1.1" - portfinder "^1.0.17" - tiny-lr "^1.1.1" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" - integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" - -webpack-sources@^3.2.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack@^4.46.0: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which-typed-array@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" - integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-abstract "^1.20.0" - for-each "^0.3.3" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.9" - -which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-comment@^1.0.0, wrap-comment@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wrap-comment/-/wrap-comment-1.0.1.tgz#941bb1400b9b590bc007599e79cacc0bb3ea62f3" - integrity sha512-APccrMwl/ont0RHFTXNAQfM647duYYEfs6cngrIyTByTI0xbWnDnPSptFZhS68L4WCjt2ZxuhCFwuY6Pe88KZQ== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@^7.2.3, ws@^7.3.1, ws@^7.4.6: - version "7.5.7" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== - -ws@~8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" - integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== - -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xmlhttprequest-ssl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" - integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== - -xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml-unist-parser@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/yaml-unist-parser/-/yaml-unist-parser-1.1.1.tgz#a2bc7b72578718e6e5b0ebc945dde8e1f258b561" - integrity sha512-cGtqhHBlcft+rTKiPsVcSyi43Eqm5a1buYokW9VkztroKMErBSdR9ANHx+/XxNppHZTu2KMEn4yY8MdhuGoFuA== - dependencies: - lines-and-columns "^1.1.6" - tslib "^1.10.0" - yaml "^1.7.1" - -yaml@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a" - integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw== - dependencies: - "@babel/runtime" "^7.8.7" - -yaml@^1.10.0, yaml@^1.5.0, yaml@^1.7.1, yaml@^1.7.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yaml@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" - integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^15.0.1: - version "15.0.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" - integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.2, yargs-parser@^18.1.3: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^14.2: - version "14.2.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^15.0.1" - -yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zstddec@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz#57e2f28dd1ff56b750e07d158a43f0611ad9eeb4" - integrity sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA== - -zustand@^3.2.0, zustand@^3.5.10, zustand@^3.5.13, zustand@^3.7.1: - version "3.7.2" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d" - integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA== - -zwitch@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" - integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== From 076cce3edbc4ef27e786a57d352a9a5be65d0b11 Mon Sep 17 00:00:00 2001 From: antpb Date: Fri, 4 Nov 2022 01:03:41 -0500 Subject: [PATCH 40/48] add back in yarn.lock --- yarn.lock | 16298 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 16298 insertions(+) create mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..30fa4ed --- /dev/null +++ b/yarn.lock @@ -0,0 +1,16298 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@airtap/browserify-istanbul@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@airtap/browserify-istanbul/-/browserify-istanbul-4.0.0.tgz#01ba9d25aad0114341e7cb3e09b3735420f3fbce" + integrity sha512-bZc90B1OJRN1llsvdIgUHTZ2tZhwlG4JdNHoQt8wVaBWhbgs5OB1XalGjN2BqaAtFfftYgRxcO5AN6e7t9HXAg== + dependencies: + istanbul-lib-instrument "^4.0.0" + minimatch "^3.0.4" + through2 "^3.0.1" + +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + +"@angular/compiler@8.2.14": + version "8.2.14" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-8.2.14.tgz#46db7a9d1c17f236126518ff26480c160d5a6183" + integrity sha512-ABZO4E7eeFA1QyJ2trDezxeQM5ZFa1dXw1Mpl/+1vuXDKNjJgNyWYwKp/NwRkLmrsuV0yv4UDCDe4kJOGbPKnw== + dependencies: + tslib "^1.9.0" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + +"@babel/core@>=7.9.0", "@babel/core@^7", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.5": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/eslint-parser@^7.16.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz#eabb24ad9f0afa80e5849f8240d0e5facc2d90d6" + integrity sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA== + dependencies: + eslint-scope "^5.1.1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + +"@babel/generator@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" + integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-member-expression-to-functions" "^7.17.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + +"@babel/helper-create-regexp-features-plugin@^7.16.7": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + regexpu-core "^5.0.1" + +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== + dependencies: + "@babel/types" "^7.17.0" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== + dependencies: + "@babel/types" "^7.16.7" + +"@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.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== + dependencies: + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" + integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/highlight@^7.8.3": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@7.9.4": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" + integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" + integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" + integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" + integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" + integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.17.6" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" + integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" + integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" + integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" + integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.16.7": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== + dependencies: + "@babel/compat-data" "^7.17.0" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.16.7" + +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.10" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" + integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" + integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" + integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" + integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" + integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" + +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-block-scoping@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" + integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-classes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" + integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" + integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-destructuring@^7.16.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" + integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" + integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-for-of@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" + integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== + dependencies: + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" + integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" + integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" + integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== + dependencies: + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" + integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== + dependencies: + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" + integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + +"@babel/plugin-transform-new-target@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" + integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + +"@babel/plugin-transform-parameters@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" + integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz#6cc273c2f612a6a50cb657e63ee1303e5e68d10a" + integrity sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-react-display-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" + integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-react-jsx-development@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" + integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.16.7" + +"@babel/plugin-transform-react-jsx@^7.16.0", "@babel/plugin-transform-react-jsx@^7.16.7": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz#eac1565da176ccb1a715dae0b4609858808008c1" + integrity sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-jsx" "^7.16.7" + "@babel/types" "^7.17.0" + +"@babel/plugin-transform-react-pure-annotations@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67" + integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-regenerator@^7.16.7": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" + integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== + dependencies: + regenerator-transform "^0.15.0" + +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" + integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-runtime@^7.16.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" + integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" + integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-template-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" + integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" + integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-typescript@^7.16.7": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0" + integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-typescript" "^7.16.7" + +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.0": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + dependencies: + "@babel/compat-data" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.8" + "@babel/plugin-proposal-class-properties" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.16.7" + "@babel/plugin-proposal-json-strings" "^7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.11" + "@babel/plugin-proposal-private-property-in-object" "^7.16.7" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.16.7" + "@babel/plugin-transform-classes" "^7.16.7" + "@babel/plugin-transform-computed-properties" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.8" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.8" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.20.2" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.12.5": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" + integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-react-display-name" "^7.16.7" + "@babel/plugin-transform-react-jsx" "^7.16.7" + "@babel/plugin-transform-react-jsx-development" "^7.16.7" + "@babel/plugin-transform-react-pure-annotations" "^7.16.7" + +"@babel/preset-typescript@^7.16.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" + integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-typescript" "^7.16.7" + +"@babel/runtime-corejs3@^7.10.2": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz#3d02d0161f0fbf3ada8e88159375af97690f4055" + integrity sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw== + dependencies: + core-js-pure "^3.20.2" + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.8", "@babel/runtime@^7.16.0", "@babel/runtime@^7.16.3", "@babel/runtime@^7.16.7", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" + integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.8.7": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.16.7", "@babel/template@^7.3.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.9" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@chevrotain/cst-dts-gen@^10.1.2": + version "10.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.1.2.tgz#4ee6eff237bb47f4990cfb76c18ee2e71237929c" + integrity sha512-E/XrL0QlzExycPzwhOEZGVOheJ/Clr5uNv3oCds88MiNqEmg3UU1iauZk7DhjsUo3jgEW4lf0I5HRl7/HC5ZkQ== + dependencies: + "@chevrotain/gast" "^10.1.2" + "@chevrotain/types" "^10.1.2" + lodash "4.17.21" + +"@chevrotain/gast@^10.1.2": + version "10.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-10.1.2.tgz#91d5b342480d7532118a6cf3958955f86c9cc03e" + integrity sha512-er+TcxUOMuGOPoiOq8CJsRm92zGE4YPIYtyxJfxoVwVgtj4AMrPNCmrHvYaK/bsbt2DaDuFdcbbAfM9bcBXW6Q== + dependencies: + "@chevrotain/types" "^10.1.2" + lodash "4.17.21" + +"@chevrotain/types@^10.1.2": + version "10.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-10.1.2.tgz#f4caa373b1cd14d13ecb61c77dfee2456eef1ab3" + integrity sha512-4qF9SmmWKv8AIG/3d+71VFuqLumNCQTP5GoL0CW6x7Ay2OdXm6FUgWFLTMneGUjYUk2C+MSCf7etQfdq3LEr1A== + +"@chevrotain/utils@^10.1.2": + version "10.1.2" + resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-10.1.2.tgz#d2fb7b968141139e5c2419553e5295382c265e7d" + integrity sha512-bbZIpW6fdyf7FMaeDmw3cBbkTqsecxEkwlVKgVfqqXWBPLH6azxhPA2V9F7OhoZSVrsnMYw7QuyK6qutXPjEew== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@dimforge/rapier3d-compat@0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@dimforge/rapier3d-compat/-/rapier3d-compat-0.8.1.tgz#7918044ac6b47d30c4bea71b21b6fdadcbd95ac2" + integrity sha512-D+Q7HR+qdMnXcb3ioqIl+TtLtag8A55fumO+LY9/0WTf2kX1xmFlpHJJNC9fpOza3pl5RYfeZW6K+5YQlEcptw== + +"@emotion/babel-plugin@^11.7.1": + version "11.9.2" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95" + integrity sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/runtime" "^7.13.10" + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.5" + "@emotion/serialize" "^1.0.2" + babel-plugin-macros "^2.6.1" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.0.13" + +"@emotion/cache@^11.1.3", "@emotion/cache@^11.7.1": + version "11.7.1" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539" + integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A== + dependencies: + "@emotion/memoize" "^0.7.4" + "@emotion/sheet" "^1.1.0" + "@emotion/utils" "^1.0.0" + "@emotion/weak-memoize" "^0.2.5" + stylis "4.0.13" + +"@emotion/css@^11.1.3": + version "11.9.0" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.9.0.tgz#d5aeaca5ed19fc61cbdc9e032ad0b32fa6e366be" + integrity sha512-S9UjCxSrxEHawOLnWw4upTwfYKb0gVQdatHejn3W9kPyXxmKv3HmjVfJ84kDLmdX8jR20OuDQwaJ4Um24qD9vA== + dependencies: + "@emotion/babel-plugin" "^11.7.1" + "@emotion/cache" "^11.7.1" + "@emotion/serialize" "^1.0.3" + "@emotion/sheet" "^1.0.3" + "@emotion/utils" "^1.0.0" + +"@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + +"@emotion/is-prop-valid@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz#34ad6e98e871aa6f7a20469b602911b8b11b3a95" + integrity sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ== + dependencies: + "@emotion/memoize" "^0.7.4" + +"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" + integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== + +"@emotion/react@^11.1.5": + version "11.9.0" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.0.tgz#b6d42b1db3bd7511e7a7c4151dc8bc82e14593b8" + integrity sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@emotion/babel-plugin" "^11.7.1" + "@emotion/cache" "^11.7.1" + "@emotion/serialize" "^1.0.3" + "@emotion/utils" "^1.1.0" + "@emotion/weak-memoize" "^0.2.5" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.0.2", "@emotion/serialize@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.3.tgz#99e2060c26c6292469fb30db41f4690e1c8fea63" + integrity sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA== + dependencies: + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.4" + "@emotion/unitless" "^0.7.5" + "@emotion/utils" "^1.0.0" + csstype "^3.0.2" + +"@emotion/sheet@^1.0.3", "@emotion/sheet@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2" + integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g== + +"@emotion/styled@^11.3.0": + version "11.8.1" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.8.1.tgz#856f6f63aceef0eb783985fa2322e2bf66d04e17" + integrity sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@emotion/babel-plugin" "^11.7.1" + "@emotion/is-prop-valid" "^1.1.2" + "@emotion/serialize" "^1.0.2" + "@emotion/utils" "^1.1.0" + +"@emotion/unitless@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@emotion/utils@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af" + integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA== + +"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf" + integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ== + +"@emotion/weak-memoize@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" + integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== + +"@es-joy/jsdoccomment@0.10.8": + version "0.10.8" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.10.8.tgz#b3152887e25246410ed4ea569a55926ec13b2b05" + integrity sha512-3P1JiGL4xaR9PoTKUHa2N/LKwa2/eUdRqGwijMWWgBqbFEqJUVpmaOi2TcjcemrsRMgFLBzQCK4ToPhrSVDiFQ== + dependencies: + comment-parser "1.2.4" + esquery "^1.4.0" + jsdoc-type-pratt-parser "1.1.1" + +"@esbuild/linux-loong64@0.15.5": + version "0.15.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz#91aef76d332cdc7c8942b600fa2307f3387e6f82" + integrity sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A== + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@eslint/eslintrc@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" + integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.3.2" + globals "^13.15.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@gar/promisify@^1.0.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@glimmer/interfaces@^0.41.4": + version "0.41.4" + resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.41.4.tgz#3f3e26abea8a4e1463130e9a75e94372781d154b" + integrity sha512-MzXwMyod3MlwSZezHSaVBsCEIW/giYYfTDYARR46QnYsaFVatMVbydjsI7jkAuBCbnLCyNOIc1TrYIj71i/rpg== + +"@glimmer/syntax@0.41.4": + version "0.41.4" + resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.41.4.tgz#9c0c763aab44069c828ce782947c84d31ff75879" + integrity sha512-NLPNirZDbNmpZ8T/ccle22zt2rhUq5il7ST6IJk62T58QZeJsdr3m3RS4kaGSBsQhXoKELrgX048yYEX5sC+fw== + dependencies: + "@glimmer/interfaces" "^0.41.4" + "@glimmer/util" "^0.41.4" + handlebars "^4.0.13" + simple-html-tokenizer "^0.5.7" + +"@glimmer/util@^0.41.4": + version "0.41.4" + resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.41.4.tgz#508fd82ca40305416e130f0da7b537295ded7989" + integrity sha512-DwS94K+M0vtG+cymxH0rslJr09qpdjyOLdCjmpKcG/nNiZQfMA1ybAaFEmwk9UaVlUG9STENFeQwyrLevJB+7g== + +"@goto-bus-stop/common-shake@^2.3.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@goto-bus-stop/common-shake/-/common-shake-2.4.0.tgz#7b29b093ed10d4075c061bf48905c02eb75d643c" + integrity sha512-LO+7v+UbxE3IyAS4Suf/KYB7Zq9DEIHibwDe6Wph4apNEfDyyxP7BSxzRS/Qa9lUH5gsm9eL9nF8EE1E0/nQkQ== + dependencies: + acorn-walk "^7.0.0" + debug "^3.2.6" + escope "^3.6.0" + +"@goto-bus-stop/envify@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@goto-bus-stop/envify/-/envify-5.0.0.tgz#db7db712f00901d9f71f852ed13dbb3db0909b1a" + integrity sha512-xAnxuDWmwQxO8CgVuPTxKuNsKDfwyXXTyAabG4sNoK59H/ZMC7BHxTA/4ehtinsxbcH7/9L65F5VhyNdQfUyqA== + dependencies: + acorn-node "^2.0.1" + dash-ast "^2.0.1" + multisplice "^1.0.0" + through2 "^2.0.5" + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.0.3": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@humanwhocodes/config-array@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/gitignore-to-minimatch@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + +"@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@iarna/toml@2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab" + integrity sha512-FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@pixiv/three-vrm-core@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-core/-/three-vrm-core-1.0.0-beta.17.tgz#38c4fda10fd0b584c4b5542bf1c188dc85791347" + integrity sha512-UtZpLDJNIo477f3updD3SjExbkGimoLr+uFzAGZV+Cq3cniVo4cuPvb8Jsr2vK+l4KPvenZkCr3GxtkouZx/ag== + dependencies: + "@pixiv/types-vrm-0.0" "1.0.0-beta.17" + "@pixiv/types-vrmc-vrm-1.0" "1.0.0-beta.17" + +"@pixiv/three-vrm-materials-hdr-emissive-multiplier@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-hdr-emissive-multiplier/-/three-vrm-materials-hdr-emissive-multiplier-1.0.0-beta.17.tgz#63da84d01faa9b5bebf5d584628c6f8e673861c9" + integrity sha512-OXhqcBIDSYaG1+rKZ06rFYE9aWSFE8I+3D+Z+O7a8vm0fxsHvHMrmkCMtoxT7+xpPT6mrCoS8EJB/AkmZm7Ufg== + dependencies: + "@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0" "1.0.0-beta.17" + +"@pixiv/three-vrm-materials-mtoon@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-mtoon/-/three-vrm-materials-mtoon-1.0.0-beta.17.tgz#14516998add31f1c630111adb1b5b57d9108380f" + integrity sha512-gg40SJ97A7cOuPu8puFGW0Yuhzs72kz31mztExJP7XGk+STvdqwyai7miCUb0w0OoewKVURrdLxfu/NQesUExg== + dependencies: + "@pixiv/types-vrm-0.0" "1.0.0-beta.17" + "@pixiv/types-vrmc-materials-mtoon-1.0" "1.0.0-beta.17" + +"@pixiv/three-vrm-materials-v0compat@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-materials-v0compat/-/three-vrm-materials-v0compat-1.0.0-beta.17.tgz#768d7ad64073f551626e7114fced77f22e36efdb" + integrity sha512-XdSiCL2aDBK6wjILlUnJd6k5OjHI3Fd8j7xG7u3G2pvU6ZiDuUQGgRD1XfWAkAlMENOxLfLBSN4SKKmOrSRpew== + dependencies: + "@pixiv/types-vrm-0.0" "1.0.0-beta.17" + "@pixiv/types-vrmc-materials-mtoon-1.0" "1.0.0-beta.17" + +"@pixiv/three-vrm-node-constraint@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-node-constraint/-/three-vrm-node-constraint-1.0.0-beta.17.tgz#305dc8f9502e3bf4930426c2d886d22374842425" + integrity sha512-fkQxidc1NMuM5V6GJaRedA7rvWNiTycyR8AWeKgZW+jLi3VTvOvhQo19RlFM4LudKYHrcIwbXU2w1RJg/GsJlg== + dependencies: + "@pixiv/types-vrmc-node-constraint-1.0" "1.0.0-beta.17" + +"@pixiv/three-vrm-springbone@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm-springbone/-/three-vrm-springbone-1.0.0-beta.17.tgz#97998910e807321a18660d803d8a5c8861118660" + integrity sha512-OaFgh8whc0xW4VW6AgnZxmW4IQ+SBVGenSpg+EfcPYCMbvd/9ZY+b/e++2fI6h5lp7eA0hpS/SG6bc1vaBZzAQ== + dependencies: + "@pixiv/types-vrm-0.0" "1.0.0-beta.17" + "@pixiv/types-vrmc-springbone-1.0" "1.0.0-beta.17" + +"@pixiv/three-vrm@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/three-vrm/-/three-vrm-1.0.0-beta.17.tgz#d8b5007c8684b27e01c56ea16c51f76aadc4dbb6" + integrity sha512-FJNofW1IxmqZdT5L/1AxpUGdGpoT5YPC2VnbCr8NnIOkWKM2gF2sNdgWzcZzdEHQ5yMpi2pFQzqLT4bJEp7UUg== + dependencies: + "@pixiv/three-vrm-core" "1.0.0-beta.17" + "@pixiv/three-vrm-materials-hdr-emissive-multiplier" "1.0.0-beta.17" + "@pixiv/three-vrm-materials-mtoon" "1.0.0-beta.17" + "@pixiv/three-vrm-materials-v0compat" "1.0.0-beta.17" + "@pixiv/three-vrm-node-constraint" "1.0.0-beta.17" + "@pixiv/three-vrm-springbone" "1.0.0-beta.17" + +"@pixiv/types-vrm-0.0@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrm-0.0/-/types-vrm-0.0-1.0.0-beta.17.tgz#788fdc0e44719fd8ec4fb4a7dbfd7566c3a2445d" + integrity sha512-2oRwbY9QGhwJ5BjGMj4SHUu17VcmIObiH1PoXMz05zQF1QKGkxQqMC6OdJtISqonLacbNYnxzLcwZiMBM5Iokg== + +"@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-hdr-emissive-multiplier-1.0/-/types-vrmc-materials-hdr-emissive-multiplier-1.0-1.0.0-beta.17.tgz#8ac561c1693575cfd70bb9bfef700012fe2a0b84" + integrity sha512-5gr+qy6EfzMwFn7sOLD327eyrIYclL7i0Wt0ImBQN4AG0fgw92tmPdZxKe8c5Zz4ygGXaL0K3U1x0F1JHYc/pw== + +"@pixiv/types-vrmc-materials-mtoon-1.0@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-materials-mtoon-1.0/-/types-vrmc-materials-mtoon-1.0-1.0.0-beta.17.tgz#375af19299dc959ea35024e1fa2af43d4b309574" + integrity sha512-TrO35HE8scJlC2UqvIhzpMmKvvhkq/C9uYqsehEL033hBJWeKcMfanDUTkrx9QpUrB9E64vWTtrqmFppLCo/cA== + +"@pixiv/types-vrmc-node-constraint-1.0@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-node-constraint-1.0/-/types-vrmc-node-constraint-1.0-1.0.0-beta.17.tgz#973a97c1bf715ccecc3eea303f5ddae1f2d193f8" + integrity sha512-c35c/90XRNGPRE2rgf33GE7v/t33rq1HPVHuR1TTfL8702OKUypcXnKQW5yyXLBEQqiVQOu2h5ewXK6oHX7X6Q== + +"@pixiv/types-vrmc-springbone-1.0@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-springbone-1.0/-/types-vrmc-springbone-1.0-1.0.0-beta.17.tgz#7f5d58f64e2d9cc343ea070c278444fd5fc0a31c" + integrity sha512-Pp6BJgF2GXLsmfNPzk/TQZnAF5OotpD5S9HyBs8jq0zuezYAzOk4BeVZsTPuCSZbWZn03CEXlUSMP+LW8aQY/w== + +"@pixiv/types-vrmc-vrm-1.0@1.0.0-beta.17": + version "1.0.0-beta.17" + resolved "https://registry.yarnpkg.com/@pixiv/types-vrmc-vrm-1.0/-/types-vrmc-vrm-1.0-1.0.0-beta.17.tgz#3e924d82c417466ee300c8dd0ee3f0305d719cbb" + integrity sha512-ei2BH8nCp2E1vM+/TnQ1JlzJSVtO2RMna2FFIVbOrc4L3F9xHvhT+LWVWe3oCqHr0/WnPaZL2/JxgeZSB4ziPQ== + +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + +"@popperjs/core@^2.5.4": + version "2.11.5" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64" + integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw== + +"@react-spring/animated@~9.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.4.4.tgz#15e21923e55c06ca2bcea432869b91b2f8b07519" + integrity sha512-e9xnuBaUTD+NolKikUmrGWjX8AVCPyj1GcEgjgq9E+0sXKv46UY7cm2EmB6mUDTxWIDVKebARY++xT4nGDraBQ== + dependencies: + "@react-spring/shared" "~9.4.4" + "@react-spring/types" "~9.4.4" + +"@react-spring/core@~9.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.4.4.tgz#7730988cec7302ba6e0977cf4c08c30249d95622" + integrity sha512-llgb0ljFyjMB0JhWsaFHOi9XFT8n1jBMVs1IFY2ipIBerWIRWrgUmIpakLPHTa4c4jwqTaDSwX90s2a0iN7dxQ== + dependencies: + "@react-spring/animated" "~9.4.4" + "@react-spring/rafz" "~9.4.4" + "@react-spring/shared" "~9.4.4" + "@react-spring/types" "~9.4.4" + +"@react-spring/rafz@~9.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.4.4.tgz#736c9ed1099baebeea20c357b9700b01b83ea9de" + integrity sha512-5ki/sQ06Mdf8AuFstSt5zbNNicRT4LZogiJttDAww1ozhuvemafNWEHxhzcULgCPCDu2s7HsroaISV7+GQWrhw== + +"@react-spring/shared@~9.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.4.4.tgz#e1ae00a77d170d86d77d9a19dc7015bdddc2d26f" + integrity sha512-ySVgScDZlhm/+Iy2smY9i/DDrShArY0j6zjTS/Re1lasKnhq8qigoGiAxe8xMPJNlCaj3uczCqHy3TY9bKRtfQ== + dependencies: + "@react-spring/rafz" "~9.4.4" + "@react-spring/types" "~9.4.4" + +"@react-spring/three@^9.3.1": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.4.4.tgz#a26de44854e166184ddba57313bfc52efce67368" + integrity sha512-z77ohxg8zG0CcZJojzfoJTTrjSbIyefNz2RlId68/4IypnOs1p8kB2Q1p+wX4KyWORpLg8ivsPcjtwBjGwfDtg== + dependencies: + "@react-spring/animated" "~9.4.4" + "@react-spring/core" "~9.4.4" + "@react-spring/shared" "~9.4.4" + "@react-spring/types" "~9.4.4" + +"@react-spring/types@~9.4.4": + version "9.4.4" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.4.4.tgz#97c69881788e624d7cc68d4385fdaa9b5fd20642" + integrity sha512-KpxKt/D//q/t/6FBcde/RE36LKp8PpWu7kFEMLwpzMGl9RpcexunmYOQJWwmJWtkQjgE1YRr7DzBMryz6La1cQ== + +"@react-three/a11y@2.2.4": + version "2.2.4" + resolved "https://registry.yarnpkg.com/@react-three/a11y/-/a11y-2.2.4.tgz#f5c58496abcb7daff7d1da97c3f24b91fd618e31" + integrity sha512-EELVPNQC4JwXXAHRGQ9iA6O5S6stOk8zl+6alOdeQoYlXuVKyPGL3dCLGsaOqgudJERDFqxATDXRc/8JTNC/3Q== + dependencies: + utility-types "^3.10.0" + zustand "^3.2.0" + +"@react-three/drei@^8.7.4": + version "8.20.2" + resolved "https://registry.yarnpkg.com/@react-three/drei/-/drei-8.20.2.tgz#f91093369be911467ea6741538990b3bbcbb9042" + integrity sha512-V2P/YHYg2+N58eWtIqmOJf0t5nWGTcmpT+ci4tB5gt3CsWU2vuoeQFhvBmqEF+cXwZD5ZYKPfQDf/06NzTx/lw== + dependencies: + "@babel/runtime" "^7.11.2" + "@react-spring/three" "^9.3.1" + "@use-gesture/react" "^10.2.0" + detect-gpu "^4.0.14" + glsl-noise "^0.0.0" + lodash.omit "^4.5.0" + lodash.pick "^4.4.0" + meshline "^2.0.4" + react-composer "^5.0.2" + react-merge-refs "^1.1.0" + stats.js "^0.17.0" + suspend-react "^0.0.8" + three-mesh-bvh "^0.5.7" + three-stdlib "^2.8.9" + troika-three-text "^0.46.3" + utility-types "^3.10.0" + zustand "^3.5.13" + +"@react-three/fiber@^8.0.11": + version "8.0.11" + resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-8.0.11.tgz#3fc140b43d954270da15c2d366ee940e62b43f32" + integrity sha512-plvh1mLDIAa3lJfqXJHBWi0PxTOQVXoPXd03/SIwt+vZFBPSzuQCRnhYY/8Q2Of3S89PWTl8TtFXNfRzTUHNnw== + dependencies: + "@babel/runtime" "^7.17.8" + "@types/react-reconciler" "^0.26.4" + react-merge-refs "^1.1.0" + react-reconciler "^0.27.0" + react-use-measure "^2.1.1" + scheduler "^0.21.0" + suspend-react "^0.0.8" + zustand "^3.7.1" + +"@react-three/rapier@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@react-three/rapier/-/rapier-0.4.1.tgz#66382f28b3ebd9b25cbaa21de37315428f5d98c5" + integrity sha512-1bL7RRMRI7COiqHjf1g1XD4FKSovRPm9YwbCqTBRIQLfeOhJATVRwSMwEQotN466ZGOzEeZ+FTtITU05AE2+3Q== + dependencies: + "@dimforge/rapier3d-compat" "0.8.1" + use-asset "^1.0.4" + +"@react-three/xr@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@react-three/xr/-/xr-3.5.0.tgz#90e41eed9b6fc492f9fb3c656ce658741d38b61a" + integrity sha512-Kb+dTjyOYwCw7CErZi2UYvhvTy41144HHpHpl/vvaa2B1xQKVK5vvbXJqUDzyrAcCZj5RUUx5e6W/u6NMa7miQ== + dependencies: + react-merge-refs "^1.1.0" + three-stdlib "^2.8.6" + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + dependencies: + any-observable "^0.3.0" + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@socket.io/component-emitter@~3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" + integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== + +"@stitches/react@^1.1.0": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@stitches/react/-/react-1.2.8.tgz#954f8008be8d9c65c4e58efa0937f32388ce3a38" + integrity sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA== + +"@stylelint/postcss-css-in-js@^0.37.2": + version "0.37.2" + resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz#7e5a84ad181f4234a2480803422a47b8749af3d2" + integrity sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA== + dependencies: + "@babel/core" ">=7.9.0" + +"@stylelint/postcss-markdown@^0.36.2": + version "0.36.2" + resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz#0a540c4692f8dcdfc13c8e352c17e7bfee2bb391" + integrity sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ== + dependencies: + remark "^13.0.0" + unist-util-find-all-after "^3.0.2" + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/webpack@^5.2.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + loader-utils "^2.0.0" + +"@tannin/compile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@tannin/compile/-/compile-1.1.0.tgz#1e4d1c5364cbfeffa1c20352c053e19ef20ffe93" + integrity sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg== + dependencies: + "@tannin/evaluate" "^1.2.0" + "@tannin/postfix" "^1.1.0" + +"@tannin/evaluate@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@tannin/evaluate/-/evaluate-1.2.0.tgz#468a13c45eff45340108836fc46c708457199c3f" + integrity sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg== + +"@tannin/plural-forms@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@tannin/plural-forms/-/plural-forms-1.1.0.tgz#cffbb060d2640a56a314e3c77cbf6ea6072b51d5" + integrity sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw== + dependencies: + "@tannin/compile" "^1.1.0" + +"@tannin/postfix@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@tannin/postfix/-/postfix-1.1.0.tgz#6071f4204ae26c2e885cf3a3f1203a9f71e3f291" + integrity sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw== + +"@testing-library/dom@^8.0.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.13.0.tgz#bc00bdd64c7d8b40841e27a70211399ad3af46f5" + integrity sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^5.0.0" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.4.4" + pretty-format "^27.0.2" + +"@testing-library/react@^12": + version "12.1.5" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" + integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^8.0.0" + "@types/react-dom" "<18.0.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/aria-query@^4.2.0": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" + integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.19" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.0.tgz#7a9b80f712fe2052bc20da153ff1e552404d8e4b" + integrity sha512-r8aveDbd+rzGP+ykSdF3oPuTVRWRfbBiHl0rVDM2yNEmSMXfkObQLV46b4RnCv3Lra51OlfnZhkkFaDl2MIRaA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/cheerio@^0.22.22": + version "0.22.31" + resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.31.tgz#b8538100653d6bb1b08a1e46dec75b4f2a5d5eb6" + integrity sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw== + dependencies: + "@types/node" "*" + +"@types/cookie@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== + +"@types/cors@^2.8.12": + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/lodash@4.14.149": + version "4.14.149" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440" + integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ== + +"@types/lodash@^4.14.172": + version "4.14.181" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.181.tgz#d1d3740c379fda17ab175165ba04e2d03389385d" + integrity sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag== + +"@types/mdast@^3.0.0": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + dependencies: + "@types/unist" "*" + +"@types/minimatch@*": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + +"@types/mousetrap@^1.6.8": + version "1.6.9" + resolved "https://registry.yarnpkg.com/@types/mousetrap/-/mousetrap-1.6.9.tgz#f1ef9adbd1eac3466f21b6988b1c82c633a45340" + integrity sha512-HUAiN65VsRXyFCTicolwb5+I7FM6f72zjMWr+ajGk+YTvzBgXqa2A5U7d+rtsouAkunJ5U4Sb5lNJjo9w+nmXg== + +"@types/node@*": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.24.tgz#20ba1bf69c1b4ab405c7a01e950c4f446b05029f" + integrity sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g== + +"@types/node@>=10.0.0": + version "18.7.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.9.tgz#180bfc495c91dc62573967edf047e15dbdce1491" + integrity sha512-0N5Y1XAdcl865nDdjbO0m3T6FdmQ4ijE89/urOHLREyTXbpMWbSafx9y7XIsgWGtwUP2iYTinLyyW3FatAxBLQ== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/offscreencanvas@^2019.6.4": + version "2019.7.0" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz#e4a932069db47bb3eabeb0b305502d01586fa90d" + integrity sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.0.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" + integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/q@^1.5.1": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + +"@types/react-dom@<18.0.0", "@types/react-dom@^17.0.11": + version "17.0.15" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.15.tgz#f2c8efde11521a4b7991e076cb9c70ba3bb0d156" + integrity sha512-Tr9VU9DvNoHDWlmecmcsE5ZZiUkYx+nKBzum4Oxe1K0yJVyBlfbq7H3eXjxXqJczBKqPGq3EgfTru4MgKb9+Yw== + dependencies: + "@types/react" "^17" + +"@types/react-dom@^16.9.0": + version "16.9.14" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.14.tgz#674b8f116645fe5266b40b525777fc6bb8eb3bcd" + integrity sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A== + dependencies: + "@types/react" "^16" + +"@types/react-reconciler@^0.26.4": + version "0.26.6" + resolved "https://registry.yarnpkg.com/@types/react-reconciler/-/react-reconciler-0.26.6.tgz#271b850616413b5c197ec485403961a11cedd4ef" + integrity sha512-N8MpyC6PJksD+CbMaZ1GW1t940+L4K+f7soiNKcKfgOgof3xWLvs5nPRQ/Q0P6QwDX0GH1PT1MsiQh2FtUY6aw== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.0.5" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.5.tgz#1a4d4b705ae6af5aed369dec22800b20f89f5301" + integrity sha512-UPxNGInDCIKlfqBrm8LDXYWNfLHwIdisWcsH5GpMyGjhEDLFgTtlRBaoWuCua9HcyuE0rMkmAeZ3FXV1pYLIYQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@^16", "@types/react@^16.9.0": + version "16.14.25" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.25.tgz#d003f712c7563fdef5a87327f1892825af375608" + integrity sha512-cXRVHd7vBT5v1is72mmvmsg9stZrbJO04DJqFeh3Yj2tVKO6vmxg5BI+ybI6Ls7ROXRG3aFbZj9x0WA3ZAoDQw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/react@^17", "@types/react@^17.0.37": + version "17.0.44" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" + integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/tapable@^1": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + +"@types/uglify-js@*": + version "3.13.2" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.2.tgz#1044c1713fb81cb1ceef29ad8a9ee1ce08d690ef" + integrity sha512-/xFrPIo+4zOeNGtVMbf9rUm0N+i4pDf1ynExomqtokIJmVzR3962lJ1UE+MmexMkA0cmN9oTzg5Xcbwge0Ij2Q== + dependencies: + source-map "^0.6.1" + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + +"@types/webpack-sources@*": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4.4.31": + version "4.41.32" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" + integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + +"@typescript-eslint/eslint-plugin@^4.31.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== + dependencies: + "@typescript-eslint/experimental-utils" "4.33.0" + "@typescript-eslint/scope-manager" "4.33.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.31.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== + dependencies: + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@2.6.1": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.1.tgz#fb363dd4ca23384745c5ea4b7f4c867432b00d31" + integrity sha512-+sTnssW6bcbDZKE8Ce7VV6LdzkQz2Bxk7jzk1J8H1rovoTxnm6iXvYIyncvNsaB/kBCOM63j/LNJfm27bNdUoA== + dependencies: + debug "^4.1.1" + glob "^7.1.4" + is-glob "^4.0.1" + lodash.unescape "4.0.1" + semver "^6.3.0" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@use-gesture/core@10.2.11": + version "10.2.11" + resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.11.tgz#914c36f190bcf452500d11a11fc294fe56e5dc2f" + integrity sha512-5YeVrT9prf9UeaAO+2fIuiKdZ01uVBvVsjG79berGZPTHVkz01eFX2ODWJG05uQTqmRw6olz1J80yt6qcGPdvA== + +"@use-gesture/react@^10.2.0": + version "10.2.11" + resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.2.11.tgz#f23776050aeaee3b18f80df9cd2b765229bbfa66" + integrity sha512-yATjHv6ZNe9Jar1YtJvcb6KxwpcGGW/X8FEUY6xo2mDxHkP7dCsnhZZm7I+giGlrJKBMvpVBARsbUhwQP6v6nA== + dependencies: + "@use-gesture/core" "10.2.11" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webgpu/glslang@^0.0.15": + version "0.0.15" + resolved "https://registry.yarnpkg.com/@webgpu/glslang/-/glslang-0.0.15.tgz#f5ccaf6015241e6175f4b90906b053f88483d1f2" + integrity sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q== + +"@wojtekmaj/enzyme-adapter-react-17@^0.6.1": + version "0.6.7" + resolved "https://registry.yarnpkg.com/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.6.7.tgz#7784bd32f518b186218cebb26c98c852676f30b0" + integrity sha512-B+byiwi/T1bx5hcj9wc0fUL5Hlb5giSXJzcnEfJVl2j6dGV2NJfcxDBYX0WWwIxlzNiFz8kAvlkFWI2y/nscZQ== + dependencies: + "@wojtekmaj/enzyme-adapter-utils" "^0.1.4" + enzyme-shallow-equal "^1.0.0" + has "^1.0.0" + prop-types "^15.7.0" + react-is "^17.0.0" + react-test-renderer "^17.0.0" + +"@wojtekmaj/enzyme-adapter-utils@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.1.4.tgz#bcd411ad6e368f17dce5425582c2907104cdb1ad" + integrity sha512-ARGIQSIIv3oBia1m5Ihn1VU0FGmft6KPe39SBKTb8p7LSXO23YI4kNtc4M/cKoIY7P+IYdrZcgMObvedyjoSQA== + dependencies: + function.prototype.name "^1.1.0" + has "^1.0.0" + object.fromentries "^2.0.0" + prop-types "^15.7.0" + +"@wordpress/a11y@^3.2.0", "@wordpress/a11y@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/a11y/-/a11y-3.6.0.tgz#6cf95e5e561c603c5942ee25f05a6225b6a1aa91" + integrity sha512-dlZCrVA/dorXYMyMmr7o5Z/Eh5ximwCG1lH13wyK+0MP/HN/XYRjjcny1Z4OtvrqwK81vUxmuyoqmwByHaNRdA== + dependencies: + "@babel/runtime" "^7.16.0" + "@wordpress/dom-ready" "^3.6.0" + "@wordpress/i18n" "^4.6.0" + +"@wordpress/api-fetch@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@wordpress/api-fetch/-/api-fetch-6.3.0.tgz#428de16d0ac9e8c56c48749290187c85e0bf6523" + integrity sha512-2fvpBlFb2DlDefMRD6O3iG7E0a4NprDaEHmlqx0My7UJ2fs0KN6+VLS9ZYZP1KcUg3bf0Ts+CnsZ3m4kk3+ZKg== + dependencies: + "@babel/runtime" "^7.16.0" + "@wordpress/i18n" "^4.6.0" + "@wordpress/url" "^3.7.0" + +"@wordpress/autop@^3.1.2", "@wordpress/autop@^3.2.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/autop/-/autop-3.6.0.tgz#4853d6169ccd5f54956525391451278405b45852" + integrity sha512-O4Y9yxrqD78psg2g5Ko7s12TrZQiofGIcm1rFfLKzYrxGU0ZGgFbRYwUvIvjngzrdbvM4vgKv8/U80dcGrApwg== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/babel-plugin-import-jsx-pragma@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-3.1.2.tgz#71596ae30b390ddb23680147011a26dce11f88e1" + integrity sha512-oMJnM3cJlu1hQMO4XmTFDhNPclj0cLRIeV5Y6uIF/9oNhhSfaMFu+ty0B4zBYodqwes/vbndwRg4j2q2bhG/Dg== + +"@wordpress/babel-preset-default@^6.2.1": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@wordpress/babel-preset-default/-/babel-preset-default-6.8.0.tgz#76a6ae40d2fd866e8b72504d4a5f783e414b0962" + integrity sha512-faEt3UqDNsUyF/047/vNB4dqF4RPk2T0W5ztvn0TTGPBP/pMOtmVPJoP/Op3bX9Dpv60o913u/NoVHt1F/fcDQ== + dependencies: + "@babel/core" "^7.16.0" + "@babel/plugin-transform-react-jsx" "^7.16.0" + "@babel/plugin-transform-runtime" "^7.16.0" + "@babel/preset-env" "^7.16.0" + "@babel/preset-typescript" "^7.16.0" + "@babel/runtime" "^7.16.0" + "@wordpress/babel-plugin-import-jsx-pragma" "^3.1.2" + "@wordpress/browserslist-config" "^4.1.2" + "@wordpress/element" "^4.4.0" + "@wordpress/warning" "^2.6.0" + browserslist "^4.17.6" + core-js "^3.19.1" + +"@wordpress/base-styles@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@wordpress/base-styles/-/base-styles-4.3.0.tgz#606ddb7c98253d9602eae25dd305c1b2b92b6f47" + integrity sha512-e9Z+txhEQ3zyAHkzzsuYg1ADFhKArz1eGU3ayqCNtCdakrgNjI6Q/sPODI26LlwTmjJPBIJ5wSCBrsDjMhdWqA== + +"@wordpress/blob@^3.1.2", "@wordpress/blob@^3.2.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/blob/-/blob-3.6.0.tgz#f06dafa94b37e1aec879224d37209a3ec7bcc11e" + integrity sha512-cbdjxXCfebS97hYXBnGzajM+CT83gV5Falx++cY5woVqPCPfpk6WagErjXbHMlM8HsYpbnhnYhQFs/oDuLhzTQ== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/block-editor@^6": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@wordpress/block-editor/-/block-editor-6.2.0.tgz#ab6be155193b2c3dd55bba4160d80890b5579f7f" + integrity sha512-9jSpF2c6GN95g/Mt3XTNb9GF9irpv4sEaaH5KicvP9JTE1/AZcPG43HOoX+nYoiCwCu45BbAWnisJa7stvMMbw== + dependencies: + "@babel/runtime" "^7.13.10" + "@wordpress/a11y" "^3.2.0" + "@wordpress/blob" "^3.2.0" + "@wordpress/block-serialization-default-parser" "^4.2.0" + "@wordpress/blocks" "^10.0.0" + "@wordpress/components" "^14.2.0" + "@wordpress/compose" "^4.2.0" + "@wordpress/data" "^5.2.0" + "@wordpress/data-controls" "^2.2.0" + "@wordpress/deprecated" "^3.2.0" + "@wordpress/dom" "^3.2.0" + "@wordpress/element" "^3.2.0" + "@wordpress/hooks" "^3.2.0" + "@wordpress/html-entities" "^3.2.0" + "@wordpress/i18n" "^4.2.0" + "@wordpress/icons" "^4.1.0" + "@wordpress/is-shallow-equal" "^4.2.0" + "@wordpress/keyboard-shortcuts" "^2.2.0" + "@wordpress/keycodes" "^3.2.0" + "@wordpress/notices" "^3.2.0" + "@wordpress/rich-text" "^4.2.0" + "@wordpress/shortcode" "^3.2.0" + "@wordpress/token-list" "^2.2.0" + "@wordpress/url" "^3.2.0" + "@wordpress/warning" "^2.2.0" + "@wordpress/wordcount" "^3.2.0" + classnames "^2.3.1" + css-mediaquery "^0.1.2" + diff "^4.0.2" + dom-scroll-into-view "^1.2.1" + inherits "^2.0.3" + lodash "^4.17.21" + memize "^1.1.0" + react-autosize-textarea "^7.1.0" + react-spring "^8.0.19" + redux-multi "^0.1.12" + rememo "^3.0.0" + tinycolor2 "^1.4.2" + traverse "^0.6.6" + +"@wordpress/block-serialization-default-parser@^4.1.2", "@wordpress/block-serialization-default-parser@^4.2.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.6.0.tgz#3132be9a06c85f92178a53c7f08a84c3caf7a7a8" + integrity sha512-a/W6XyYxoWLlIOZhmHINC9HrMbqEdOElm5OVDzRtlSLpeafWxc/iLub5cxj2jTxX5Befi4fV0JzTD/waPl5P/Q== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/blocks@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@wordpress/blocks/-/blocks-10.0.0.tgz#7be73f76bdcd90b2d62093a16586e80b9b4900ba" + integrity sha512-AiCaU0BQQnMRI5ZvClbI4zXAI3PZ+agtKoJLSkFP9gZrffWcptOsZqnGu7NVoNkPT47PwJtImCLh1j3JSSAFvg== + dependencies: + "@babel/runtime" "^7.13.10" + "@wordpress/autop" "^3.2.0" + "@wordpress/blob" "^3.2.0" + "@wordpress/block-serialization-default-parser" "^4.2.0" + "@wordpress/compose" "^4.2.0" + "@wordpress/data" "^5.2.0" + "@wordpress/deprecated" "^3.2.0" + "@wordpress/dom" "^3.2.0" + "@wordpress/element" "^3.2.0" + "@wordpress/hooks" "^3.2.0" + "@wordpress/html-entities" "^3.2.0" + "@wordpress/i18n" "^4.2.0" + "@wordpress/icons" "^4.1.0" + "@wordpress/is-shallow-equal" "^4.2.0" + "@wordpress/shortcode" "^3.2.0" + hpq "^1.3.0" + lodash "^4.17.21" + rememo "^3.0.0" + showdown "^1.9.1" + simple-html-tokenizer "^0.5.7" + tinycolor2 "^1.4.2" + uuid "^8.3.0" + +"@wordpress/blocks@^9": + version "9.1.8" + resolved "https://registry.yarnpkg.com/@wordpress/blocks/-/blocks-9.1.8.tgz#9a40d060f07811d9a4b0dac66bbfec691084f8e5" + integrity sha512-RYemYN+q5/M0k5mESBkQbsB101p9hWSOTSlGLzEPBj7yXJp/OnyQVdc2hAr6CQgX16CxOyRRXx1CYQdiOtXGYg== + dependencies: + "@babel/runtime" "^7.13.10" + "@wordpress/autop" "^3.1.2" + "@wordpress/blob" "^3.1.2" + "@wordpress/block-serialization-default-parser" "^4.1.2" + "@wordpress/compose" "^4.1.6" + "@wordpress/data" "^5.1.6" + "@wordpress/deprecated" "^3.1.2" + "@wordpress/dom" "^3.1.5" + "@wordpress/element" "^3.1.2" + "@wordpress/hooks" "^3.1.1" + "@wordpress/html-entities" "^3.1.2" + "@wordpress/i18n" "^4.1.2" + "@wordpress/icons" "^4.0.3" + "@wordpress/is-shallow-equal" "^4.1.1" + "@wordpress/shortcode" "^3.1.2" + hpq "^1.3.0" + lodash "^4.17.21" + rememo "^3.0.0" + showdown "^1.9.1" + simple-html-tokenizer "^0.5.7" + tinycolor2 "^1.4.2" + uuid "^8.3.0" + +"@wordpress/browserslist-config@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@wordpress/browserslist-config/-/browserslist-config-4.1.2.tgz#3d33e6316af269f2478bd6b0923aadd73cb08612" + integrity sha512-UH0Ifmm4tEjVPOtiqH6yxDvk2EKtqSAhnyhyfSIb0wUnEoGsWTjREZjzuhgjt/I2nTqfg+0gUSzL5D0yQH6wDQ== + +"@wordpress/components@^14", "@wordpress/components@^14.2.0": + version "14.2.0" + resolved "https://registry.yarnpkg.com/@wordpress/components/-/components-14.2.0.tgz#fa7c6ed96fb8ec98e05a04f8c0a7b583a84cd56f" + integrity sha512-a06jjuBQMcIyrfXBfk4Hyu9BLQkT1rQm3tbOIE9Ur/cV8K0os0DrMUPZlNZ37IeOORzXhz89/L5mopvRttGLJQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@emotion/cache" "^11.1.3" + "@emotion/css" "^11.1.3" + "@emotion/react" "^11.1.5" + "@emotion/styled" "^11.3.0" + "@emotion/utils" "1.0.0" + "@wordpress/a11y" "^3.2.0" + "@wordpress/compose" "^4.2.0" + "@wordpress/date" "^4.2.0" + "@wordpress/deprecated" "^3.2.0" + "@wordpress/dom" "^3.2.0" + "@wordpress/element" "^3.2.0" + "@wordpress/hooks" "^3.2.0" + "@wordpress/i18n" "^4.2.0" + "@wordpress/icons" "^4.1.0" + "@wordpress/is-shallow-equal" "^4.2.0" + "@wordpress/keycodes" "^3.2.0" + "@wordpress/primitives" "^2.2.0" + "@wordpress/rich-text" "^4.2.0" + "@wordpress/warning" "^2.2.0" + classnames "^2.3.1" + dom-scroll-into-view "^1.2.1" + downshift "^6.0.15" + gradient-parser "^0.1.5" + highlight-words-core "^1.2.2" + lodash "^4.17.21" + memize "^1.1.0" + moment "^2.22.1" + re-resizable "^6.4.0" + react-dates "^17.1.1" + react-resize-aware "^3.1.0" + react-spring "^8.0.20" + react-use-gesture "^9.0.0" + reakit "^1.3.8" + rememo "^3.0.0" + tinycolor2 "^1.4.2" + uuid "^8.3.0" + +"@wordpress/compose@^4.1.6", "@wordpress/compose@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-4.2.0.tgz#f9d900237cdea2e8f648438fb5b992f5d1ab7842" + integrity sha512-8CJ4wzTXT9ZP+uIvN1d2cPBv06ZmhUh+UKzSf7v1o7T28SaYRcoZbsvDD2dnXbS2ZwWPIYAD9waNLWjCBq/izA== + dependencies: + "@babel/runtime" "^7.13.10" + "@types/lodash" "4.14.149" + "@types/mousetrap" "^1.6.8" + "@wordpress/deprecated" "^3.2.0" + "@wordpress/dom" "^3.2.0" + "@wordpress/element" "^3.2.0" + "@wordpress/is-shallow-equal" "^4.2.0" + "@wordpress/keycodes" "^3.2.0" + "@wordpress/priority-queue" "^2.2.0" + clipboard "^2.0.1" + lodash "^4.17.21" + mousetrap "^1.6.5" + react-resize-aware "^3.1.0" + use-memo-one "^1.1.1" + +"@wordpress/compose@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-5.4.0.tgz#39c515b3b723bbafa6e21eeef198a8ac93e83d23" + integrity sha512-KKRW2bJ9Lri2gRGX717b1iquxxDlNDnP5SenCoCR0kXXH2Q6DAlM6JfISspCst7ag6dgiBSVBWzIsDyjeezceA== + dependencies: + "@babel/runtime" "^7.16.0" + "@types/lodash" "^4.14.172" + "@types/mousetrap" "^1.6.8" + "@wordpress/deprecated" "^3.6.0" + "@wordpress/dom" "^3.6.0" + "@wordpress/element" "^4.4.0" + "@wordpress/is-shallow-equal" "^4.6.0" + "@wordpress/keycodes" "^3.6.0" + "@wordpress/priority-queue" "^2.6.0" + clipboard "^2.0.8" + lodash "^4.17.21" + mousetrap "^1.6.5" + react-resize-aware "^3.1.0" + use-memo-one "^1.1.1" + +"@wordpress/data-controls@^2.2.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/data-controls/-/data-controls-2.6.0.tgz#a94569922f65612ef9758af515bbf720acf76a0c" + integrity sha512-uMwbzvnyiSYAEx08E/qUdTrQbaj3H38mW0CqDykKRwrvuIgWV2O/ISxrHjUnnuMbW0YcqVP4FZTE5vv0u8pOdA== + dependencies: + "@babel/runtime" "^7.16.0" + "@wordpress/api-fetch" "^6.3.0" + "@wordpress/data" "^6.6.0" + "@wordpress/deprecated" "^3.6.0" + +"@wordpress/data@^5.1.6", "@wordpress/data@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-5.2.0.tgz#14fc63788586968f503d538a7a9fbb60838afe6f" + integrity sha512-NlPIC8PdKnPly9CnynQS1di59Af3eiCZrQgZm1VssfA620NDoJA5p3dlDYj/Ts4Ryzp78HCi7wjhkmbsHpnd6g== + dependencies: + "@babel/runtime" "^7.13.10" + "@wordpress/compose" "^4.2.0" + "@wordpress/deprecated" "^3.2.0" + "@wordpress/element" "^3.2.0" + "@wordpress/is-shallow-equal" "^4.2.0" + "@wordpress/priority-queue" "^2.2.0" + "@wordpress/redux-routine" "^4.2.0" + equivalent-key-map "^0.2.2" + is-promise "^4.0.0" + lodash "^4.17.21" + memize "^1.1.0" + turbo-combine-reducers "^1.0.2" + use-memo-one "^1.1.1" + +"@wordpress/data@^6.6.0": + version "6.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-6.6.0.tgz#ffb39c52fe1222bd09a1f99668700a41f7ef6c4d" + integrity sha512-qfMPcheQeP61sxjI4L2H2APiA0hPykY6xvoLDBmZ7flaP7ldncEiC70nRnSdopW3lykPQi/A555eTeYW/Gnw2g== + dependencies: + "@babel/runtime" "^7.16.0" + "@wordpress/compose" "^5.4.0" + "@wordpress/deprecated" "^3.6.0" + "@wordpress/element" "^4.4.0" + "@wordpress/is-shallow-equal" "^4.6.0" + "@wordpress/priority-queue" "^2.6.0" + "@wordpress/redux-routine" "^4.6.0" + equivalent-key-map "^0.2.2" + is-promise "^4.0.0" + lodash "^4.17.21" + redux "^4.1.2" + turbo-combine-reducers "^1.0.2" + use-memo-one "^1.1.1" + +"@wordpress/date@^4.2.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/date/-/date-4.6.0.tgz#2a291dea51923973dad775ea90e8c2914a993478" + integrity sha512-BzBWnonCyhnSTz0W7D2xhRNVBj6+i2MN5jmeuuOxKhugoVPzu/ekVD6zdJYZFrv78Gq2LdJCsNTeoJHd21Th3Q== + dependencies: + "@babel/runtime" "^7.16.0" + moment "^2.22.1" + moment-timezone "^0.5.31" + +"@wordpress/dependency-extraction-webpack-plugin@^3.1.4": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-3.4.1.tgz#30189db06a5569caaf0b6a1776439b89abfc6522" + integrity sha512-QtF3RS2eoPl3LBxur3Rt7hFzBqhrSNU5WR/nRn1FUBx+AJ5zuEO8fY/lhqyJ2cCM2irRTrrUfey3NQoerd6GBA== + dependencies: + json2php "^0.0.4" + webpack-sources "^3.2.2" + +"@wordpress/deprecated@^3.1.2", "@wordpress/deprecated@^3.2.0", "@wordpress/deprecated@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/deprecated/-/deprecated-3.6.0.tgz#a4340192dbbae4a3cbe6960b95f83a4c0966a966" + integrity sha512-ykuOrr6Lxfl1E8D7MYHubMC3q/vKTjGzCzNj/LT3BUk7q6HQbk2rHhHejECrei7D9WqyKtQh1INyMG6y3vqjIA== + dependencies: + "@babel/runtime" "^7.16.0" + "@wordpress/hooks" "^3.6.0" + +"@wordpress/dom-ready@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/dom-ready/-/dom-ready-3.6.0.tgz#b643cdb2e54a601998d14d09141156f3ddab4b59" + integrity sha512-u82BCZkp1V5qy32LtIlgpkQwyxgzSj6aFaUaYDI3akkqcg9PFMhVAFAqVKKP1WNaDp89l4oeIFJWJTBArfYHzA== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/dom@^3.1.5", "@wordpress/dom@^3.2.0", "@wordpress/dom@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/dom/-/dom-3.6.0.tgz#4a9f2279062d01333d00bf7a61f8ecd2ac448fb0" + integrity sha512-JmIi4IhY+syoRPmJsJBXt0HPV3yRsz7AR9tx4RXUc0t0DMbH1ULqcyuBFt24MkQ6HmL939gpESflKR4Wo3GIcw== + dependencies: + "@babel/runtime" "^7.16.0" + lodash "^4.17.21" + +"@wordpress/element@^3", "@wordpress/element@^3.1.2", "@wordpress/element@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-3.2.0.tgz#531720b3a023a1509f13d2464b2e1d670153116e" + integrity sha512-YXJhtBF8FnFYwA9X6Dvs4k6yJf5wy1lhU04VNJVzoUDwCt/pK747RGePIPDdUWVd3X/TlyNH2yLRtcCyOC/SzQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@types/react" "^16.9.0" + "@types/react-dom" "^16.9.0" + "@wordpress/escape-html" "^2.2.0" + lodash "^4.17.21" + react "^17.0.1" + react-dom "^17.0.1" + +"@wordpress/element@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-4.4.0.tgz#2d5b870da913f2dc74002d3be80b4d0f20716578" + integrity sha512-3aQsvt7Nth6/OxOs9JTMKIb6Hu5uS4wdsU7fgb3aAv36Li3+fs6gdhhn2YdqWCWiKX2XVgEiFx6B7TK8+AglGw== + dependencies: + "@babel/runtime" "^7.16.0" + "@types/react" "^17.0.37" + "@types/react-dom" "^17.0.11" + "@wordpress/escape-html" "^2.6.0" + lodash "^4.17.21" + react "^17.0.2" + react-dom "^17.0.2" + +"@wordpress/escape-html@^2.2.0", "@wordpress/escape-html@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/escape-html/-/escape-html-2.6.0.tgz#00477508893ecbc41ff9518f6a33deb43d0a7d7b" + integrity sha512-gA+49nsTiQuxbgx4g4P9i9q3ea0RLOD6yBVSvtMzUX/vRhlz7xvlaj9PhFkbZu1FD+IHgBLuvRqHPbHNEqMyyQ== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/eslint-plugin@^9.0.6": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@wordpress/eslint-plugin/-/eslint-plugin-9.3.0.tgz#9099ed6f7c6f80a5653a79a3e0a0165c48fb5b79" + integrity sha512-9F7B60gHAjiTIi9vBw5ZoH0MZW3UnmbuKols4kWpJVdgsvG4X1Wj6XXTLmQKrzh/Em7mD1CCIbCSyWknEzIOLw== + dependencies: + "@babel/eslint-parser" "^7.16.0" + "@typescript-eslint/eslint-plugin" "^4.31.0" + "@typescript-eslint/parser" "^4.31.0" + "@wordpress/prettier-config" "^1.1.1" + cosmiconfig "^7.0.0" + eslint-config-prettier "^7.1.0" + eslint-plugin-import "^2.25.2" + eslint-plugin-jest "^24.1.3" + eslint-plugin-jsdoc "^36.0.8" + eslint-plugin-jsx-a11y "^6.4.1" + eslint-plugin-prettier "^3.3.0" + eslint-plugin-react "^7.22.0" + eslint-plugin-react-hooks "^4.2.0" + globals "^12.0.0" + prettier "npm:wp-prettier@2.2.1-beta-1" + requireindex "^1.2.0" + +"@wordpress/hooks@^3.1.1", "@wordpress/hooks@^3.2.0", "@wordpress/hooks@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/hooks/-/hooks-3.6.0.tgz#0c0ff4481ae050d3479b01776f8cf713975416ba" + integrity sha512-i2M68BR86v5Z0KBZLctlg8vXDqoXlZzmiPMCwDTVHGVm1QhbXA4aFX7LFcmCrZww9WvofX08liUVTwqwiPtNEg== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/html-entities@^3.1.2", "@wordpress/html-entities@^3.2.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/html-entities/-/html-entities-3.6.0.tgz#fcb8165b359863ea7e436ac5ffd161bd1fdc1170" + integrity sha512-JTcLDxd95NnhUh0wXDKP56KfgbEKsHnxfTOmmJiBcQ0IFE4C7v5eEFRwqCexCezv7QvJUYp/giFEBRi0lRIJ5w== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/i18n@^4", "@wordpress/i18n@^4.1.2", "@wordpress/i18n@^4.2.0", "@wordpress/i18n@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/i18n/-/i18n-4.6.0.tgz#eb7bcfbc2b9d73794d54f5686b5ad59a037c520e" + integrity sha512-ssAeBtKwlO5l4BqsU7p4tFV0h8BSluwDSsaR0J537cOBm2kUQxNe/XsJ6u08ChoXhxlIVYVBd7Mhc0emPX12rg== + dependencies: + "@babel/runtime" "^7.16.0" + "@wordpress/hooks" "^3.6.0" + gettext-parser "^1.3.1" + lodash "^4.17.21" + memize "^1.1.0" + sprintf-js "^1.1.1" + tannin "^1.2.0" + +"@wordpress/icons@^4.0.3", "@wordpress/icons@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@wordpress/icons/-/icons-4.1.0.tgz#12e3f6e5923c7c78200d242c152db6d068dc76a5" + integrity sha512-1FpEjT9kJbr0cWbgdgIwd2DoeerWijcVx3qCZ/WMFKNElBH9lfZLuWPI1hpX102HGWFcEi3VlbVpdBGeCeYQWg== + dependencies: + "@babel/runtime" "^7.13.10" + "@wordpress/element" "^3.2.0" + "@wordpress/primitives" "^2.2.0" + +"@wordpress/is-shallow-equal@^4.1.1", "@wordpress/is-shallow-equal@^4.2.0", "@wordpress/is-shallow-equal@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/is-shallow-equal/-/is-shallow-equal-4.6.0.tgz#9c40ef6b3efd94f2747f6bcc424034366acd8397" + integrity sha512-sRPDgTfaogRUaWxPCVm6ZhRcLb7W214Af2IItxAPTa3jkrEFY5oWXtqRROYmDDQpxJFAmESz9TgsH7Ls36vBwA== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/jest-console@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@wordpress/jest-console/-/jest-console-4.1.1.tgz#804c1f4b0ee6b54299c97ffb2fd6017850b8a534" + integrity sha512-f/DwduxU6k53tULurpCox4TKzp877+IWTHRUxE91+FOXS+2OsnhUPKfMiMEex4nu81a54EArwekPVKxaq4swbA== + dependencies: + "@babel/runtime" "^7.16.0" + jest-matcher-utils "^26.6.2" + lodash "^4.17.21" + +"@wordpress/jest-preset-default@^7.0.5": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@wordpress/jest-preset-default/-/jest-preset-default-7.1.3.tgz#1afd62c552b3c33d04964390ad4c854f2d7f3c7f" + integrity sha512-rz9V/YRr3TjLdZJQu7DAZHo848PpZ4N5ThtP4Lujy1O/UtcvtKF0r34SZTNDlFQO/G1USZQX/WL6HRhgl57iHA== + dependencies: + "@wojtekmaj/enzyme-adapter-react-17" "^0.6.1" + "@wordpress/jest-console" "^4.1.1" + babel-jest "^26.6.3" + enzyme "^3.11.0" + enzyme-to-json "^3.4.4" + +"@wordpress/keyboard-shortcuts@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-2.2.0.tgz#9cd945b5a72be9478dc62e2bbbb5520187f295b5" + integrity sha512-YSp6jkpsLGQAMwU0l400/t/kmronvdvTWzXuHolSktcy4uklg+yJjmufzGv7W22rdrjR8FmBEDST9jtFgZxjyA== + dependencies: + "@babel/runtime" "^7.13.10" + "@wordpress/compose" "^4.2.0" + "@wordpress/data" "^5.2.0" + "@wordpress/element" "^3.2.0" + "@wordpress/keycodes" "^3.2.0" + lodash "^4.17.21" + rememo "^3.0.0" + +"@wordpress/keycodes@^3.2.0", "@wordpress/keycodes@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/keycodes/-/keycodes-3.6.0.tgz#b95a799c8406e10d302f96aaf38a5d44ae5556a7" + integrity sha512-Iak71hXHSkT2N8/wv+5J/Mtoph8PLnJCAnFSZeKjOGCZ3Fw3hdnePK+aJby40CzaSll6y6Dk9Nj/OT8Bmkwe6Q== + dependencies: + "@babel/runtime" "^7.16.0" + "@wordpress/i18n" "^4.6.0" + lodash "^4.17.21" + +"@wordpress/notices@^3.2.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/notices/-/notices-3.6.0.tgz#b8309d4dd7c6ed33f084dc7c79782f5d7463ba77" + integrity sha512-xNjWV+fN5wJr7oEZ16wwYHRNL4K8nM+fTmPcjirbaXD39yY3FOJoMS8lI1+6OX+IlUztWPTVJT6gATlHYQwshg== + dependencies: + "@babel/runtime" "^7.16.0" + "@wordpress/a11y" "^3.6.0" + "@wordpress/data" "^6.6.0" + lodash "^4.17.21" + +"@wordpress/npm-package-json-lint-config@^4.0.5": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.1.2.tgz#b9d77eb7556ee531cfbda8bd16861aaee85a0013" + integrity sha512-Cq1qoSqt+nF2KOkzyH141YnHEnmd5jDRNbCmyC4lkofy6Qxpl4cVwFDX1dZ4S9WVjqqbLp3CEgRKxUzehyGInA== + +"@wordpress/postcss-plugins-preset@^3.1.4": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-3.6.0.tgz#5775b96200671c810921828fe834f3b6544cca3c" + integrity sha512-R6mihlMolkZPZ4O/0PuuKdD76dthih4aeaRzLSX7nduzBjHt6UYHWCk10m5mktDg4fyK7l+J4nRrQcX5T+PQdg== + dependencies: + "@wordpress/base-styles" "^4.3.0" + autoprefixer "^10.2.5" + +"@wordpress/prettier-config@^1.0.5", "@wordpress/prettier-config@^1.1.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@wordpress/prettier-config/-/prettier-config-1.1.3.tgz#4339ff68f7db37044af911de80f2413d1e8ad193" + integrity sha512-0ogGFvywFxVVhw5rXZUCDCV7aaw2KII5a3Xy0t1CAJYBP1TCF7tPNZIRyGD4bPzm5FM6IjmUMyB6NPzwRnpXrg== + +"@wordpress/primitives@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@wordpress/primitives/-/primitives-2.2.0.tgz#a813c3d8a43ad1f873b8e53f0b125cb8832273b0" + integrity sha512-WupgR+tt6fKGZE1UKy2gz3wDdpRL9MWQbVuetXv/7TPAz2ofOS2fZIsXNrl4D0HkA82gYh8w8s2TXK0XNyAAow== + dependencies: + "@babel/runtime" "^7.13.10" + "@wordpress/element" "^3.2.0" + classnames "^2.3.1" + +"@wordpress/priority-queue@^2.2.0", "@wordpress/priority-queue@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/priority-queue/-/priority-queue-2.6.0.tgz#a57a0df13fa7da2308d01dbdad08f6bd4bc9f07a" + integrity sha512-FKXrJ2OO7/R4vtDXJV0hyS4mCE5HgMqKkAiV83c62oJo4OWTr4hB+LvlngCMdY03O3qp9YKUEiQPgQCCgIXBuw== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/redux-routine@^4.2.0", "@wordpress/redux-routine@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/redux-routine/-/redux-routine-4.6.0.tgz#6ffbeb90d3ef3983f6e9c07470423f11afc07baf" + integrity sha512-0vpsdccfXf3efX6CBLRke/WTWJr1KGFaVgsC7TsSXGOJSzjrw1FLIOZEBZPPflM74reE3qyjzNwwBl8EoW/olA== + dependencies: + "@babel/runtime" "^7.16.0" + is-promise "^4.0.0" + lodash "^4.17.21" + rungen "^0.3.2" + +"@wordpress/rich-text@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@wordpress/rich-text/-/rich-text-4.2.0.tgz#df14810323378702e257a59ef66705cfbf44450e" + integrity sha512-e+wfrkKtZIcFZJZLxkrikiXbxlr6nuGg+V94uKMLrzJEWdw7w/8l3dNhWHRGPkldXIEGrF/mV40ibjUa2p3Sfg== + dependencies: + "@babel/runtime" "^7.13.10" + "@wordpress/compose" "^4.2.0" + "@wordpress/data" "^5.2.0" + "@wordpress/dom" "^3.2.0" + "@wordpress/element" "^3.2.0" + "@wordpress/escape-html" "^2.2.0" + "@wordpress/is-shallow-equal" "^4.2.0" + "@wordpress/keycodes" "^3.2.0" + classnames "^2.3.1" + lodash "^4.17.21" + memize "^1.1.0" + rememo "^3.0.0" + +"@wordpress/scripts@^16": + version "16.1.5" + resolved "https://registry.yarnpkg.com/@wordpress/scripts/-/scripts-16.1.5.tgz#86b2871499fd3b8b0370f0bf7acf25e806f60c99" + integrity sha512-EF63cT5UGbWEMEJBBhxvcoNAuJIooKlqAAaMq5wN1urzsJRpQOTHTV658onoKFfgAxWB78CD7svuwIqNPGQdIw== + dependencies: + "@svgr/webpack" "^5.2.0" + "@wordpress/babel-preset-default" "^6.2.1" + "@wordpress/dependency-extraction-webpack-plugin" "^3.1.4" + "@wordpress/eslint-plugin" "^9.0.6" + "@wordpress/jest-preset-default" "^7.0.5" + "@wordpress/npm-package-json-lint-config" "^4.0.5" + "@wordpress/postcss-plugins-preset" "^3.1.4" + "@wordpress/prettier-config" "^1.0.5" + "@wordpress/stylelint-config" "^19.0.5" + babel-jest "^26.6.3" + babel-loader "^8.2.2" + chalk "^4.0.0" + check-node-version "^4.1.0" + clean-webpack-plugin "^3.0.0" + cross-spawn "^5.1.0" + css-loader "^5.1.3" + cwd "^0.10.0" + dir-glob "^3.0.1" + eslint "^7.17.0" + eslint-plugin-markdown "^1.0.2" + expect-puppeteer "^4.4.0" + file-loader "^6.2.0" + filenamify "^4.2.0" + ignore-emit-webpack-plugin "^2.0.6" + jest "^26.6.3" + jest-circus "^26.6.3" + jest-dev-server "^4.4.0" + jest-environment-node "^26.6.2" + markdownlint "^0.18.0" + markdownlint-cli "^0.21.0" + merge-deep "^3.0.3" + mini-css-extract-plugin "^1.3.9" + minimist "^1.2.0" + npm-package-json-lint "^5.0.0" + postcss "^8.2.15" + postcss-loader "^4.2.0" + prettier "npm:wp-prettier@2.2.1-beta-1" + puppeteer-core "^9.0.0" + read-pkg-up "^1.0.1" + resolve-bin "^0.4.0" + sass "^1.26.11" + sass-loader "^10.1.1" + source-map-loader "^0.2.4" + stylelint "^13.8.0" + terser-webpack-plugin "^3.0.3" + thread-loader "^3.0.1" + url-loader "^4.1.1" + webpack "^4.46.0" + webpack-bundle-analyzer "^4.2.0" + webpack-cli "^3.3.11" + webpack-livereload-plugin "^2.3.0" + webpack-sources "^2.2.0" + +"@wordpress/shortcode@^3.1.2", "@wordpress/shortcode@^3.2.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/shortcode/-/shortcode-3.6.0.tgz#e870890cf6540b8cab8ffdcbd4bf034a45608f45" + integrity sha512-0oMM2SJ1Irw67we50Aw4U90MC1SJDE+QeXWmebhszq3XXK0PvNRUNAVwLl74oMAgR8S21wMkit1Z7YR0uTebDQ== + dependencies: + "@babel/runtime" "^7.16.0" + lodash "^4.17.21" + memize "^1.1.0" + +"@wordpress/stylelint-config@^19.0.5": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@wordpress/stylelint-config/-/stylelint-config-19.1.0.tgz#ec023dfd265e1f8ae20e5c760f67aee9ba85a1e5" + integrity sha512-K/wB9rhB+pH5WvDh3fV3DN5C3Bud+jPGXmnPY8fOXKMYI3twCFozK/j6sVuaJHqGp/0kKEF0hkkGh+HhD30KGQ== + dependencies: + stylelint-config-recommended "^3.0.0" + stylelint-config-recommended-scss "^4.2.0" + stylelint-scss "^3.17.2" + +"@wordpress/token-list@^2.2.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/token-list/-/token-list-2.6.0.tgz#a4342a164f5121a8f446149ce4d5046b49ec5870" + integrity sha512-luJsNfsM6SkVBT32jOvzSDYym8qm45nS6roD3zR6AFzRXAnWouXHvoJJRjGwvRzq1+s8nUy+gQmBApgvmGAtYg== + dependencies: + "@babel/runtime" "^7.16.0" + lodash "^4.17.21" + +"@wordpress/url@^3.2.0", "@wordpress/url@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@wordpress/url/-/url-3.7.0.tgz#6b342da37e7776b012589a755c10565e94b17e8e" + integrity sha512-oDhuWIA8yS06+2cU3XipgDWROt7CBJJhA2UcQ8FU3pCwzV17gvjUMQZBIFEschSxttVMnDZSKi9C1D29HQtmPg== + dependencies: + "@babel/runtime" "^7.16.0" + lodash "^4.17.21" + +"@wordpress/warning@^2.2.0", "@wordpress/warning@^2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-2.6.0.tgz#db1e39671910f1f7b31e81c27a25fd40200f4b82" + integrity sha512-VWdFzDXt0ZQydNvvl0qjlPbqsCA7ZPupwV6U3gMnvMxELirAGONF0zjlD9/y+u7WGndRctzIJC/Er7qBhHVcNA== + +"@wordpress/wordcount@^3.2.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@wordpress/wordcount/-/wordcount-3.6.0.tgz#187de9d76c32a4318c87cc3ac0ace87686e52bfe" + integrity sha512-I2R/PNkC2elDppJRSCYCvSr0GWDpQmM0qzfS1NELKC50HVA6w6YtLRK81YfW6QnDI4P26U6UB5W/dhbiMiIjfQ== + dependencies: + "@babel/runtime" "^7.16.0" + lodash "^4.17.21" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +JSONStream@^1.0.3, JSONStream@^1.3.2: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abstract-browser@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/abstract-browser/-/abstract-browser-1.0.0.tgz#5ea71a937547c88f250b3103b7cbb9163c329016" + integrity sha512-CJC6Wzow4cSFLsKhZJj0EGi3+023xmoRpW1FeNF9ErPwixkJTSO70Op/i6L120I6W36xm9GrXm4yquLNAywrEw== + dependencies: + browser-manifest "^1.0.0" + catering "^2.0.0" + nanoresource "^1.3.0" + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.2.0, acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-node@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-2.0.1.tgz#4a93ba32335950da9250175c654721f20f3375a7" + integrity sha512-VLR5sHqjk+8c5hrKeP2fWaIHb8eewsoxnZ8r2qpwRHXMHuC7KyOPflnOx9dLssVQUurzJ7rO0OzIFjHcndafWw== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0, acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn-walk@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^5.1.0: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.0.0, acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.0.4, acorn@^8.2.4: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +airbnb-prop-types@^2.10.0, airbnb-prop-types@^2.15.0, airbnb-prop-types@^2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2" + integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== + dependencies: + array.prototype.find "^2.1.1" + function.prototype.name "^1.1.2" + is-regex "^1.1.0" + object-is "^1.1.2" + object.assign "^4.1.0" + object.entries "^1.1.2" + prop-types "^15.7.2" + prop-types-exact "^1.2.0" + react-is "^16.13.1" + +airtap-default@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/airtap-default/-/airtap-default-1.0.0.tgz#2dbfec471020cf2152c77b3381d447436cc247aa" + integrity sha512-57/mkOCfxNZHtbsQ0jsH7g5K1JlOV+rwytJulF6HOdc0lXiHiaksndYagRmbs1GuhCtn3/GIF9A8eTePEWPnUg== + dependencies: + abstract-browser "^1.0.0" + browser-provider "^1.1.0" + open "^7.1.0" + +airtap-match-browsers@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/airtap-match-browsers/-/airtap-match-browsers-1.1.1.tgz#2bded2f72902eaadf5de1e6998e948140249aaf6" + integrity sha512-bscZpmugpAo2v0Gg2NmlP9kFbHnQKTqYKFOWXYcdc2eo2k6MLVxaE2K08BLeO+wp3ctOt0reK/5y6BOLWWXfMg== + dependencies: + browser-names "^1.0.1" + deep-dot "0.0.2" + deep-equal "^2.0.1" + is-fork-pr "^2.5.0" + merge-deep "^3.0.2" + +airtap-multi@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/airtap-multi/-/airtap-multi-1.0.0.tgz#2850dc3f8b3e4a2b34aeeca79e95ac06ef6065ed" + integrity sha512-VD2oXTzre8W03goLO9Sd8YmtVD5GFYIVtqBLfGjiR83b2aWL/GT0ZmDShHLLBe4ehQtt014yhvwg9X6WFMZdDg== + dependencies: + browser-provider "^1.1.0" + debug "^4.1.1" + merge-deep "^3.0.2" + run-parallel-settled "^1.0.0" + +airtap@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/airtap/-/airtap-4.0.4.tgz#52bb095ea4890fe290ed7c641f2fd88b1b29dfe8" + integrity sha512-sWrWdmPYWYWqMLKcS6vUdlpZCutvzn9ephGkEXnxd3tSYcYtY1nEwF6FsOWDLEOO0IGin/Y5kkwZ90+JKxeWxg== + dependencies: + "@airtap/browserify-istanbul" "^4.0.0" + airtap-default "^1.0.0" + airtap-multi "^1.0.0" + browserify "^16.5.2" + bruce-millis-option "^1.0.0" + compression "^1.7.1" + debug "^4.1.0" + engine.io "^6.1.0" + engine.io-client "^6.1.1" + express "^4.17.0" + find-nearest-file "^1.1.0" + globs-to-files "^1.0.0" + http-proxy "^1.18.1" + humanize-duration "^3.23.1" + js-yaml "^4.0.0" + load-script "^2.0.0" + make-promises-safe "^5.1.0" + maybe-combine-errors "^1.0.0" + minimist "^1.2.5" + nanoresource "^1.3.0" + nanoresource-collection "^1.0.0" + on-stream-close "^1.0.0" + readable-stream "^3.6.0" + run-parallel-settled "^1.0.1" + server-destroy "^1.0.1" + shell-quote "^1.7.0" + tap-completed "^1.0.0" + thunky-with-args "^1.0.0" + transient-error "^1.0.0" + uuid "^8.3.0" + watchify "^4.0.0" + +ajv-errors@^1.0.0, ajv-errors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.12.6: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== + +angular-estree-parser@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/angular-estree-parser/-/angular-estree-parser-1.3.1.tgz#5b590c3ef431fccb512755eea563029f84c043ee" + integrity sha512-jvlnNk4aoEmA6EKK12OnsOkCSdsWleBsYB+aWyH8kpfTB6Li1kxWVbHKVldH9zDCwVVi1hXfqPi/gbSv49tkbQ== + dependencies: + lines-and-columns "^1.1.6" + tslib "^1.9.3" + +angular-html-parser@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/angular-html-parser/-/angular-html-parser-1.4.0.tgz#4080989e46cad183264f950fb475590888d31104" + integrity sha512-5KyzzYOeZV9g9ahXw4rbi8IIbMjUdXoarXJ0CfbWue5U1YsvMnjMZJ3oadpU8ZtnIx1zR/dsyt+FLJx2U65d2Q== + dependencies: + tslib "^1.9.3" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" + integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@^3.1.0, anymatch@^3.1.1, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +aria-query@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" + integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-buffer-to-hex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-to-hex/-/array-buffer-to-hex-1.0.0.tgz#9c76e53010ef7bf7bf8a27ebbb41d24e1d83edf4" + integrity sha512-arycdkxgK1cj6s03GDb96tlCxOl1n3kg9M2OHseUc6Pqyqp+lgfceFPmG507eI5V+oxOSEnlOw/dFc7LXBXF4Q== + +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-from@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== + +array-includes@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" + integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + is-string "^1.0.7" + +array-includes@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" + integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + get-intrinsic "^1.1.1" + is-string "^1.0.7" + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1, array-uniq@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.every@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.3.tgz#31f01b48e1160bc4b49ecab246bf7f765c6686f9" + integrity sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + is-string "^1.0.7" + +array.prototype.filter@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.1.tgz#20688792acdb97a09488eaaee9eebbf3966aae21" + integrity sha512-Dk3Ty7N42Odk7PjU/Ci3zT4pLj20YvuVnneG/58ICM6bt4Ij5kZaJTVQ9TSaWaIECX2sFyz4KItkVZqHNnciqw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +array.prototype.find@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.2.0.tgz#153b8a28ad8965cd86d3117b07e6596af6f2880d" + integrity sha512-sn40qmUiLYAcRb/1HsIQjTTZ1kCy8II8VtZJpMn2Aoen9twULhbWXisfh3HimGqMlHGUul0/TfKCnXg42LuPpQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.4" + es-shim-unscopables "^1.0.0" + +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.5: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" + integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.2.5, array.prototype.flatmap@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" + integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1, assert@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async@^2.5.0, async@^2.6.2: + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +asyncreduce@~0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/asyncreduce/-/asyncreduce-0.1.4.tgz#18210e01978bfdcba043955497a5cd315c0a6a41" + integrity sha512-9q50+pYllC5Xg2BQCJBYvHpc5InGixioeLPxaKvUg3lFwItSbxbEpClPX7+GjXT3RFQk64ThvyGTdFs9ftb/hg== + dependencies: + runnel "~0.5.0" + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^10.2.5: + version "10.4.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.4.tgz#3e85a245b32da876a893d3ac2ea19f01e7ea5a1e" + integrity sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA== + dependencies: + browserslist "^4.20.2" + caniuse-lite "^1.0.30001317" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +autoprefixer@^9.8.6: + version "9.8.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + picocolors "^0.2.1" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +autosize@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/autosize/-/autosize-4.0.4.tgz#924f13853a466b633b9309330833936d8bccce03" + integrity sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axe-core@^4.3.5: + version "4.4.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" + integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-loader@^8.2.2: + version "8.2.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b" + integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@^2.6.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + dependencies: + "@babel/runtime" "^7.7.2" + cosmiconfig "^6.0.0" + resolve "^1.12.0" + +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.1" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" + +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +balanced-match@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" + integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== + +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bidi-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bidi-js/-/bidi-js-1.0.2.tgz#1a497a762c2ddea377429d2649c9ce0f8a91527f" + integrity sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw== + dependencies: + require-from-string "^2.0.2" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +body-scroll-lock@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz#c1392d9217ed2c3e237fee1e910f6cdd80b7aaec" + integrity sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg== + +body@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" + integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= + dependencies: + continuable-cache "^0.3.1" + error "^7.0.0" + raw-body "~1.1.0" + safe-json-parse "~1.0.1" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brcast@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/brcast/-/brcast-2.0.2.tgz#2db16de44140e418dc37fab10beec0369e78dcef" + integrity sha512-Tfn5JSE7hrUlFcOoaLzVvkbgIemIorMIyoMr3TgvszWW7jFt2C9PdeMLtysYD9RU0MmU17b69+XJG1eRY2OBRg== + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-manifest@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-manifest/-/browser-manifest-1.0.0.tgz#fbf58bb517f687203d8e541c7fcc9292ccce1293" + integrity sha512-+XZt3+6aTlqzI7OWYz4IPx8a2Ogxnl65AA5rTQvPYdB6YO1SLDQLqWJ4TR2QoAwyb29w78vU6trpqX5+9RoXXg== + +browser-names@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/browser-names/-/browser-names-1.1.0.tgz#9bbfcb326b08b8c909bc1c8fd98077299d4600a4" + integrity sha512-ytPHDpg38klSYRfsrvpU9IglWptXoLHWLrXGUuF3p+HqnowPciDAVcmldvey8B+EjP0eC2Mvwnk6sZxRt9PhMQ== + +browser-pack-flat@^3.0.9: + version "3.5.0" + resolved "https://registry.yarnpkg.com/browser-pack-flat/-/browser-pack-flat-3.5.0.tgz#8c3cc15ef9b444c8c40d6240e8eb7c3c90970484" + integrity sha512-u3iJUjs+TC/NGIL2GLyIcn5ppoNZXhTWqSW/gQbGIGvQiXXCQQzr5VWfACFraXQn2JrDlyRnKLeOs5AWXzKI6A== + dependencies: + JSONStream "^1.3.2" + combine-source-map "^0.8.0" + convert-source-map "^1.5.1" + count-lines "^0.1.2" + dedent "^0.7.0" + estree-is-member-expression "^1.0.0" + estree-is-require "^1.0.0" + esutils "^2.0.2" + path-parse "^1.0.5" + scope-analyzer "^2.0.0" + stream-combiner "^0.2.2" + through2 "^3.0.1" + transform-ast "^2.4.2" + umd "^3.0.3" + wrap-comment "^1.0.0" + +browser-pack@^6.0.1, browser-pack@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.8.0" + defined "^1.0.0" + safe-buffer "^5.1.1" + through2 "^2.0.0" + umd "^3.0.0" + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browser-provider@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browser-provider/-/browser-provider-1.2.0.tgz#338382e5e3196a2a8d9510f6fc3df3427497908b" + integrity sha512-8ixthQVQxgDyVt3tMzbbaonsjq+eDDS9opxCE+b7EzaqbgD9LVMunmijCm3/rmKFC7JLeHY0d2o0hsH98G1tKw== + dependencies: + airtap-match-browsers "^1.0.0" + browser-manifest "^1.0.0" + catering "^2.0.0" + +browser-resolve@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" + integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== + dependencies: + resolve "^1.17.0" + +browser-unpack@^1.1.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/browser-unpack/-/browser-unpack-1.4.2.tgz#7a708774dc7448df1c24a735d65d409708b95ce2" + integrity sha512-uHkiY4bmXjjBBWoKH1aRnEGTQxUUCCcVtoJfH9w1lmGGjETY4u93Zk+GRYkCE/SRMrdoMTINQ/1/manr/3aMVA== + dependencies: + acorn-node "^1.5.2" + concat-stream "^1.5.0" + minimist "^1.1.1" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserify@^16.5.2: + version "16.5.2" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.5.2.tgz#d926835e9280fa5fd57f5bc301f2ef24a972ddfe" + integrity sha512-TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^2.0.0" + browserify-zlib "~0.2.0" + buffer "~5.2.1" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^2.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + mkdirp-classic "^0.5.2" + module-deps "^6.2.3" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^3.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.10.1" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +browserify@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-17.0.0.tgz#4c48fed6c02bfa2b51fd3b670fddb805723cdc22" + integrity sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^2.0.0" + browserify-zlib "~0.2.0" + buffer "~5.2.1" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.1" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^3.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.2.1" + labeled-stream-splicer "^2.0.0" + mkdirp-classic "^0.5.2" + module-deps "^6.2.3" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "^1.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum-object "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^3.0.0" + stream-http "^3.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.12.0" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6, browserslist@^4.20.2: + version "4.20.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" + integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== + dependencies: + caniuse-lite "^1.0.30001317" + electron-to-chromium "^1.4.84" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + +bruce-millis-option@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bruce-millis-option/-/bruce-millis-option-1.0.0.tgz#d2247d576d7593d5644853c08244934283dc6300" + integrity sha512-CJOBham7dfRAU97F7vmGEmNXcSkK0GlDV+0QqsaVUu7cH/LO4I/y80j1GWX7MasKJMo6zQU2oCuTRl/ko2kyQA== + dependencies: + bruce-millis "^1.0.0" + +bruce-millis@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bruce-millis/-/bruce-millis-1.0.0.tgz#78c7cb499283fb7feb5ef1432fc3a11e4b4ce469" + integrity sha512-fUdlIysbXdH8xLNLfNHzcmJOEaJ845eVrmi1VuTCHOEB4tVdQeJ+xh+dkShiYwkntCdCbUyWk1t/R4V4fRhoqw== + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.2.1, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@~5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +builtins@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +bundle-collapser@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/bundle-collapser/-/bundle-collapser-1.4.0.tgz#c6e5c1104e91865b5158e91053b38788f50aa1d7" + integrity sha512-Gd3K3+3KI1Utuk+gwAvuOVOjT/2XLGL8tU6FwDKk04LlOZkYfT0pwQllsG1Dv8RRhgcjNxZSDmmSXb0AOkwSwg== + dependencies: + browser-pack "^6.0.2" + browser-unpack "^1.1.0" + concat-stream "^1.5.0" + falafel "^2.1.0" + minimist "^1.1.1" + through2 "^2.0.0" + +bytes@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" + integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^15.0.5: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + dependencies: + "@npmcli/fs" "^1.0.0" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" + integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-matcher@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-2.0.0.tgz#a38bee4e9ddbeec76aa31cc20311085a34dd395b" + integrity sha512-CIDC5wZZfZ2VjZu849WQckS58Z3pJXFfRaSjNjgo/q3in5zxkhTwVL83vttgtmvyLG7TuDlLlBya7SKP6CjDIA== + dependencies: + deep-equal "^1.0.0" + espurify "^2.0.0" + estraverse "^4.0.0" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0, camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +candygraph@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/candygraph/-/candygraph-0.3.1.tgz#cd1d179cf99d47a6eb8d7a02c6af8302c9e3d5cf" + integrity sha512-hKucn1biGRIDYxtYj+a5lIl5L8oQy7reE4aQAFKBteq3EodYfZQnLgmbMoQItBFZMLFa173fm3CLfiLhwM6lZw== + dependencies: + gl-matrix "^3.3.0" + regl "^1.7.0" + +caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317: + version "1.0.30001332" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" + integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +catering@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" + integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== + +chalk@3.0.0, chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-node-version@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/check-node-version/-/check-node-version-4.2.1.tgz#42f7e3c6e2427327b5c9080dae593d8997fe9a06" + integrity sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw== + dependencies: + chalk "^3.0.0" + map-values "^1.0.1" + minimist "^1.2.0" + object-filter "^1.0.2" + run-parallel "^1.1.4" + semver "^6.3.0" + +cheerio-select@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" + integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== + dependencies: + css-select "^4.3.0" + css-what "^6.0.1" + domelementtype "^2.2.0" + domhandler "^4.3.1" + domutils "^2.8.0" + +cheerio@^1.0.0-rc.3: + version "1.0.0-rc.10" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" + integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== + dependencies: + cheerio-select "^1.5.0" + dom-serializer "^1.3.2" + domhandler "^4.2.0" + htmlparser2 "^6.1.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + tslib "^2.2.0" + +chevrotain@^10.1.2: + version "10.1.2" + resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-10.1.2.tgz#c990ab43e32fd0bfb176ad1cbdebf48302ac8542" + integrity sha512-hvRiQuhhTZxkPMGD/dke+s1EGo8AkKDBU05CcufBO278qgAQSwIC4QyLdHz0CFHVtqVYWjlAS5D1KwvBbaHT+w== + dependencies: + "@chevrotain/cst-dts-gen" "^10.1.2" + "@chevrotain/gast" "^10.1.2" + "@chevrotain/types" "^10.1.2" + "@chevrotain/utils" "^10.1.2" + lodash "4.17.21" + regexp-to-ast "0.5.0" + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.0, chokidar@^3.4.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjk-regex@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cjk-regex/-/cjk-regex-2.0.0.tgz#060aa111e61092768c438ccc9c643a53e8fe1ee5" + integrity sha512-E4gFi2f3jC0zFVHpaAcupW+gv9OejZ2aV3DP/LlSO0dDcZJAXw7W0ivn+vN17edN/PhU4HCgs1bfx7lPK7FpdA== + dependencies: + regexp-util "^1.2.1" + unicode-regex "^2.0.0" + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clean-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b" + integrity sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A== + dependencies: + "@types/webpack" "^4.4.31" + del "^4.1.1" + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg== + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +clipboard@^2.0.1, clipboard@^2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.10.tgz#e61f6f7139ac5044c58c0484dcac9fb2a918bfd6" + integrity sha512-cz3m2YVwFz95qSEbCDi2fzLN/epEN9zXBvfgAoGkvGOJZATMl9gtTDVOtBYkx2ODUJl2kvmud7n32sV2BpYR4g== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" + integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= + dependencies: + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" + +clone-regexp@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f" + integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q== + dependencies: + is-regexp "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +collapse-white-space@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.16, colorette@^2.0.17: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg== + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.19.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^9.3.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" + integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== + +commander@~2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + dependencies: + graceful-readlink ">= 1.0.0" + +comment-parser@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.2.4.tgz#489f3ee55dfd184a6e4bffb31baba284453cb760" + integrity sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw== + +common-shakeify@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/common-shakeify/-/common-shakeify-1.1.1.tgz#b8ceff048db5dbfa7704ce83f0c993f560c73fa3" + integrity sha512-M9hTU14RkpKvNggSU4zJIzgm89inwjnhipxvKxCNms/gM77R7keRqOqGYIM/Jr4BBhtbZB8ZF//raYqAbHk/DA== + dependencies: + "@goto-bus-stop/common-shake" "^2.3.0" + convert-source-map "^1.5.1" + through2 "^2.0.3" + transform-ast "^2.4.3" + wrap-comment "^1.0.1" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.1: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-scroll-into-view@^1.0.17: + version "1.0.17" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" + integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg== + +computed-style@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/computed-style/-/computed-style-0.1.4.tgz#7f344fd8584b2e425bedca4a1afc0e300bb05d74" + integrity sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +"consolidated-events@^1.1.1 || ^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/consolidated-events/-/consolidated-events-2.0.2.tgz#da8d8f8c2b232831413d9e190dc11669c79f4a91" + integrity sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ== + +constants-browserify@^1.0.0, constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +continuable-cache@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" + integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= + +convert-hex@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/convert-hex/-/convert-hex-0.1.0.tgz#08c04568922c27776b8a2e81a95d393362ea0b65" + integrity sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A== + +convert-source-map@^1.1.1, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookie@~0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.22.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.0.tgz#7ce17ab57c378be2c717c7c8ed8f82a50a25b3e4" + integrity sha512-WwA7xbfRGrk8BGaaHlakauVXrlYmAIkk8PNGb1FDQS+Rbrewc3pgFfwJFRw6psmJVAll7Px9UHRYE16oRQnwAQ== + dependencies: + browserslist "^4.20.2" + semver "7.0.0" + +core-js-pure@^3.20.2: + version "3.22.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.22.0.tgz#0eaa54b6d1f4ebb4d19976bb4916dfad149a3747" + integrity sha512-ylOC9nVy0ak1N+fPIZj00umoZHgUVqmucklP5RT5N+vJof38klKn8Ze6KGyvchdClvEBr6LcQqJpI216LUMqYA== + +core-js@^2.6.5: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.19.1: + version "3.22.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.0.tgz#b52007870c5e091517352e833b77f0b2d2b259f3" + integrity sha512-8h9jBweRjMiY+ORO7bdWSeWfHhLPO7whobj7Z2Bl0IDo00C228EdGgH7FE4jGumbEjzcFfkfW8bXgdkEDhnwHQ== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@~2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@5.2.1, cosmiconfig@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +count-lines@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/count-lines/-/count-lines-0.1.2.tgz#e33493fb6860a82f7159d8237843fbfaefee5962" + integrity sha512-YS8P4UYXX/hrDyLU3r/A5OcCNwdNbJFJckbe8j+x2Jhxsr2J4/rYl0sDwOljLZL7Uxc4s7mRSNcQD8dSjobz+g== + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-loader@^5.1.3: + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + +css-mediaquery@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/css-mediaquery/-/css-mediaquery-0.1.2.tgz#6a2c37344928618631c54bd33cedd301da18bea0" + integrity sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA= + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-select@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.0.11" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" + integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== + +cwd@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/cwd/-/cwd-0.10.0.tgz#172400694057c22a13b0cf16162c7e4b7a7fe567" + integrity sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc= + dependencies: + find-pkg "^0.1.2" + fs-exists-sync "^0.1.0" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +damerau-levenshtein@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +dash-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== + +dash-ast@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-2.0.1.tgz#8d0fd2e601c59bf874cc22877ee7dd889f54dee8" + integrity sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +dashify@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dashify/-/dashify-2.0.0.tgz#fff270ca2868ca427fee571de35691d6e437a648" + integrity sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A== + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +dedent@0.7.0, dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-dot@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/deep-dot/-/deep-dot-0.0.2.tgz#d7488c8777440032ebb9c6b8e9773c4135bc3ffa" + integrity sha512-SB8QWQ0wL8poi7ddhKaXijYbHYQYuv4lPvQGxOIwVDYu5G0OjUSTkvjPB1H9AGW0rOf49XHKWOtFnBTJtmHbvQ== + +deep-equal@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-equal@^2.0.1, deep-equal@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" + integrity sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw== + dependencies: + call-bind "^1.0.0" + es-get-iterator "^1.1.1" + get-intrinsic "^1.0.1" + is-arguments "^1.0.4" + is-date-object "^1.0.2" + is-regex "^1.1.1" + isarray "^2.0.5" + object-is "^1.1.4" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.3" + which-boxed-primitive "^1.0.1" + which-collection "^1.0.1" + which-typed-array "^1.1.2" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-extend@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" + integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +del@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" + integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== + dependencies: + globby "^10.0.1" + graceful-fs "^4.2.2" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.1" + p-map "^3.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +deps-sort@^2.0.0, deps-sort@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" + integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== + dependencies: + JSONStream "^1.0.3" + shasum-object "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + +detect-gpu@^4.0.14: + version "4.0.18" + resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-4.0.18.tgz#5f367d9fea3e0570ccbe47fec920fa03f5705b4d" + integrity sha512-dqBIrt6EJ7YfSWN9d1HylWI/2j7YbnDNdU4jH4zm7/l4XJQhsEk77WrNEYfp9v8OWPmho3hqv54up1zafwxgzw== + dependencies: + webgl-constants "^1.1.1" + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detective@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" + integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== + dependencies: + acorn-node "^1.8.2" + defined "^1.0.0" + minimist "^1.2.6" + +devtools-protocol@0.0.869402: + version "0.0.869402" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.869402.tgz#03ade701761742e43ae4de5dc188bcd80f156d8d" + integrity sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diff@4.0.2, diff@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +direction@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442" + integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ== + +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +document.contains@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/document.contains/-/document.contains-1.0.2.tgz#4260abad67a6ae9e135c1be83d68da0db169d5f0" + integrity sha512-YcvYFs15mX8m3AO1QNQy3BlIpSMfNRj3Ujk2BEJxsZG+HZf7/hZ6jr7mDpXrF8q+ff95Vef5yjhiZxm8CGJr6Q== + dependencies: + define-properties "^1.1.3" + +dom-accessibility-api@^0.5.9: + version "0.5.13" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b" + integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw== + +dom-scroll-into-view@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz#e8f36732dd089b0201a88d7815dc3f88e6d66c7e" + integrity sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4= + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1, dom-serializer@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domain-browser@^1.1.1, domain-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +downshift@^6.0.15: + version "6.1.7" + resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.7.tgz#fdb4c4e4f1d11587985cd76e21e8b4b3fa72e44c" + integrity sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg== + dependencies: + "@babel/runtime" "^7.14.8" + compute-scroll-into-view "^1.0.17" + prop-types "^15.7.2" + react-is "^17.0.2" + tslib "^2.3.0" + +draco3d@^1.4.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.5.2.tgz#a09604a9e6bbf4e5a69208af4622038c55ef4ca7" + integrity sha512-AeRQ25Fb29c14vpjnh167UGW0nGY0ZpEM3ld+zEXoEySlmEXcXfsCHZeTgo5qXH925V1JsdjrzasdaQ22/vXog== + +duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== + dependencies: + readable-stream "^2.0.2" + +duplexer@^0.1.2, duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +duplexify@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" + integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +editorconfig-to-prettier@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/editorconfig-to-prettier/-/editorconfig-to-prettier-0.1.1.tgz#7391c7067dfd68ffee65afc2c4fbe4fba8d4219a" + integrity sha512-MMadSSVRDb4uKdxV6bCXXN4cTsxIsXYtV4XdPu6FOCSAw6zsCIDA+QEktEU+u6h+c/mTrul5NR+pwFpPxwetiQ== + +editorconfig@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.84: + version "1.4.111" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.111.tgz#897613f6504f3f17c9381c7499a635b413e4df4e" + integrity sha512-/s3+fwhKf1YK4k7btOImOzCQLpUjS6MaPf0ODTNuT4eTM1Bg4itBpLkydhOzJmpmH6Z9eXFyuuK5czsmzRzwtw== + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.12: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@^6.1.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" + integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.0.3" + ws "~8.2.3" + xmlhttprequest-ssl "~2.0.0" + +engine.io-parser@~5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" + integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== + +engine.io@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" + integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== + dependencies: + "@types/cookie" "^0.4.1" + "@types/cors" "^2.8.12" + "@types/node" ">=10.0.0" + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + cors "~2.8.5" + debug "~4.3.1" + engine.io-parser "~5.0.3" + ws "~8.2.3" + +enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + +enzyme-shallow-equal@^1.0.0, enzyme-shallow-equal@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e" + integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q== + dependencies: + has "^1.0.3" + object-is "^1.1.2" + +enzyme-to-json@^3.4.4: + version "3.6.2" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.6.2.tgz#94f85c413bcae8ab67be53b0a94b69a560e27823" + integrity sha512-Ynm6Z6R6iwQ0g2g1YToz6DWhxVnt8Dy1ijR2zynRKxTyBGA8rCDXU3rs2Qc4OKvUvc2Qoe1bcFK6bnPs20TrTg== + dependencies: + "@types/cheerio" "^0.22.22" + lodash "^4.17.21" + react-is "^16.12.0" + +enzyme@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" + integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== + dependencies: + array.prototype.flat "^1.2.3" + cheerio "^1.0.0-rc.3" + enzyme-shallow-equal "^1.0.1" + function.prototype.name "^1.1.2" + has "^1.0.3" + html-element-map "^1.2.0" + is-boolean-object "^1.0.1" + is-callable "^1.1.5" + is-number-object "^1.0.4" + is-regex "^1.0.5" + is-string "^1.0.5" + is-subset "^0.1.1" + lodash.escape "^4.0.1" + lodash.isequal "^4.5.0" + object-inspect "^1.7.0" + object-is "^1.0.2" + object.assign "^4.1.0" + object.entries "^1.1.1" + object.values "^1.1.1" + raf "^3.4.1" + rst-selector-parser "^2.2.3" + string.prototype.trim "^1.2.1" + +equivalent-key-map@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz#be4d57049bb8d46a81d6e256c1628465620c2a13" + integrity sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew== + +err-code@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" + integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.4: + version "1.19.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" + integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + dependencies: + has "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@~0.10.14: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3, es6-map@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A== + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@^0.1.5, es6-set@~0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8" + integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + es6-iterator "~2.0.3" + es6-symbol "^3.1.3" + event-emitter "^0.3.5" + type "^2.7.2" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +esbuild-android-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz#3c7b2f2a59017dab3f2c0356188a8dd9cbdc91c8" + integrity sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg== + +esbuild-android-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz#e301db818c5a67b786bf3bb7320e414ac0fcf193" + integrity sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg== + +esbuild-darwin-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz#11726de5d0bf5960b92421ef433e35871c091f8d" + integrity sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ== + +esbuild-darwin-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz#ad89dafebb3613fd374f5a245bb0ce4132413997" + integrity sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg== + +esbuild-freebsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz#6bfb52b4a0d29c965aa833e04126e95173289c8a" + integrity sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA== + +esbuild-freebsd-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz#38a3fed8c6398072f9914856c7c3e3444f9ef4dd" + integrity sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w== + +esbuild-linux-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz#942dc70127f0c0a7ea91111baf2806e61fc81b32" + integrity sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ== + +esbuild-linux-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz#6d748564492d5daaa7e62420862c31ac3a44aed9" + integrity sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg== + +esbuild-linux-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz#28cd899beb2d2b0a3870fd44f4526835089a318d" + integrity sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA== + +esbuild-linux-arm@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz#6441c256225564d8794fdef5b0a69bc1a43051b5" + integrity sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q== + +esbuild-linux-mips64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz#d4927f817290eaffc062446896b2a553f0e11981" + integrity sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ== + +esbuild-linux-ppc64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz#b6d660dc6d5295f89ac51c675f1a2f639e2fb474" + integrity sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw== + +esbuild-linux-riscv64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz#2801bf18414dc3d3ad58d1ea83084f00d9d84896" + integrity sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA== + +esbuild-linux-s390x@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz#12a634ae6d3384cacc2b8f4201047deafe596eae" + integrity sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ== + +esbuild-netbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz#951bbf87600512dfcfbe3b8d9d117d684d26c1b8" + integrity sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w== + +esbuild-openbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz#26705b61961d525d79a772232e8b8f211fdbb035" + integrity sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA== + +esbuild-sunos-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz#d794da1ae60e6e2f6194c44d7b3c66bf66c7a141" + integrity sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA== + +esbuild-windows-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz#0670326903f421424be86bc03b7f7b3ff86a9db7" + integrity sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg== + +esbuild-windows-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz#64f32acb7341f3f0a4d10e8ff1998c2d1ebfc0a9" + integrity sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw== + +esbuild-windows-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz#4fe7f333ce22a922906b10233c62171673a3854b" + integrity sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA== + +esbuild@^0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.5.tgz#5effd05666f621d4ff2fe2c76a67c198292193ff" + integrity sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg== + optionalDependencies: + "@esbuild/linux-loong64" "0.15.5" + esbuild-android-64 "0.15.5" + esbuild-android-arm64 "0.15.5" + esbuild-darwin-64 "0.15.5" + esbuild-darwin-arm64 "0.15.5" + esbuild-freebsd-64 "0.15.5" + esbuild-freebsd-arm64 "0.15.5" + esbuild-linux-32 "0.15.5" + esbuild-linux-64 "0.15.5" + esbuild-linux-arm "0.15.5" + esbuild-linux-arm64 "0.15.5" + esbuild-linux-mips64le "0.15.5" + esbuild-linux-ppc64le "0.15.5" + esbuild-linux-riscv64 "0.15.5" + esbuild-linux-s390x "0.15.5" + esbuild-netbsd-64 "0.15.5" + esbuild-openbsd-64 "0.15.5" + esbuild-sunos-64 "0.15.5" + esbuild-windows-32 "0.15.5" + esbuild-windows-64 "0.15.5" + esbuild-windows-arm64 "0.15.5" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.6.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + integrity sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ== + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-prettier@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9" + integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== + +eslint-config-standard-jsx@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz#70852d395731a96704a592be5b0bfaccfeded239" + integrity sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ== + +eslint-config-standard@17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" + integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== + +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-module-utils@^2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + dependencies: + debug "^3.2.7" + find-up "^2.1.0" + +eslint-plugin-es@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" + integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== + dependencies: + eslint-utils "^2.0.0" + regexpp "^3.0.0" + +eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.26.0: + version "2.26.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + dependencies: + array-includes "^3.1.4" + array.prototype.flat "^1.2.5" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.7.3" + has "^1.0.3" + is-core-module "^2.8.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.values "^1.1.5" + resolve "^1.22.0" + tsconfig-paths "^3.14.1" + +eslint-plugin-jest@^24.1.3: + version "24.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz#206ac0833841e59e375170b15f8d0955219c4889" + integrity sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-jsdoc@^36.0.8: + version "36.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.1.1.tgz#124cd0e53a5d07f01ebde916a96dd1a6009625d6" + integrity sha512-nuLDvH1EJaKx0PCa9oeQIxH6pACIhZd1gkalTUxZbaxxwokjs7TplqY0Q8Ew3CoZaf5aowm0g/Z3JGHCatt+gQ== + dependencies: + "@es-joy/jsdoccomment" "0.10.8" + comment-parser "1.2.4" + debug "^4.3.2" + esquery "^1.4.0" + jsdoc-type-pratt-parser "^1.1.1" + lodash "^4.17.21" + regextras "^0.8.0" + semver "^7.3.5" + spdx-expression-parse "^3.0.1" + +eslint-plugin-jsx-a11y@^6.4.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" + integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== + dependencies: + "@babel/runtime" "^7.16.3" + aria-query "^4.2.2" + array-includes "^3.1.4" + ast-types-flow "^0.0.7" + axe-core "^4.3.5" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.7" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.2.1" + language-tags "^1.0.5" + minimatch "^3.0.4" + +eslint-plugin-markdown@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz#79274bf17ce3ead48e4a55cbcb6d7ce735754280" + integrity sha512-BfvXKsO0K+zvdarNc801jsE/NTLmig4oKhZ1U3aSUgTf2dB/US5+CrfGxMsCK2Ki1vS1R3HPok+uYpufFndhzw== + dependencies: + object-assign "^4.0.1" + remark-parse "^5.0.0" + unified "^6.1.2" + +eslint-plugin-n@^15.1.0: + version "15.2.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.2.4.tgz#d62021a0821ae650701ed459756aaf478a9b6056" + integrity sha512-tjnVMv2fiXYMnuiIFI8QMtyUFI42SckEEWvi8h68SWGWshfqO6SSCASy24dGMGAiy7NUk6DZt90DM0iNUsmQ5w== + dependencies: + builtins "^5.0.1" + eslint-plugin-es "^4.1.0" + eslint-utils "^3.0.0" + ignore "^5.1.1" + is-core-module "^2.9.0" + minimatch "^3.1.2" + resolve "^1.10.1" + semver "^7.3.7" + +eslint-plugin-prettier@^3.3.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5" + integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-promise@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz#017652c07c9816413a41e11c30adc42c3d55ff18" + integrity sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw== + +eslint-plugin-react-hooks@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz#71c39e528764c848d8253e1aa2c7024ed505f6c4" + integrity sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ== + +eslint-plugin-react@^7.22.0: + version "7.29.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" + integrity sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ== + dependencies: + array-includes "^3.1.4" + array.prototype.flatmap "^1.2.5" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.0" + object.values "^1.1.5" + prop-types "^15.8.1" + resolve "^2.0.0-next.3" + semver "^6.3.0" + string.prototype.matchall "^4.0.6" + +eslint-plugin-react@^7.28.0: + version "7.30.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22" + integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg== + dependencies: + array-includes "^3.1.5" + array.prototype.flatmap "^1.3.0" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.1" + object.values "^1.1.5" + prop-types "^15.8.1" + resolve "^2.0.0-next.3" + semver "^6.3.0" + string.prototype.matchall "^4.0.7" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +eslint@^7.17.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +eslint@^8.13.0: + version "8.22.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" + integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== + dependencies: + "@eslint/eslintrc" "^1.3.0" + "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.3.3" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^6.0.1" + globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +espree@^9.3.2, espree@^9.3.3: + version "9.3.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" + integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +espurify@^2.0.0, espurify@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-2.1.1.tgz#afb043f22fac908d991dd25f7bf40bcf03935b9c" + integrity sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ== + +esquery@^1.0.1, esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-is-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-function/-/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" + integrity sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA== + +estree-is-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-identifier/-/estree-is-identifier-1.0.0.tgz#50433fa88d3d00a1bf7a1d7df6e4e67f36aa89f7" + integrity sha512-2BDRGrkQJV/NhCAmmE33A35WAaxq3WQaGHgQuD//7orGWfpFqj8Srkwvx0TH+20yIdOF1yMQwi8anv5ISec2AQ== + +estree-is-member-expression@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-member-expression/-/estree-is-member-expression-1.0.0.tgz#e724721e0a14949d363915fd71448eaa6312f590" + integrity sha512-Ec+X44CapIGExvSZN+pGkmr5p7HwUVQoPQSd458Lqwvaf4/61k/invHSh4BYK8OXnCkfEhWuIoG5hayKLQStIg== + +estree-is-require@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/estree-is-require/-/estree-is-require-1.0.0.tgz#fce2c6126d141d1f9316e8c07799d7f0a55bb69b" + integrity sha512-oWxQdSEmnUwNZsDQYiBNpVxKEhMmsJQSSxnDrwsr1MWtooCLfhgzsNGzmokdmfK0EzEIS5V4LPvqxv1Kmb1vvA== + dependencies: + estree-is-identifier "^1.0.0" + +esutils@2.0.3, esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5, event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events-to-array@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6" + integrity sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA== + +events@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== + +events@^3.0.0, events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^2.0.3, execa@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" + integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^3.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +execall@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" + integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow== + dependencies: + clone-regexp "^2.1.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= + dependencies: + os-homedir "^1.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +expect-puppeteer@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz#1c948af08acdd6c8cbdb7f90e617f44d86888886" + integrity sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA== + +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +express@^4.17.0: + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52" + integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg== + dependencies: + type "^2.5.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-zip@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +falafel@^2.1.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.2.5.tgz#3ccb4970a09b094e9e54fead2deee64b4a589d56" + integrity sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ== + dependencies: + acorn "^7.1.1" + isarray "^2.0.1" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.0.3, fast-glob@^3.2.5, fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-memoize@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" + integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== + +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fastest-levenshtein@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +faye-websocket@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +fflate@^0.6.9: + version "0.6.10" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" + integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg== + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik= + +filenamify@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-file-up@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/find-file-up/-/find-file-up-0.1.3.tgz#cf68091bcf9f300a40da411b37da5cce5a2fbea0" + integrity sha1-z2gJG8+fMApA2kEbN9pczlovvqA= + dependencies: + fs-exists-sync "^0.1.0" + resolve-dir "^0.1.0" + +find-nearest-file@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-nearest-file/-/find-nearest-file-1.1.0.tgz#e29441740329a2015f7655faecd7b85e02cad686" + integrity sha512-NMsS0ITOwpBPrHOyO7YUtDhaVEGUKS0kBJDVaWZPuCzO7JMW+uzFQQVts/gPyIV9ioyNWDb5LjhHWXVf1OnBDA== + +find-parent-dir@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + integrity sha512-41+Uo9lF5JNGpIMGrujNKDuqH9ofU2ISJ1XCZPLIN/Yayql599PtA0ywYtlLMYmJcSPkr4uAF14wJmKlW2Fx3g== + +find-parent-dir@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.1.tgz#c5c385b96858c3351f95d446cab866cbf9f11125" + integrity sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A== + +find-pkg@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/find-pkg/-/find-pkg-0.1.2.tgz#1bdc22c06e36365532e2a248046854b9788da557" + integrity sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc= + dependencies: + find-file-up "^0.1.2" + +find-process@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/find-process/-/find-process-1.4.7.tgz#8c76962259216c381ef1099371465b5b439ea121" + integrity sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg== + dependencies: + chalk "^4.0.0" + commander "^5.1.0" + debug "^4.1.1" + +find-project-root@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/find-project-root/-/find-project-root-1.1.1.tgz#d242727a2d904725df5714f23dfdcdedda0b6ef8" + integrity sha512-4+yZ013W+EZc+hvdgA2RlzlgNfP1eGdMNxU6xzw1yt518cF6/xZD3kLV+bprYX5+AD0IL76xcN28TPqYJHxrHw== + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flatted@^3.1.0: + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flow-parser@0.111.3: + version "0.111.3" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.111.3.tgz#4c256aa21a5dbb53d5305e3512cc120659ca08f3" + integrity sha512-iEjGZ94OBMcESxnLorXNjJmtd/JtQYXUVrQpfwvtAKkuyawRmv+2LM6nqyOsOJkISEYbyY6ziudRE0u4VyPSVA== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" + integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +from2-string@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/from2-string/-/from2-string-1.1.0.tgz#18282b27d08a267cb3030cd2b8b4b0f212af752a" + integrity sha512-m8vCh+KnXXXBtfF2VUbiYlQ+nczLcntB0BrtNgpmLkHylhObe9WF1b2LZjBBzrZzA6P4mkEla6ZYQoOUTG8cYA== + dependencies: + from2 "^2.0.3" + +from2@^2.0.3, from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.0, function.prototype.name@^1.1.2, function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +functions-have-names@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" + integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-assigned-identifiers@^1.1.0, get-assigned-identifiers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== + +get-browser-rtc@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz#d1494e299b00f33fc8e9d6d3343ba4ba99711a2c" + integrity sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +get-stdin@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= + +get-stream@4.1.0, get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +gettext-parser@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/gettext-parser/-/gettext-parser-1.4.0.tgz#f8baf34a292f03d5e42f02df099d301f167a7ace" + integrity sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA== + dependencies: + encoding "^0.1.12" + safe-buffer "^5.1.1" + +gl-matrix@^3.3.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.4.3.tgz#fc1191e8320009fd4d20e9339595c6041ddc22c9" + integrity sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA== + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^5.0.10: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.0, glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~7.1.2: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-cache@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/global-cache/-/global-cache-1.2.1.tgz#39ca020d3dd7b3f0934c52b75363f8d53312c16d" + integrity sha512-EOeUaup5DgWKlCMhA9YFqNRIlZwoxt731jCh47WBV9fQqHgXhr3Fa55hfgIUqilIcPsfdNKN7LHjrNY+Km40KA== + dependencies: + define-properties "^1.1.2" + is-symbol "^1.0.1" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.0.0, globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globals@^13.15.0: + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== + dependencies: + type-fest "^0.20.2" + +globals@^13.6.0, globals@^13.9.0: + version "13.13.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" + integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== + dependencies: + type-fest "^0.20.2" + +globby@6.1.0, globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^10.0.1: + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + +globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globjoin@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= + +globs-to-files@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/globs-to-files/-/globs-to-files-1.0.0.tgz#54490f6d1f4b9fd2de9d99445146ffb37550380d" + integrity sha512-zNZNFS6hwQ0rsbu8EKAX+1j1kZk2qglDBfxRMJYnlNxCzFVOLGpWaRjK745cSK+zDrjLQ5qIrwhkdghTiR6x7A== + dependencies: + array-uniq "~1.0.2" + asyncreduce "~0.1.4" + glob "^5.0.10" + xtend "^4.0.0" + +glsl-noise@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz#367745f3a33382c0eeec4cb54b7e99cfc1d7670b" + integrity sha1-NndF86MzgsDu7Ey1S36Zz8HXZws= + +gonzales-pe@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" + integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== + dependencies: + minimist "^1.2.5" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.2, graceful-fs@^4.2.4: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +gradient-parser@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/gradient-parser/-/gradient-parser-0.1.5.tgz#0c7e2179559e5ce7d8d71f4423af937100b2248c" + integrity sha1-DH4heVWeXOfY1x9EI6+TcQCyJIw= + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +graphql@14.6.0: + version "14.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49" + integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg== + dependencies: + iterall "^1.2.2" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handlebars@^4.0.13: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +highlight-words-core@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/highlight-words-core/-/highlight-words-core-1.2.2.tgz#1eff6d7d9f0a22f155042a00791237791b1eeaaa" + integrity sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.2.1, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hpq@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/hpq/-/hpq-1.3.0.tgz#fe73406927f6327ea66aa6055fbb130ac9a249c0" + integrity sha512-fvYTvdCFOWQupGxqkahrkA+ERBuMdzkxwtUdKrxR6rmMd4Pfl+iZ1QiQYoaZ0B/v0y59MOMnz3XFUWbT50/NWA== + +html-element-attributes@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-2.2.1.tgz#ff397c7a3d6427064b117b6f36b45be08e79db93" + integrity sha512-gGTgCeQu+g1OFExZKWQ1LwbFXxLJ6cGdCGj64ByEaxatr/EPVc23D6Gxngb37ao+SNInP/sGu8FXxRsSxMm7aQ== + +html-element-map@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.1.tgz#44b2cbcfa7be7aa4ff59779e47e51012e1c73c08" + integrity sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg== + dependencies: + array.prototype.filter "^1.0.0" + call-bind "^1.0.2" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-styles@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/html-styles/-/html-styles-1.0.0.tgz#a18061fd651f99c6b75c45c8e0549a3bc3e01a75" + integrity sha512-cDl5dcj73oI4Hy0DSUNh54CAwslNLJRCCoO+RNkVo+sBrjA/0+7E/xzvj3zH/GxbbBLGJhE0hBe1eg+0FINC6w== + +html-tag-names@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.5.tgz#f537420c16769511283f8ae1681785fbc89ee0a9" + integrity sha512-aI5tKwNTBzOZApHIynaAwecLBv8TlZTEy/P4Sj2SzzAhBrGuI8yGZ0UIXVPQzOHGS+to2mjb04iy6VWt/8+d8A== + +html-tags@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" + integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== + +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + integrity sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg== + +htmlparser2@^3.10.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-parser-js@>=0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" + integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + +humanize-duration@^3.23.1: + version "3.27.2" + resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.27.2.tgz#4b4e565bec098d22c9a54344e16156d1c649f160" + integrity sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-emit-webpack-plugin@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/ignore-emit-webpack-plugin/-/ignore-emit-webpack-plugin-2.0.6.tgz#570c30a08ee4c2ce6060f80d4bc4c5c5fec4d606" + integrity sha512-/zC18RWCC2wz4ZwnS4UoujGWzvSKy28DLjtE+jrGBOXej6YdmityhBDzE8E0NlktEqi4tgdNbydX8B6G4haHSQ== + +ignore@4.0.6, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^3.3.7: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^5.1.1, ignore@^5.1.8, ignore@^5.1.9, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +ignore@~5.1.4: + version "5.1.9" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" + integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== + +immutable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA== + dependencies: + source-map "~0.5.3" + +inquirer@^7.0.0: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +insert-module-globals@^7.0.0, insert-module-globals@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" + integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== + dependencies: + JSONStream "^1.0.3" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" + is-buffer "^1.1.0" + path-is-absolute "^1.0.1" + process "~0.11.0" + through2 "^2.0.0" + undeclared-identifiers "^1.1.2" + xtend "^4.0.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +irregular-plurals@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-3.3.0.tgz#67d0715d4361a60d9fd9ee80af3881c631a31ee2" + integrity sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-arguments@^1.0.4, is-arguments@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.0.2, is-buffer@^1.1.0, is-buffer@^1.1.4, is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@2.0.0, is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1, is-date-object@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fork-pr@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/is-fork-pr/-/is-fork-pr-2.5.0.tgz#75f9f44ae245448c84f6c1b07fa816592538da56" + integrity sha512-kca2MhWNsJSUxN/Ud1CPPa+r+XpRnUXfheB8bvgjP6kCgCMYgIL5YMlwx0k7xnyqjnNaEzkQgS14S/SzhOPYkQ== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-path-inside@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== + +is-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-regexp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" + integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= + +is-symbol@^1.0.1, is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-touch-device@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-touch-device/-/is-touch-device-1.0.1.tgz#9a2fd59f689e9a9bf6ae9a86924c4ba805a42eab" + integrity sha512-LAYzo9kMT1b2p19L/1ATGt2XcSilnzNlyvq6c0pbPRVisLbAPpLqr53tIJS00kvrTkj0HtR8U7+u8X0yR8lPSw== + +is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-word-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@^2.0.1, isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-instrument@^5.0.4: + version "5.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.1.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" + integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterall@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-circus@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-26.6.3.tgz#3cc7ef2a6a3787e5d7bfbe2c72d83262154053e7" + integrity sha512-ACrpWZGcQMpbv13XbzRzpytEJlilP/Su0JtNCi5r/xLpOUhnaIJr8leYYpLEMgPFURZISEHrnnpmB54Q/UziPw== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + stack-utils "^2.0.2" + throat "^5.0.0" + +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-dev-server@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/jest-dev-server/-/jest-dev-server-4.4.0.tgz#557113faae2877452162696aa94c1e44491ab011" + integrity sha512-STEHJ3iPSC8HbrQ3TME0ozGX2KT28lbT4XopPxUm2WimsX3fcB3YOptRh12YphQisMhfqNSNTZUmWyT3HEXS2A== + dependencies: + chalk "^3.0.0" + cwd "^0.10.0" + find-process "^1.4.3" + prompts "^2.3.0" + spawnd "^4.4.0" + tree-kill "^1.2.2" + wait-on "^3.3.0" + +jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== + dependencies: + detect-newline "^3.0.0" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^26.2.1, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== + dependencies: + "@jest/core" "^26.6.3" + import-local "^3.0.2" + jest-cli "^26.6.3" + +js-base64@^2.1.9: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@~3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdoc-type-pratt-parser@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.1.1.tgz#10fe5e409ba38de22a48b555598955a26ff0160f" + integrity sha512-uelRmpghNwPBuZScwgBG/OzodaFk5RbO5xaivBdsAY70icWfShwZ7PCMO0x1zSkOa8T1FzHThmrdoyg/0AwV5g== + +jsdoc-type-pratt-parser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.2.0.tgz#3482a3833b74a88c95a6ba7253f0c0de3b77b9f5" + integrity sha512-4STjeF14jp4bqha44nKMY1OUI6d2/g6uclHWUCZ7B4DoLzaB5bmpTkQrpqU+vSVzMD0LsKAOskcnI3I3VfIpmg== + +jsdom@^16.4.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stable-stringify@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== + dependencies: + jsonify "~0.0.0" + +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + integrity sha512-nKtD/Qxm7tWdZqJoldEC7fF0S41v0mWbeaXG3637stOWfyGxTgWTYE2wtfKmjzpvxv2MA2xzxsXOIiwUpkX6Qw== + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json2php@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/json2php/-/json2php-0.0.4.tgz#6bd85a1dda6a5dd7e91022bb24403cc1b7c2ee34" + integrity sha1-a9haHdpqXdfpECK7JEA8wbfC7jQ= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +jsonc-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" + integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + +jsonc-parser@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" + integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA== + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz#6ab1e52c71dfc0c0707008a91729a9491fe9f76c" + integrity sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw== + dependencies: + array-includes "^3.1.4" + object.assign "^4.1.2" + +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= + dependencies: + is-buffer "^1.0.2" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" + integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== + +known-css-properties@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.21.0.tgz#15fbd0bbb83447f3ce09d8af247ed47c68ede80d" + integrity sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw== + +ktx-parse@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.2.2.tgz#b037b66044855215b332cb73104590af49e47791" + integrity sha512-cFBc1jnGG2WlUf52NbDUXK2obJ+Mo9WUkBRvr6tP6CKxRMvZwDDFNV3JAS4cewETp5KyexByfWm9sm+O8AffiQ== + +ktx-parse@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.4.5.tgz#79905e22281a9d3e602b2ff522df1ee7d1813aa6" + integrity sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg== + +labeled-stream-splicer@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" + integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== + dependencies: + inherits "^2.0.1" + stream-splicer "^2.0.0" + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lerp@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/lerp/-/lerp-1.0.3.tgz#a18c8968f917896de15ccfcc28d55a6b731e776e" + integrity sha512-70Rh4rCkJDvwWiTsyZ1HmJGvnyfFah4m6iTux29XmasRiZPDBpT9Cfa4ai73+uLZxnlKruUS62jj2lb11wURiA== + +leven@3.1.0, leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" + integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== + +line-height@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/line-height/-/line-height-0.3.1.tgz#4b1205edde182872a5efa3c8f620b3187a9c54c9" + integrity sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk= + dependencies: + computed-style "~0.1.3" + +lines-and-columns@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha512-8ZmlJFVK9iCmtLz19HpSsR8HaAMWBT284VMNednLwlIMDP2hJDCIhUp0IZ2xUcZ+Ob6BM0VvCSJwzASDM45NLQ== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linguist-languages@7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/linguist-languages/-/linguist-languages-7.6.0.tgz#6e3d9aa7a98ddf5299f8115788dce8deb8a97c9d" + integrity sha512-DBZPIWjrQmb/52UlSEN8MTiwwugrAh4NBX9/DyIG8IuO8rDLYDRM+KVPbuiPVKd3ResxYtZB5AiSuc8dTzOSog== + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +lint-staged@9.4.3: + version "9.4.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.4.3.tgz#f55ad5f94f6e105294bfd6499b23142961f7b982" + integrity sha512-PejnI+rwOAmKAIO+5UuAZU9gxdej/ovSEOAY34yMfC3OS4Ac82vCBPzAWLReR9zCPOMqeVwQRaZ3bUBpAsaL2Q== + dependencies: + chalk "^2.4.2" + commander "^2.20.0" + cosmiconfig "^5.2.1" + debug "^4.1.1" + dedent "^0.7.0" + del "^5.0.0" + execa "^2.0.3" + listr "^0.14.3" + log-symbols "^3.0.0" + micromatch "^4.0.2" + normalize-path "^3.0.0" + please-upgrade-node "^3.1.1" + string-argv "^0.3.0" + stringify-object "^3.3.0" + +lint-staged@^13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" + integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== + dependencies: + cli-truncate "^3.1.0" + colorette "^2.0.17" + commander "^9.3.0" + debug "^4.3.4" + execa "^6.1.0" + lilconfig "2.0.5" + listr2 "^4.0.5" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-inspect "^1.12.2" + pidtree "^0.6.0" + string-argv "^0.3.1" + yaml "^2.1.1" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA== + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +livereload-js@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" + integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + +load-script@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-script/-/load-script-2.0.0.tgz#40821aaa59e9bbe7be2e28b6ab053e6f44330fa1" + integrity sha512-km6cyoPW4rM22JMGb+SHUKPMZVDpUaMpMAKrv8UHWllIxc/qjgMGHD91nY+5hM+/NFs310OZ2pqQeJKs7HqWPA== + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-runner@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.differencewith@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz#bafafbc918b55154e179176a00bb0aefaac854b7" + integrity sha1-uvr7yRi1UVTheRdqALsK76rIVLc= + +lodash.escape@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" + integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= + +lodash.flatten@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash.unescape@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg== + +lodash.uniqby@4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== + +lodash@4.17.21, lodash@^4.1.1, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== + dependencies: + chalk "^1.0.0" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg== + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +longest-streak@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" + integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^4.0.1, lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + +magic-string@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.23.2.tgz#204d7c3ea36c7d940209fcc54c39b9f243f13369" + integrity sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA== + dependencies: + sourcemap-codec "^1.4.1" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-promises-safe@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/make-promises-safe/-/make-promises-safe-5.1.0.tgz#dd9d311f555bcaa144f12e225b3d37785f0aa8f2" + integrity sha512-AfdZ49rtyhQR/6cqVKGoH7y4ql7XkS5HJI1lZm0/5N6CQosy1eYbBJ/qbhkKHzo17UH7M918Bysf6XB9f3kS1g== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +map-values@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-values/-/map-values-1.0.1.tgz#768b8e79c009bf2b64fee806e22a7b1c4190c990" + integrity sha1-douOecAJvytk/ugG4ip7HEGQyZA= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-escapes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + +markdown-it@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" + integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdownlint-cli@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.21.0.tgz#d792b157e9de63ce1d6b6e13d7cf83d5e552d5e8" + integrity sha512-gvnczz3W3Wgex851/cIQ/2y8GNhY+EVK8Ael8kRd8hoSQ0ps9xjhtwPwMyJPoiYbAoPxG6vSBFISiysaAbCEZg== + dependencies: + commander "~2.9.0" + deep-extend "~0.5.1" + get-stdin "~5.0.1" + glob "~7.1.2" + ignore "~5.1.4" + js-yaml "~3.13.1" + jsonc-parser "~2.2.0" + lodash.differencewith "~4.5.0" + lodash.flatten "~4.4.0" + markdownlint "~0.18.0" + markdownlint-rule-helpers "~0.6.0" + minimatch "~3.0.4" + rc "~1.2.7" + +markdownlint-rule-helpers@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.6.0.tgz#3a866a340d394d21d40777b787d3ad84489405c5" + integrity sha512-LiZVAbg9/cqkBHtLNNqHV3xuy4Y2L/KuGU6+ZXqCT9NnCdEkIoxeI5/96t+ExquBY0iHy2CVWxPH16nG1RKQVQ== + +markdownlint@^0.18.0, markdownlint@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.18.0.tgz#906ab9229da4c4be074d0b79de23a69bfa8471d3" + integrity sha512-nQAfK9Pbq0ZRoMC/abNGterEnV3kL8MZmi0WHhw8WJKoIbsm3cXGufGsxzCRvjW15cxe74KWcxRSKqwplS26Bw== + dependencies: + markdown-it "10.0.0" + +mathml-tag-names@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" + integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== + +maybe-combine-errors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/maybe-combine-errors/-/maybe-combine-errors-1.0.0.tgz#e9592832e61fc47643a92cff3c1f33e27211e5be" + integrity sha512-eefp6IduNPT6fVdwPp+1NgD0PML1NU5P6j1Mj5nz1nidX8/sWY7119WL8vTAHgqfsY74TzW0w1XPgdYEKkGZ5A== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdast-util-from-markdown@^0.8.0: + version "0.8.5" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" + integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^2.0.0" + micromark "~2.11.0" + parse-entities "^2.0.0" + unist-util-stringify-position "^2.0.0" + +mdast-util-to-markdown@^0.6.0: + version "0.6.5" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" + integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== + dependencies: + "@types/unist" "^2.0.0" + longest-streak "^2.0.0" + mdast-util-to-string "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.0.0" + zwitch "^1.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +mem@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + +memize@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/memize/-/memize-1.1.0.tgz#4a5a684ac6992a13b1299043f3e49b1af6a0b0d3" + integrity sha512-K4FcPETOMTwe7KL2LK0orMhpOmWD2wRGwWWpbZy0fyArwsyIKR8YJVz8+efBAh3BO4zPqlSICu4vsLTRRqtFAg== + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" + integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" + +meow@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" + integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize "^1.2.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-deep@^3.0.2, merge-deep@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.3.tgz#1a2b2ae926da8b2ae93a0ac15d90cd1922766003" + integrity sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA== + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-source-map@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" + integrity sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA== + dependencies: + source-map "^0.5.6" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +meshline@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/meshline/-/meshline-2.0.4.tgz#39c7bcf36b503397642f2312e6211f2a8ecf75c5" + integrity sha512-Jh6DJl/zLqA4xsKvGv5950jr2ukyXQE1wgxs8u94cImHrvL6soVIggqjP+2hVHZXGYaKnWszhtjuCbKNeQyYiw== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark@~2.11.0: + version "2.11.4" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" + integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@^1.3.9: + version "1.6.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" + integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + +minify-stream@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/minify-stream/-/minify-stream-2.1.0.tgz#2df5cceee43260f57017cb90739fbf15ca7ade04" + integrity sha512-P5xE4EQRkn7Td54VGcgfDMFx1jmKPPIXCdcMfrbXS6cNHK4dO1LXwtYFb48hHrSmZfT+jlGImvHgSZEkbpNtCw== + dependencies: + concat-stream "^2.0.0" + convert-source-map "^1.5.0" + duplexify "^4.1.1" + from2-string "^1.1.0" + terser "^4.7.0" + xtend "^4.0.1" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@~3.0.4: + version "3.0.8" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@4.1.0, minimist-options@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@3.1.6, minipass@^3.0.0, minipass@^3.1.1: + version "3.1.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" + integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp-classic@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mmd-parser@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mmd-parser/-/mmd-parser-1.0.4.tgz#87cc05782cb5974ca854f0303fc5147bc9d690e7" + integrity sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg== + +module-deps@^6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" + integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA== + dependencies: + JSONStream "^1.0.3" + browser-resolve "^2.0.0" + cached-path-relative "^1.0.2" + concat-stream "~1.6.0" + defined "^1.0.0" + detective "^5.2.0" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.4.0" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +moment-timezone@^0.5.31: + version "0.5.34" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c" + integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@>=1.6.0, moment@^2.22.1: + version "2.29.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4" + integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg== + +moo@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" + integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== + +mousetrap@^1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" + integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +mri@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +mrmime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" + integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multi-stage-sourcemap@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz#b09fc8586eaa17f81d575c4ad02e0f7a3f6b1105" + integrity sha512-umaOM+8BZByZIB/ciD3dQLzTv50rEkkGJV78ta/tIVc/J/rfGZY5y1R+fBD3oTaolx41mK8rRcyGtYbDXlzx8Q== + dependencies: + source-map "^0.1.34" + +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + +multisplice@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/multisplice/-/multisplice-1.0.0.tgz#e74cf2948dcb51a6c317fc5e22980a652f7830e9" + integrity sha512-KU5tVjIdTGsMb92JlWwEZCGrvtI1ku9G9GuNbWdQT/Ici1ztFXX0L8lWpbbC3pISVMfBNL56wdqplHvva2XSlA== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mutexify@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/mutexify/-/mutexify-1.4.0.tgz#b7f4ac0273c81824b840887c6a6e0bfab14bbe94" + integrity sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg== + dependencies: + queue-tick "^1.0.0" + +n-readlines@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/n-readlines/-/n-readlines-1.0.0.tgz#c353797f216c253fdfef7e91da4e8b17c29a91a6" + integrity sha512-ISDqGcspVu6U3VKqtJZG1uR55SmNNF9uK0EMq1IvNVVZOui6MW6VR0+pIZhqz85ORAGp+4zW+5fJ/SE7bwEibA== + +nan@^2.12.1: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nanobench@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nanobench/-/nanobench-2.1.1.tgz#c2f23fcce116d50b4998b1954ba114674c137269" + integrity sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A== + dependencies: + browser-process-hrtime "^0.1.2" + chalk "^1.1.3" + mutexify "^1.1.0" + pretty-hrtime "^1.0.2" + +nanoid@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" + integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +nanoresource-collection@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/nanoresource-collection/-/nanoresource-collection-1.0.0.tgz#df34cc1b040839d7309d63d95c8b7620e75be4bc" + integrity sha512-S43CyBqLVil3JkG+F7G3SnezPJxdukhirc8yirg931hPWsq+sChwNjaCXkSmeCzIJL6smVvFMyYISmEcLDkwTw== + dependencies: + catering "^2.0.0" + maybe-combine-errors "^1.0.0" + nanoresource "^1.3.0" + +nanoresource@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/nanoresource/-/nanoresource-1.3.0.tgz#823945d9667ab3e81a8b2591ab8d734552878cd0" + integrity sha512-OI5dswqipmlYfyL3k/YMm7mbERlh4Bd1KuKdMHpeoVD1iVxqxaTMKleB4qaA2mbQZ6/zMNSxCXv9M9P/YbqTuQ== + dependencies: + inherits "^2.0.4" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +nearley@^2.7.10: + version "2.20.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" + integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== + dependencies: + commander "^2.19.0" + moo "^0.5.0" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-fetch@^2.6.1: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-releases@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" + integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-selector@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" + integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= + +npm-package-json-lint@^5.0.0: + version "5.4.2" + resolved "https://registry.yarnpkg.com/npm-package-json-lint/-/npm-package-json-lint-5.4.2.tgz#f2565b1c71ce7dd8a5a14b29da0d54bd6509aad0" + integrity sha512-DH1MSvYvm+cuQFXcPehIIu/WiYzMYs7BOxlhOOFHaH2SNrA+P2uDtTEe5LOG90Ci7PTwgF/dCmSKM2HWTgWXNA== + dependencies: + ajv "^6.12.6" + ajv-errors "^1.0.1" + chalk "^4.1.2" + cosmiconfig "^7.0.1" + debug "^4.3.2" + globby "^11.0.4" + ignore "^5.1.9" + is-plain-obj "^3.0.0" + jsonc-parser "^3.0.0" + log-symbols "^4.1.0" + meow "^6.1.1" + plur "^4.0.0" + semver "^7.3.5" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" + integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== + dependencies: + path-key "^3.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nth-check@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-filter@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-filter/-/object-filter-1.0.2.tgz#af0b797ffebeaf8a52c6637cedbe8816cfec1bc8" + integrity sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g= + +object-inspect@^1.12.0, object-inspect@^1.7.0, object-inspect@^1.9.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== + +object-inspect@^1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.0.1, object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.4, object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.assign@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" + integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.fromentries@^2.0.0, object.fromentries@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" + integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.hasown@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" + integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.hasown@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" + integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== + dependencies: + define-properties "^1.1.4" + es-abstract "^1.19.5" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.0.4, object.values@^1.1.0, object.values@^1.1.1, object.values@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +on-stream-close@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/on-stream-close/-/on-stream-close-1.0.0.tgz#4f833fe2e8e240168e555860a3dc003e45ef3c84" + integrity sha512-0MkKOAgt9r3XCqYRTIcnxks6fQ3Jd4xPognM5pUED1VLnpyLHsTWXW7LW7V/4deOKfvn4bnn3ahOFcQ2AOgJ/g== + dependencies: + catering "^2.0.0" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +open@^7.1.0: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +opentype.js@^1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77" + integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw== + dependencies: + string.prototype.codepointat "^0.2.1" + tiny-inflate "^1.0.3" + +optionator@^0.8.1, optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +os-browserify@^0.3.0, os-browserify@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +outpipe@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/outpipe/-/outpipe-1.1.1.tgz#50cf8616365e87e031e29a5ec9339a3da4725fa2" + integrity sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA== + dependencies: + shell-quote "^1.4.2" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + integrity sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg== + dependencies: + path-platform "~0.11.15" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-entities@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse-srcset@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" + integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== + +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@6.0.1, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1, path-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-browserify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.5, path-parse@^1.0.6, path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-conf@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" + integrity sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ== + dependencies: + find-up "^3.0.0" + load-json-file "^5.2.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +please-upgrade-node@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +plur@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/plur/-/plur-4.0.0.tgz#729aedb08f452645fe8c58ef115bf16b0a73ef84" + integrity sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg== + dependencies: + irregular-plurals "^3.2.0" + +portfinder@^1.0.17: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-html@^0.36.0: + version "0.36.0" + resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204" + integrity sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw== + dependencies: + htmlparser2 "^3.10.0" + +postcss-less@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-2.0.0.tgz#5d190b8e057ca446d60fe2e2587ad791c9029fb8" + integrity sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ== + dependencies: + postcss "^5.2.16" + +postcss-less@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" + integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA== + dependencies: + postcss "^7.0.14" + +postcss-loader@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" + integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + semver "^7.3.4" + +postcss-media-query-parser@0.2.3, postcss-media-query-parser@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-resolve-nested-selector@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= + +postcss-safe-parser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" + integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== + dependencies: + postcss "^7.0.26" + +postcss-sass@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz#91f0f3447b45ce373227a98b61f8d8f0785285a3" + integrity sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg== + dependencies: + gonzales-pe "^4.3.0" + postcss "^7.0.21" + +postcss-scss@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" + integrity sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug== + dependencies: + postcss "^7.0.0" + +postcss-scss@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz#ec3a75fa29a55e016b90bf3269026c53c1d2b383" + integrity sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA== + dependencies: + postcss "^7.0.6" + +postcss-selector-parser@2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-syntax@^0.36.2: + version "0.36.2" + resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c" + integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w== + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-values-parser@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz#5d9fa63e2bcb0179ce48f3235303765eb89f3047" + integrity sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^8.2.15: + version "8.4.12" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" + integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== + dependencies: + nanoid "^3.3.1" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +potpack@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.2.tgz#23b99e64eb74f5741ffe7656b5b5c4ddce8dfc14" + integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier-standard@^16.4.1: + version "16.4.1" + resolved "https://registry.yarnpkg.com/prettier-standard/-/prettier-standard-16.4.1.tgz#964e7e3f3029427ab8e01bdffb72dea9a87f62c8" + integrity sha512-IW3Sct4GOdqc1s4+1HZjH2HegzLZQ6mDMl2xz6i6KHCac7kCM+obLbvm2e0zp8PytKkLQCdOpj0cWWa48Ruetw== + dependencies: + chalk "^2.4.2" + diff "^4.0.2" + eslint "^6.8.0" + execa "^2.0.4" + find-up "^4.1.0" + get-stdin "^7.0.0" + globby "^6.1.0" + ignore "^3.3.7" + lint-staged "9.4.3" + mri "^1.1.5" + multimatch "^3.0.0" + prettierx "0.11.3" + +prettier@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== + +"prettier@npm:wp-prettier@2.2.1-beta-1": + version "2.2.1-beta-1" + resolved "https://registry.yarnpkg.com/wp-prettier/-/wp-prettier-2.2.1-beta-1.tgz#8afb761f83426bde870f692edc49adbd3e265118" + integrity sha512-+JHkqs9LC/JPp51yy1hzs3lQ7qeuWCwOcSzpQNeeY/G7oSpnF61vxt7hRh87zNRTr6ob2ndy0W8rVzhgrcA+Gw== + +prettierx@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/prettierx/-/prettierx-0.11.3.tgz#379d1aa7df4dbd049c1b34a1990d903efa4e6130" + integrity sha512-Xf04LEfD3ITo26i5U/zR++hwqKPG3feR06rrjB0t2o+QFv8ZidFp4o7nPqPGLfE4UwHJgd0qwnZKwm0MsUQHUA== + dependencies: + "@angular/compiler" "8.2.14" + "@babel/code-frame" "7.8.3" + "@babel/parser" "7.9.4" + "@glimmer/syntax" "0.41.4" + "@iarna/toml" "2.2.3" + "@typescript-eslint/typescript-estree" "2.6.1" + angular-estree-parser "1.3.1" + angular-html-parser "1.4.0" + camelcase "5.3.1" + chalk "3.0.0" + cjk-regex "2.0.0" + cosmiconfig "5.2.1" + dashify "2.0.0" + dedent "0.7.0" + diff "4.0.2" + editorconfig "0.15.3" + editorconfig-to-prettier "0.1.1" + escape-string-regexp "2.0.0" + esutils "2.0.3" + find-parent-dir "0.3.0" + find-project-root "1.1.1" + flow-parser "0.111.3" + get-stream "4.1.0" + globby "6.1.0" + graphql "14.6.0" + html-element-attributes "2.2.1" + html-styles "1.0.0" + html-tag-names "1.1.5" + ignore "4.0.6" + is-ci "2.0.0" + jest-docblock "25.3.0" + json-stable-stringify "1.0.1" + leven "3.1.0" + lines-and-columns "1.1.6" + linguist-languages "7.6.0" + lodash.uniqby "4.7.0" + mem "5.1.1" + minimatch "3.0.4" + minimist "1.2.5" + n-readlines "1.0.0" + normalize-path "3.0.0" + parse-srcset "1.0.2" + postcss-less "2.0.0" + postcss-media-query-parser "0.2.3" + postcss-scss "2.0.0" + postcss-selector-parser "2.2.3" + postcss-values-parser "1.5.0" + regexp-util "1.2.2" + remark-math "1.0.6" + remark-parse "5.0.0" + resolve "1.15.1" + semver "6.3.0" + string-width "4.2.0" + unicode-regex "3.0.0" + unified "8.4.2" + vnopts "1.0.2" + yaml "1.8.3" + yaml-unist-parser "1.1.1" + +pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +pretty-format@^27.0.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-hrtime@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10, process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0, progress@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +prompts@^2.0.1, prompts@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types-exact@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" + integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA== + dependencies: + has "^1.0.3" + object.assign "^4.1.0" + reflect.ownkeys "^0.2.0" + +prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.0, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.28, psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4, punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +puppeteer-core@^9.0.0: + version "9.1.1" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-9.1.1.tgz#0c189c3275967d65c39270e6b146e559baca3d47" + integrity sha512-zbedbitVIGhmgz0nt7eIdLsnaoVZSlNJfBivqm2w67T8LR2bU1dvnruDZ8nQO0zn++Iet7zHbAOdnuS5+H2E7A== + dependencies: + debug "^4.1.0" + devtools-protocol "0.0.869402" + extract-zip "^2.0.0" + https-proxy-agent "^5.0.0" + node-fetch "^2.6.1" + pkg-dir "^4.2.0" + progress "^2.0.1" + proxy-from-env "^1.1.0" + rimraf "^3.0.2" + tar-fs "^2.0.0" + unbzip2-stream "^1.3.3" + ws "^7.2.3" + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.10.3, qs@^6.4.0: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +querystring-es3@^0.2.0, querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +queue-microtask@^1.2.2, queue-microtask@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue-tick@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.0.tgz#011104793a3309ae86bfeddd54e251dc94a36725" + integrity sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +r3f-perf@4.9.1: + version "4.9.1" + resolved "https://registry.yarnpkg.com/r3f-perf/-/r3f-perf-4.9.1.tgz#f9b0e1e076871e8c54ce2ecf8e7a66c7d4923478" + integrity sha512-IGOrpxIjNhdxV46vqmET4X+C1pIuEk3fPpVHafoEknm1+jiysKLxGOtXGSNlmD3plyi9JRx/cC84BHyJ0Czwkw== + dependencies: + "@stitches/react" "^1.1.0" + candygraph "0.3.1" + lerp "^1.0.3" + rafz "^0.1.14" + react-icons "^4.2.0" + three "*" + three-stdlib "^2.4.0" + zustand "^3.5.10" + +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +rafz@^0.1.14: + version "0.1.14" + resolved "https://registry.yarnpkg.com/rafz/-/rafz-0.1.14.tgz#164f01cf7cc6094e08467247ef351ef5c8d278fe" + integrity sha512-YiQkedSt1urYtYbvHhTQR3l67M8SZbUvga5eJFM/v4vx/GmDdtXlE2hjJIyRjhhO/PjcdGC+CXCYOUA4onit8w== + +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= + +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + +random-string@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/random-string/-/random-string-0.2.0.tgz#a46e4375352beda9a0d7b0d19ed6d321ecd1d82d" + integrity sha512-isA91IquV3ZrFbvwkAtExP8aGL+csx3KGEsEJrvCidzOHioPl5B5g7WyJlk0lMkEz5/i1PqrWTvcdtJHPtrp1g== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@~1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" + integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= + dependencies: + bytes "1" + string_decoder "0.10" + +rc@~1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +re-resizable@^6.4.0: + version "6.9.6" + resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.9.6.tgz#b95d37e3821481b56ddfb1e12862940a791e827d" + integrity sha512-0xYKS5+Z0zk+vICQlcZW+g54CcJTTmHluA7JUUgvERDxnKAnytylcyPsA+BSFi759s5hPlHmBRegFrwXs2FuBQ== + dependencies: + fast-memoize "^2.5.1" + +re-resizable@^6.9.9: + version "6.9.9" + resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-6.9.9.tgz#99e8b31c67a62115dc9c5394b7e55892265be216" + integrity sha512-l+MBlKZffv/SicxDySKEEh42hR6m5bAHfNu3Tvxks2c4Ah+ldnWjfnVRwxo/nxF27SsUsxDS0raAzFuJNKABXA== + +react-addons-shallow-compare@^15.6.2: + version "15.6.3" + resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.3.tgz#28a94b0dfee71530852c66a69053d59a1baf04cb" + integrity sha512-EDJbgKTtGRLhr3wiGDXK/+AEJ59yqGS+tKE6mue0aNXT6ZMR7VJbbzIiT6akotmHg1BLj46ElJSb+NBMp80XBg== + dependencies: + object-assign "^4.1.0" + +react-autosize-textarea@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/react-autosize-textarea/-/react-autosize-textarea-7.1.0.tgz#902c84fc395a689ca3a484dfb6bc2be9ba3694d1" + integrity sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g== + dependencies: + autosize "^4.0.2" + line-height "^0.3.1" + prop-types "^15.5.6" + +react-composer@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/react-composer/-/react-composer-5.0.2.tgz#131cb53326abb07363795ad3abb0dc4a3005ee05" + integrity sha512-6E2UNjUF0e7KRY+/faU2Hv7D9zagXnYdTfSSCGdYfuds6mRnVpN19vrbHXShaQzJNVXL4VOUb8qq6DvClDIG1g== + dependencies: + prop-types "^15.6.0" + +react-dates@^17.1.1: + version "17.2.0" + resolved "https://registry.yarnpkg.com/react-dates/-/react-dates-17.2.0.tgz#d8cfe29ceecb3fbe37abbaa385683504cc53cdf6" + integrity sha512-RDlerU8DdRRrlYS0MQ7Z9igPWABGLDwz6+ykBNff67RM3Sset2TDqeuOr+R5o00Ggn5U47GeLsGcSDxlZd9cHw== + dependencies: + airbnb-prop-types "^2.10.0" + consolidated-events "^1.1.1 || ^2.0.0" + is-touch-device "^1.0.1" + lodash "^4.1.1" + object.assign "^4.1.0" + object.values "^1.0.4" + prop-types "^15.6.1" + react-addons-shallow-compare "^15.6.2" + react-moment-proptypes "^1.6.0" + react-outside-click-handler "^1.2.0" + react-portal "^4.1.5" + react-with-styles "^3.2.0" + react-with-styles-interface-css "^4.0.2" + +react-dom@^17.0.1, react-dom@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-icons@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.4.0.tgz#a13a8a20c254854e1ec9aecef28a95cdf24ef703" + integrity sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg== + +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +"react-is@^16.12.0 || ^17.0.0 || ^18.0.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.0.0.tgz#026f6c4a27dbe33bf4a35655b9e1327c4e55e3f5" + integrity sha512-yUcBYdBBbo3QiPsgYDcfQcIkGZHfxOaoE6HLSnr1sPzMhdyxusbfKOSUbSd/ocGi32dxcj366PsTj+5oggeKKw== + +react-is@^17.0.0, react-is@^17.0.1, react-is@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-merge-refs@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" + integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ== + +react-moment-proptypes@^1.6.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/react-moment-proptypes/-/react-moment-proptypes-1.8.1.tgz#7ba4076147f6b5998f0d4f51d302d6d8c62049fd" + integrity sha512-Er940DxWoObfIqPrZNfwXKugjxMIuk1LAuEzn23gytzV6hKS/sw108wibi9QubfMN4h+nrlje8eUCSbQRJo2fQ== + dependencies: + moment ">=1.6.0" + +react-outside-click-handler@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/react-outside-click-handler/-/react-outside-click-handler-1.3.0.tgz#3831d541ac059deecd38ec5423f81e80ad60e115" + integrity sha512-Te/7zFU0oHpAnctl//pP3hEAeobfeHMyygHB8MnjP6sX5OR8KHT1G3jmLsV3U9RnIYo+Yn+peJYWu+D5tUS8qQ== + dependencies: + airbnb-prop-types "^2.15.0" + consolidated-events "^1.1.1 || ^2.0.0" + document.contains "^1.0.1" + object.values "^1.1.0" + prop-types "^15.7.2" + +react-portal@^4.1.5: + version "4.2.2" + resolved "https://registry.yarnpkg.com/react-portal/-/react-portal-4.2.2.tgz#bff1e024147d6041ba8c530ffc99d4c8248f49fa" + integrity sha512-vS18idTmevQxyQpnde0Td6ZcUlv+pD8GTyR42n3CHUQq9OHi1C4jDE4ZWEbEsrbrLRhSECYiao58cvocwMtP7Q== + dependencies: + prop-types "^15.5.8" + +react-reconciler@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.27.0.tgz#360124fdf2d76447c7491ee5f0e04503ed9acf5b" + integrity sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.21.0" + +react-resize-aware@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/react-resize-aware/-/react-resize-aware-3.1.1.tgz#a428fd53f34dec3a52b68c923a6ebe51a192c63c" + integrity sha512-M8IyVLBN8D6tEUss+bxQlWte3ZYtNEGhg7rBxtCVG8yEBjUlZwUo5EFLq6tnvTZXcgAbCLjsQn+NCoTJKumRYg== + +react-shallow-renderer@^16.13.1: + version "16.15.0" + resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" + integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== + dependencies: + object-assign "^4.1.1" + react-is "^16.12.0 || ^17.0.0 || ^18.0.0" + +react-spring@^8.0.19, react-spring@^8.0.20: + version "8.0.27" + resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-8.0.27.tgz#97d4dee677f41e0b2adcb696f3839680a3aa356a" + integrity sha512-nDpWBe3ZVezukNRandTeLSPcwwTMjNVu1IDq9qA/AMiUqHuRN4BeSWvKr3eIxxg1vtiYiOLy4FqdfCP5IoP77g== + dependencies: + "@babel/runtime" "^7.3.1" + prop-types "^15.5.8" + +react-test-renderer@^17.0.0: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c" + integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ== + dependencies: + object-assign "^4.1.1" + react-is "^17.0.2" + react-shallow-renderer "^16.13.1" + scheduler "^0.20.2" + +react-use-gesture@^9.0.0: + version "9.1.3" + resolved "https://registry.yarnpkg.com/react-use-gesture/-/react-use-gesture-9.1.3.tgz#92bd143e4f58e69bd424514a5bfccba2a1d62ec0" + integrity sha512-CdqA2SmS/fj3kkS2W8ZU8wjTbVBAIwDWaRprX7OKaj7HlGwBasGEFggmk5qNklknqk9zK/h8D355bEJFTpqEMg== + +react-use-measure@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba" + integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig== + dependencies: + debounce "^1.2.1" + +react-with-direction@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/react-with-direction/-/react-with-direction-1.4.0.tgz#ebdf64d685d0650ce966e872e6431ad5a2485444" + integrity sha512-ybHNPiAmaJpoWwugwqry9Hd1Irl2hnNXlo/2SXQBwbLn/jGMauMS2y9jw+ydyX5V9ICryCqObNSthNt5R94xpg== + dependencies: + airbnb-prop-types "^2.16.0" + brcast "^2.0.2" + deepmerge "^1.5.2" + direction "^1.0.4" + hoist-non-react-statics "^3.3.2" + object.assign "^4.1.2" + object.values "^1.1.5" + prop-types "^15.7.2" + +react-with-styles-interface-css@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/react-with-styles-interface-css/-/react-with-styles-interface-css-4.0.3.tgz#c4a61277b2b8e4126b2cd25eca3ac4097bd2af09" + integrity sha512-wE43PIyjal2dexxyyx4Lhbcb+E42amoYPnkunRZkb9WTA+Z+9LagbyxwsI352NqMdFmghR0opg29dzDO4/YXbw== + dependencies: + array.prototype.flat "^1.2.1" + global-cache "^1.2.1" + +react-with-styles@^3.2.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/react-with-styles/-/react-with-styles-3.2.3.tgz#b058584065bb36c0d80ccc911725492692db8a61" + integrity sha512-MTI1UOvMHABRLj5M4WpODfwnveHaip6X7QUMI2x6zovinJiBXxzhA9AJP7MZNaKqg1JRFtHPXZdroUC8KcXwlQ== + dependencies: + hoist-non-react-statics "^3.2.1" + object.assign "^4.1.0" + prop-types "^15.6.2" + react-with-direction "^1.3.0" + +react@^17.0.1, react@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + integrity sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w== + dependencies: + readable-stream "^2.0.2" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reakit-system@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/reakit-system/-/reakit-system-0.15.2.tgz#a485fab84b3942acbed6212c3b56a6ef8611c457" + integrity sha512-TvRthEz0DmD0rcJkGamMYx+bATwnGNWJpe/lc8UV2Js8nnPvkaxrHk5fX9cVASFrWbaIyegZHCWUBfxr30bmmA== + dependencies: + reakit-utils "^0.15.2" + +reakit-utils@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/reakit-utils/-/reakit-utils-0.15.2.tgz#b4d5836e534576bfd175171541d43182ad97f2d2" + integrity sha512-i/RYkq+W6hvfFmXw5QW7zvfJJT/K8a4qZ0hjA79T61JAFPGt23DsfxwyBbyK91GZrJ9HMrXFVXWMovsKBc1qEQ== + +reakit-warning@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/reakit-warning/-/reakit-warning-0.6.2.tgz#9c346ae483eb1f284f2088653f90cabd26dbee56" + integrity sha512-z/3fvuc46DJyD3nJAUOto6inz2EbSQTjvI/KBQDqxwB0y02HDyeP8IWOJxvkuAUGkWpeSx+H3QWQFSNiPcHtmw== + dependencies: + reakit-utils "^0.15.2" + +reakit@^1.3.8: + version "1.3.11" + resolved "https://registry.yarnpkg.com/reakit/-/reakit-1.3.11.tgz#c15360ac43e94fbe4291d233af3ac5040428252e" + integrity sha512-mYxw2z0fsJNOQKAEn5FJCPTU3rcrY33YZ/HzoWqZX0G7FwySp1wkCYW79WhuYMNIUFQ8s3Baob1RtsEywmZSig== + dependencies: + "@popperjs/core" "^2.5.4" + body-scroll-lock "^3.1.5" + reakit-system "^0.15.2" + reakit-utils "^0.15.2" + reakit-warning "^0.6.2" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redux-multi@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/redux-multi/-/redux-multi-0.1.12.tgz#28e1fe5e49672cbc5bd8a07f0b2aeaf0ef8355c2" + integrity sha1-KOH+XklnLLxb2KB/Cyrq8O+DVcI= + +redux@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104" + integrity sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw== + dependencies: + "@babel/runtime" "^7.9.2" + +reflect.ownkeys@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" + integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= + +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp-to-ast@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" + integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== + +regexp-util@1.2.2, regexp-util@^1.2.0, regexp-util@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/regexp-util/-/regexp-util-1.2.2.tgz#5cf599134921eb0d776e41d41e9c0da33f0fa2fc" + integrity sha512-5/rl2UD18oAlLQEIuKBeiSIOp1hb5wCXcakl5yvHxlY1wyWI4D5cUKKzCibBeu741PA9JKvZhMqbkDQqPusX3w== + dependencies: + tslib "^1.9.0" + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0, regexpp@^3.1.0, regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +regextras@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.8.0.tgz#ec0f99853d4912839321172f608b544814b02217" + integrity sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ== + +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== + dependencies: + jsesc "~0.5.0" + +regl@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/regl/-/regl-1.7.0.tgz#0d185431044a356bf80e9b775b11b935ef2746d3" + integrity sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w== + +remark-math@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-1.0.6.tgz#49eb3dd15d298734c9ae21673115389793af4d1b" + integrity sha512-I43wU/QOQpXvVFXKjA4FHp5xptK65+5F6yolm8+69/JV0EqSOB64wURUZ3JK50JtnTL8FvwLiH2PZ+fvsBxviA== + dependencies: + trim-trailing-lines "^1.1.0" + +remark-parse@5.0.0, remark-parse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" + integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== + dependencies: + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^1.1.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^1.0.0" + vfile-location "^2.0.0" + xtend "^4.0.1" + +remark-parse@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" + integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== + dependencies: + mdast-util-from-markdown "^0.8.0" + +remark-stringify@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" + integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg== + dependencies: + mdast-util-to-markdown "^0.6.0" + +remark@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz#d15d9bf71a402f40287ebe36067b66d54868e425" + integrity sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA== + dependencies: + remark-parse "^9.0.0" + remark-stringify "^9.0.0" + unified "^9.1.0" + +rememo@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rememo/-/rememo-3.0.0.tgz#06e8e76e108865cc1e9b73329db49f844eaf8392" + integrity sha512-eWtut/7pqMRnSccbexb647iPjN7ir6Tmf4RG92ZVlykFEkHqGYy9tWnpHH3I+FS+WQ6lQ1i1iDgarYzGKgTcRQ== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.0.0, repeat-string@^1.5.4, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requireindex@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-bin@^0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/resolve-bin/-/resolve-bin-0.4.3.tgz#7edf1026d78ec684d69e5a5dbbb321ffdce6938e" + integrity sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw== + dependencies: + find-parent-dir "~0.3.0" + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.15.1: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.1.4, resolve@^1.10.1, resolve@^1.17.0, resolve@^1.4.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +resumer@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== + dependencies: + through "~2.3.4" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rst-selector-parser@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" + integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE= + dependencies: + lodash.flattendeep "^4.4.0" + nearley "^2.7.10" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel-settled@^1.0.0, run-parallel-settled@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/run-parallel-settled/-/run-parallel-settled-1.0.1.tgz#68fa9dc286cd21042ef5d6a0b721890fa8db5112" + integrity sha512-YHN5KR7pjtjc1Jejcb02SGrZslYLOJtzdNhBq1gUze/llv3lJ3pgLmfLBM4cbpi+rNv7Yn9AcyD8rtPI2iRmvA== + dependencies: + maybe-combine-errors "^1.0.0" + +run-parallel@^1.1.4, run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rungen@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/rungen/-/rungen-0.3.2.tgz#400c09ebe914e7b17e0b6ef3263400fc2abc7cb3" + integrity sha1-QAwJ6+kU57F+C27zJjQA/Cq8fLM= + +runnel@~0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/runnel/-/runnel-0.5.3.tgz#f9362b165a05fc6f5e46e458f77a1f7ecdc0daec" + integrity sha512-XAVCMr+hCRGKA4AJdNit1aQC0EKCuCZnlxqfeh9u2CbSPSPyLSI/BfavMfoC/WUd6HyaRBWW1usNsVAqWN9hgw== + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= + +rxjs@^6.3.3, rxjs@^6.6.0: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.5.5: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== + dependencies: + tslib "^2.1.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-json-parse@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" + integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sass-loader@^10.1.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.2.1.tgz#17e51df313f1a7a203889ce8ff91be362651276e" + integrity sha512-RRvWl+3K2LSMezIsd008ErK4rk6CulIMSwrcc2aZvjymUgKo/vjXGp1rSWmfTUX7bblEOz8tst4wBwWtCGBqKA== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + +sass@^1.26.11: + version "1.50.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.0.tgz#3e407e2ebc53b12f1e35ce45efb226ea6063c7c8" + integrity sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +scheduler@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820" + integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5, schema-utils@^2.6.6: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +scope-analyzer@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.1.2.tgz#b958162feb59823c2835c7b0229187a97c77e9cd" + integrity sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ== + dependencies: + array-from "^2.1.1" + dash-ast "^2.0.1" + es6-map "^0.1.5" + es6-set "^0.1.5" + es6-symbol "^3.1.1" + estree-is-function "^1.0.0" + get-assigned-identifiers "^1.1.0" + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@6.3.0, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^7.0.0, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +server-destroy@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" + integrity sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ== + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shasum-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" + integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== + dependencies: + fast-safe-stringify "^2.0.7" + +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + integrity sha512-UTzHm/+AzKfO9RgPgRpDIuMSNie1ubXRaljjlhFMNGYoG7z+rm9AHLPMf70R7887xboDH9Q+5YQbWKObFHEAtw== + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.4.2, shell-quote@^1.6.1, shell-quote@^1.7.0: + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +showdown@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.9.1.tgz#134e148e75cd4623e09c21b0511977d79b5ad0ef" + integrity sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA== + dependencies: + yargs "^14.2" + +side-channel@^1.0.3, side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +sigmund@^1.0.1, sigmund@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-html-tokenizer@^0.5.7: + version "0.5.11" + resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz#4c5186083c164ba22a7b477b7687ac056ad6b1d9" + integrity sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og== + +sirv@^1.0.7: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-list-map@^2.0.0, source-list-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-loader@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz#c18b0dc6e23bf66f6792437557c569a11e072271" + integrity sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ== + dependencies: + async "^2.5.0" + loader-utils "^1.1.0" + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.6, source-map-support@~0.5.10, source-map-support@~0.5.12: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.1.34: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ== + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.1: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spawnd@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/spawnd/-/spawnd-4.4.0.tgz#bb52c5b34a22e3225ae1d3acb873b2cd58af0886" + integrity sha512-jLPOfB6QOEgMOQY15Z6+lwZEhH3F5ncXxIaZ7WHPIapwNNLyjrs61okj3VJ3K6tmP5TZ6cO0VAu9rEY4MD4YQg== + dependencies: + exit "^0.1.2" + signal-exit "^3.0.2" + tree-kill "^1.2.2" + wait-port "^0.2.7" + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + +specificity@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" + integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +standard-engine@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-15.0.0.tgz#e37ca2e1a589ef85431043a3e87cb9ce95a4ca4e" + integrity sha512-4xwUhJNo1g/L2cleysUqUv7/btn7GEbYJvmgKrQ2vd/8pkTmN8cpqAZg+BT8Z1hNeEH787iWUdOpL8fmApLtxA== + dependencies: + get-stdin "^8.0.0" + minimist "^1.2.6" + pkg-conf "^3.1.0" + xdg-basedir "^4.0.0" + +standard@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/standard/-/standard-17.0.0.tgz#85718ecd04dc4133908434660788708cca855aa1" + integrity sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA== + dependencies: + eslint "^8.13.0" + eslint-config-standard "17.0.0" + eslint-config-standard-jsx "^11.0.0" + eslint-plugin-import "^2.26.0" + eslint-plugin-n "^15.1.0" + eslint-plugin-promise "^6.0.0" + eslint-plugin-react "^7.28.0" + standard-engine "^15.0.0" + +state-toggle@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stats.js@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d" + integrity sha1-scPcRtlEmLV4t/05hbgaznExzH0= + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stream-browserify@^2.0.0, stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-combiner@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" + integrity sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ== + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-http@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" + integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +stream-splicer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" + integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +string-argv@^0.3.0, string-argv@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= + +string-width@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.codepointat@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + +string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" + integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.4.1" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.5.tgz#a587bcc8bfad8cb9829a577f5de30dd170c1682c" + integrity sha512-Lnh17webJVsD6ECeovpVN17RlAKjmz4rF9S+8Y45CkMc/ufVpTkU3vZIyIC7sllQ1FCvObZnnCdNs/HXTUOTlg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +string.prototype.trim@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz#824960787db37a9e24711802ed0c1d1c0254f83e" + integrity sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string_decoder@0.10: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +strip-outer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +style-search@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" + integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= + +stylelint-config-recommended-scss@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-4.3.0.tgz#717dc253b4cab246da654cee208e499c5c797ae4" + integrity sha512-/noGjXlO8pJTr/Z3qGMoaRFK8n1BFfOqmAbX1RjTIcl4Yalr+LUb1zb9iQ7pRx1GsEBXOAm4g2z5/jou/pfMPg== + dependencies: + stylelint-config-recommended "^5.0.0" + +stylelint-config-recommended@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz#e0e547434016c5539fe2650afd58049a2fd1d657" + integrity sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ== + +stylelint-config-recommended@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz#fb5653f495a60b4938f2ad3e77712d9e1039ae78" + integrity sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA== + +stylelint-scss@^3.17.2: + version "3.21.0" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.21.0.tgz#9f50898691b16b1c1ca3945837381d98c5b22331" + integrity sha512-CMI2wSHL+XVlNExpauy/+DbUcB/oUZLARDtMIXkpV/5yd8nthzylYd1cdHeDMJVBXeYHldsnebUX6MoV5zPW4A== + dependencies: + lodash "^4.17.15" + postcss-media-query-parser "^0.2.3" + postcss-resolve-nested-selector "^0.1.1" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +stylelint@^13.8.0: + version "13.13.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.13.1.tgz#fca9c9f5de7990ab26a00f167b8978f083a18f3c" + integrity sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ== + dependencies: + "@stylelint/postcss-css-in-js" "^0.37.2" + "@stylelint/postcss-markdown" "^0.36.2" + autoprefixer "^9.8.6" + balanced-match "^2.0.0" + chalk "^4.1.1" + cosmiconfig "^7.0.0" + debug "^4.3.1" + execall "^2.0.0" + fast-glob "^3.2.5" + fastest-levenshtein "^1.0.12" + file-entry-cache "^6.0.1" + get-stdin "^8.0.0" + global-modules "^2.0.0" + globby "^11.0.3" + globjoin "^0.1.4" + html-tags "^3.1.0" + ignore "^5.1.8" + import-lazy "^4.0.0" + imurmurhash "^0.1.4" + known-css-properties "^0.21.0" + lodash "^4.17.21" + log-symbols "^4.1.0" + mathml-tag-names "^2.1.3" + meow "^9.0.0" + micromatch "^4.0.4" + normalize-selector "^0.2.0" + postcss "^7.0.35" + postcss-html "^0.36.0" + postcss-less "^3.1.4" + postcss-media-query-parser "^0.2.3" + postcss-resolve-nested-selector "^0.1.1" + postcss-safe-parser "^4.0.2" + postcss-sass "^0.4.4" + postcss-scss "^2.1.1" + postcss-selector-parser "^6.0.5" + postcss-syntax "^0.36.2" + postcss-value-parser "^4.1.0" + resolve-from "^5.0.0" + slash "^3.0.0" + specificity "^0.4.1" + string-width "^4.2.2" + strip-ansi "^6.0.0" + style-search "^0.1.0" + sugarss "^2.0.0" + svg-tags "^1.0.0" + table "^6.6.0" + v8-compile-cache "^2.3.0" + write-file-atomic "^3.0.3" + +stylis@4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" + integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg== + dependencies: + minimist "^1.1.0" + +sugarss@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" + integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ== + dependencies: + postcss "^7.0.2" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +suspend-react@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.0.8.tgz#b0740c1386b4eb652f17affe4339915ee268bd31" + integrity sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg== + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + +svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== + dependencies: + acorn-node "^1.2.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +table@^6.0.9, table@^6.6.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tannin@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tannin/-/tannin-1.2.0.tgz#1da6fe65280dca4c3d84efb075b077b1b94362a6" + integrity sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA== + dependencies: + "@tannin/plural-forms" "^1.1.0" + +tap-completed@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tap-completed/-/tap-completed-1.0.1.tgz#c7497e80e0b284862471b6a7d633847a9873b55f" + integrity sha512-ro7dZ/LkQQFSNnyClAOiLo4LM7qhIBv6BFwt19N/J2q5Xf00AfBrQZYNF+6q3f1XzLQDeyZ07QfE6ooob0en5Q== + dependencies: + minipass "3.1.6" + tap-parser "^10.1.0" + +tap-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-10.1.0.tgz#7b1aac40dbcaa4716c0b58952686eae65d2b74ad" + integrity sha512-FujQeciDaOiOvaIVGS1Rpb0v4R6XkOjvWCWowlz5oKuhPkEJ8U6pxgqt38xuzYhPt8dWEnfHn2jqpZdJEkW7pA== + dependencies: + events-to-array "^1.0.1" + minipass "^3.0.0" + tap-yaml "^1.0.0" + +tap-yaml@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tap-yaml/-/tap-yaml-1.0.0.tgz#4e31443a5489e05ca8bbb3e36cef71b5dec69635" + integrity sha512-Rxbx4EnrWkYk0/ztcm5u3/VznbyFJpyXO12dDBHKWiDVxy7O2Qw6MRrwO5H6Ww0U5YhRY/4C/VzWmFPhBQc4qQ== + dependencies: + yaml "^1.5.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tape@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.0.tgz#588af7292e4a91e49ce5eba344d632d412317b9b" + integrity sha512-LyM4uqbiTAqDgsHTY0r1LH66yE24P3SZaz5TL3mPUds0XCTFl/0AMUBrjgBjUclvbPTFB4IalXg0wFfbTuuu/Q== + dependencies: + array.prototype.every "^1.1.3" + call-bind "^1.0.2" + deep-equal "^2.0.5" + defined "^1.0.0" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.3" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.6" + object-inspect "^1.12.2" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.3" + resolve "^2.0.0-next.3" + resumer "^0.0.0" + string.prototype.trim "^1.2.6" + through "^2.3.8" + +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.0.2: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.1.0.tgz#91e6d39571460ed240c0cf69d295bcf30ebf98cb" + integrity sha512-cjdZte66fYkZ65rQ2oJfrdCAkkhJA7YLYk5eGOcGCSGlq0ieZupRdjedSQXYknMPo2IveQL+tPdrxUkERENCFA== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.2.1" + p-limit "^3.0.2" + schema-utils "^2.6.6" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.8.0" + webpack-sources "^1.4.3" + +terser@^3.7.5: + version "3.17.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== + dependencies: + commander "^2.19.0" + source-map "~0.6.1" + source-map-support "~0.5.10" + +terser@^4.1.2, terser@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^4.7.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" + integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thread-loader@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-3.0.4.tgz#c392e4c0241fbc80430eb680e4886819b504a31b" + integrity sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA== + dependencies: + json-parse-better-errors "^1.0.2" + loader-runner "^4.1.0" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + +three-mesh-bvh@^0.5.7: + version "0.5.10" + resolved "https://registry.yarnpkg.com/three-mesh-bvh/-/three-mesh-bvh-0.5.10.tgz#6eadd0a9f63d8fc1bb3516bdc96b6ed906a888c4" + integrity sha512-yOJPT3DhfZB/DvIr0lEfPUPMRX11HJABGapeuBa4GwgsF1NMMsy1nW1wMGxImmVyRCZ61yoor/YVqRRQV1p5VQ== + +three-omi@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/three-omi/-/three-omi-0.1.5.tgz#51a96d9f998ec770fc0ff58a9ce7bd297e71daef" + integrity sha512-0kDTKeEaowN9u0C0wHxbpmDHLJDmsqavbynjIi2ITPoIo/R2znbqxKdd64IfHf9Xv7HgxLnBfL0OM8PDTLu79A== + +three-stdlib@^2.4.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.17.0.tgz#5915b110ec6dbf07e0e653bd59889293c7b93407" + integrity sha512-m19X4+ajh+2EJIVcjB288LgbqTli5b8kFahJlg9oNCBfaL8geCgEoM4OUirgV0Ez6Lr58N1MPBR6LjJt7ALfKQ== + dependencies: + "@babel/runtime" "^7.16.7" + "@types/offscreencanvas" "^2019.6.4" + "@webgpu/glslang" "^0.0.15" + chevrotain "^10.1.2" + draco3d "^1.4.1" + fflate "^0.6.9" + ktx-parse "^0.4.5" + mmd-parser "^1.0.4" + opentype.js "^1.3.3" + potpack "^1.0.1" + zstddec "^0.0.2" + +three-stdlib@^2.8.6, three-stdlib@^2.8.9: + version "2.9.1" + resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.9.1.tgz#300abf6cf12ab388e515fd8572217288dffe4736" + integrity sha512-e+Hyd47ssVTy2UzUfmaccB7m30qITVMdvGs/QypeGdJa3uwhw1zR9jO/ce61S65Omiy/oGDMWG8dJIZxyQ7u8w== + dependencies: + "@babel/runtime" "^7.16.7" + "@webgpu/glslang" "^0.0.15" + chevrotain "^10.1.2" + draco3d "^1.4.1" + fflate "^0.6.9" + ktx-parse "^0.2.1" + mmd-parser "^1.0.4" + opentype.js "^1.3.3" + potpack "^1.0.1" + zstddec "^0.0.2" + +three@*: + version "0.145.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.145.0.tgz#a613d71e75effc2aed88be630027ca01e2b6502e" + integrity sha512-EKoHQEtEJ4CB6b2BGMBgLZrfwLjXcSUfoI/MiIXUuRpeYsfK5aPWbYhdtIVWOH+x6X0TouldHKHBuc/LAiFzAw== + +three@0.144.0: + version "0.144.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.144.0.tgz#2818517169f8ff94eea5f664f6ff1fcdcd436cc8" + integrity sha512-R8AXPuqfjfRJKkYoTQcTK7A6i3AdO9++2n8ubya/GTU+fEHhYKu1ZooRSCPkx69jbnzT7dD/xEo6eROQTt2lJw== + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.0, through2@^2.0.3, through2@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + +through2@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.7, through@^2.3.8, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky-with-args@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/thunky-with-args/-/thunky-with-args-1.0.0.tgz#5b202235d8e6c88986c941226c0b4d7e49b2e25d" + integrity sha512-e9QU3bJpxzJx1XcQ1ivwW15xoR3oUJ8MTSpboSTVcTAii2KoxrUaEo+x3PxkgseflqjynJsUP3IqB9jwDZwNtw== + dependencies: + sigmund "~1.0.1" + thunky "~1.0.2" + +thunky@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" + integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q== + dependencies: + process "~0.11.0" + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-inflate@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + +tiny-lr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" + integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== + dependencies: + body "^5.1.0" + debug "^3.1.0" + faye-websocket "~0.10.0" + livereload-js "^2.3.0" + object-assign "^4.1.0" + qs "^6.4.0" + +tiny-simple-peer@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/tiny-simple-peer/-/tiny-simple-peer-10.1.1.tgz#f7df8e425422660ae1fb606715049e3144f52063" + integrity sha512-Hd3Q6ACo08Xb5BGgUMaqYKQuz8fNrd1aWUVJsIvbkFNk+3FtxVgVvnQZlLuUiXhnyZDubR9xTlXqeJOMGwpI3Q== + dependencies: + debug "^4.3.2" + err-code "^3.0.1" + events "^3.3.0" + get-browser-rtc "^1.1.0" + queue-microtask "^1.2.3" + random-string "^0.2.0" + +tinycolor2@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + +tinyify@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/tinyify/-/tinyify-3.1.0.tgz#cd3f974c24f3ab0ccd0b471b8c4816c7431317fa" + integrity sha512-r4tHoDkWhhoItWbxJ3KCHXask3hJN7gCUkR5PLfnQzQagTA6oDkzhCbiEDHkMqo7Ck7vVSA1pTP1gDc9p1AC1w== + dependencies: + "@goto-bus-stop/envify" "^5.0.0" + acorn-node "^1.8.2" + browser-pack-flat "^3.0.9" + bundle-collapser "^1.3.0" + common-shakeify "^1.1.1" + dash-ast "^1.0.0" + minify-stream "^2.0.1" + multisplice "^1.0.0" + through2 "^3.0.1" + uglifyify "^5.0.0" + unassertify "^2.1.1" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +transform-ast@^2.4.2, transform-ast@^2.4.3: + version "2.4.4" + resolved "https://registry.yarnpkg.com/transform-ast/-/transform-ast-2.4.4.tgz#bebf494e2e73f024746f76348bc86a5992851d00" + integrity sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ== + dependencies: + acorn-node "^1.3.0" + convert-source-map "^1.5.1" + dash-ast "^1.0.0" + is-buffer "^2.0.0" + magic-string "^0.23.2" + merge-source-map "1.0.4" + nanobench "^2.1.1" + +transient-error@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/transient-error/-/transient-error-1.0.0.tgz#9822b38ccdd75a2b8527a865534fe9ba5f0b6ab6" + integrity sha512-pHi+O9OajOp96ldjeZ0i45n/d4QqV8ef8VCrpx5+RL5VO7Xdt2oQj//zcOhuGw5tiPYe73I4d28wV+yCqhSWxA== + +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE= + dependencies: + escape-string-regexp "^1.0.2" + +trim-trailing-lines@^1.0.0, trim-trailing-lines@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" + integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +troika-three-text@^0.46.3: + version "0.46.4" + resolved "https://registry.yarnpkg.com/troika-three-text/-/troika-three-text-0.46.4.tgz#77627ac2ac4765d5248c857a8b42f82c25f2d034" + integrity sha512-Qsv0HhUKTZgSmAJs5wvO7YlBoJSP9TGPLmrg+K9pbQq4lseQdcevbno/WI38bwJBZ/qS56hvfqEzY0zUEFzDIw== + dependencies: + bidi-js "^1.0.2" + troika-three-utils "^0.46.0" + troika-worker-utils "^0.46.0" + webgl-sdf-generator "1.1.1" + +troika-three-utils@^0.46.0: + version "0.46.0" + resolved "https://registry.yarnpkg.com/troika-three-utils/-/troika-three-utils-0.46.0.tgz#6d97a9bf08f2260285edf2bb0be6328dd3d50eec" + integrity sha512-llHyrXAcwzr0bpg80GxsIp73N7FuImm4WCrKDJkAqcAsWmE5pfP9+Qzw+oMWK1P/AdHQ79eOrOl9NjyW4aOw0w== + +troika-worker-utils@^0.46.0: + version "0.46.0" + resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.46.0.tgz#1b698090af78b51a27e03881c90237a2e648d6c4" + integrity sha512-bzOx5f2ZBxkFhXtIvDJlLn2AI3bzCkGVbCndl/2dL5QZrwHEKl45OEIilCxYQQWJG1rEbOD9O80tMjoYjw19OA== + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + +tsconfig-paths@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tslib@^2.2.0, tslib@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tsutils@^3.17.1, tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +turbo-combine-reducers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/turbo-combine-reducers/-/turbo-combine-reducers-1.0.2.tgz#aa3650b3c63daa6804d35a4042014f6d31df1e47" + integrity sha512-gHbdMZlA6Ym6Ur5pSH/UWrNQMIM9IqTH6SoL1DbHpqEdQ8i+cFunSmSlFykPt0eGQwZ4d/XTHOl74H0/kFBVWw== + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.5.0, type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uglify-js@^3.1.4: + version "3.17.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.0.tgz#55bd6e9d19ce5eef0d5ad17cd1f587d85b180a85" + integrity sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg== + +uglifyify@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/uglifyify/-/uglifyify-5.0.2.tgz#7d0269885e09faa963208a9ec6721afcaf45fc50" + integrity sha512-NcSk6pgoC+IgwZZ2tVLVHq+VNKSvLPlLkF5oUiHPVOJI0s/OlSVYEGXG9PCAH0hcyFZLyvt4KBdPAQBRlVDn1Q== + dependencies: + convert-source-map "~1.1.0" + minimatch "^3.0.2" + terser "^3.7.5" + through "~2.3.4" + xtend "^4.0.1" + +umd@^3.0.0, umd@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== + +unassert@^1.3.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/unassert/-/unassert-1.6.0.tgz#ceb6d39ce47c6d2bfa9cb3cab407352cbfb60a19" + integrity sha512-GoMtWTwGSxSFuRD0NKmbjlx3VJkgvSogzDzMPpJXYmBZv6MIWButsyMqEYhMx3NI4osXACcZA9mXiBteXyJtRw== + dependencies: + acorn "^7.0.0" + call-matcher "^2.0.0" + deep-equal "^1.0.0" + espurify "^2.0.1" + estraverse "^4.1.0" + esutils "^2.0.2" + object-assign "^4.1.0" + +unassertify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/unassertify/-/unassertify-2.1.1.tgz#23772d76c136fb3d5df7dad4911c737d952357d3" + integrity sha512-YIAaIlc6/KC9Oib8cVZLlpDDhK1UTEuaDyx9BwD97xqxDZC0cJOqwFcs/Y6K3m73B5VzHsRTBLXNO0dxS/GkTw== + dependencies: + acorn "^5.1.0" + convert-source-map "^1.1.1" + escodegen "^1.6.1" + multi-stage-sourcemap "^0.2.1" + through "^2.3.7" + unassert "^1.3.1" + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unbzip2-stream@^1.3.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +undeclared-identifiers@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" + integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== + dependencies: + acorn-node "^1.3.0" + dash-ast "^1.0.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" + +unherit@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + dependencies: + inherits "^2.0.0" + xtend "^4.0.0" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + +unicode-regex@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unicode-regex/-/unicode-regex-3.0.0.tgz#0c20df914c6da0412b3714cd300726e0f7f24698" + integrity sha512-WiDJdORsqgxkZrjC8WsIP573130HNn7KsB0IDnUccW2BG2b19QQNloNhVe6DKk3Aef0UcoIHhNVj7IkkcYWrNw== + dependencies: + regexp-util "^1.2.0" + +unicode-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-regex/-/unicode-regex-2.0.0.tgz#ef8f6642c37dddcaa0c09af5b9456aabf6b436a3" + integrity sha512-5nbEG2YU7loyTvPABaKb+8B0u8L7vWCsVmCSsiaO249ZdMKlvrXlxR2ex4TUVAdzv/Cne/TdoXSSaJArGXaleQ== + dependencies: + regexp-util "^1.2.0" + +unified@8.4.2: + version "8.4.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" + integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +unified@^6.1.2: + version "6.2.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" + integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^2.0.0" + x-is-string "^0.1.0" + +unified@^9.1.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" + integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unist-util-find-all-after@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6" + integrity sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ== + dependencies: + unist-util-is "^4.0.0" + +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-remove-position@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" + integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== + dependencies: + unist-util-visit "^1.1.0" + +unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-visit-parents@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== + dependencies: + unist-util-is "^3.0.0" + +unist-util-visit@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== + dependencies: + unist-util-visit-parents "^2.0.0" + +universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url@^0.11.0, url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use-asset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/use-asset/-/use-asset-1.0.4.tgz#506caafc29f602890593799e58b577b70293a6e2" + integrity sha512-7/hqDrWa0iMnCoET9W1T07EmD4Eg/Wmoj/X8TGBc++ECRK4m5yTsjP4O6s0yagbxfqIOuUkIxe2/sA+VR2GxZA== + dependencies: + fast-deep-equal "^3.1.3" + +use-memo-one@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.2.tgz#0c8203a329f76e040047a35a1197defe342fab20" + integrity sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ== + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +util@~0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +util@~0.12.0: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +utility-types@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" + integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vfile-location@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" + integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== + +vfile-message@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" + integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== + dependencies: + unist-util-stringify-position "^1.1.1" + +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" + integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== + dependencies: + is-buffer "^1.1.4" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + vfile-message "^1.0.0" + +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + +vm-browserify@^1.0.0, vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +vnopts@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/vnopts/-/vnopts-1.0.2.tgz#f6a331473de0179d1679112cc090572b695202f7" + integrity sha512-d2rr2EFhAGHnTlURu49G7GWmiJV80HbAnkYdD9IFAtfhmxC+kSWEaZ6ZF064DJFTv9lQZQV1vuLTntyQpoanGQ== + dependencies: + chalk "^2.4.1" + leven "^2.1.0" + tslib "^1.9.3" + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +wait-on@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-3.3.0.tgz#9940981d047a72a9544a97b8b5fca45b2170a082" + integrity sha512-97dEuUapx4+Y12aknWZn7D25kkjMk16PbWoYzpSdA8bYpVfS6hpl2a2pOWZ3c+Tyt3/i4/pglyZctG3J4V1hWQ== + dependencies: + "@hapi/joi" "^15.0.3" + core-js "^2.6.5" + minimist "^1.2.0" + request "^2.88.0" + rx "^4.1.0" + +wait-port@^0.2.7: + version "0.2.9" + resolved "https://registry.yarnpkg.com/wait-port/-/wait-port-0.2.9.tgz#3905cf271b5dbe37a85c03b85b418b81cb24ee55" + integrity sha512-hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ== + dependencies: + chalk "^2.4.2" + commander "^3.0.2" + debug "^4.1.1" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +watchify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/watchify/-/watchify-4.0.0.tgz#53b002d51e7b0eb640b851bb4de517a689973392" + integrity sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA== + dependencies: + anymatch "^3.1.0" + browserify "^17.0.0" + chokidar "^3.4.0" + defined "^1.0.0" + outpipe "^1.1.0" + through2 "^4.0.2" + xtend "^4.0.2" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +webgl-constants@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/webgl-constants/-/webgl-constants-1.1.1.tgz#f9633ee87fea56647a60b9ce735cbdfb891c6855" + integrity sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg== + +webgl-sdf-generator@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz#3e1b422b3d87cd3cc77f2602c9db63bc0f6accbd" + integrity sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-bundle-analyzer@^4.2.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz#1b0eea2947e73528754a6f9af3e91b2b6e0f79d5" + integrity sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^7.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + +webpack-cli@^3.3.11: + version "3.3.12" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" + integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== + dependencies: + chalk "^2.4.2" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.1" + findup-sync "^3.0.0" + global-modules "^2.0.0" + import-local "^2.0.0" + interpret "^1.4.0" + loader-utils "^1.4.0" + supports-color "^6.1.0" + v8-compile-cache "^2.1.1" + yargs "^13.3.2" + +webpack-livereload-plugin@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/webpack-livereload-plugin/-/webpack-livereload-plugin-2.3.0.tgz#61994e0500a0c1e27355ff753a9642641bef5d6a" + integrity sha512-vVBLQLlNpElt2sfsBG+XLDeVbQFS4RrniVU8Hi1/hX5ycSfx6mtW8MEEITr2g0Cvo36kuPWShFFDuy+DS7KFMA== + dependencies: + anymatch "^3.1.1" + portfinder "^1.0.17" + tiny-lr "^1.1.1" + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd" + integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack-sources@^3.2.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^4.46.0: + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.5.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + +which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-comment@^1.0.0, wrap-comment@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wrap-comment/-/wrap-comment-1.0.1.tgz#941bb1400b9b590bc007599e79cacc0bb3ea62f3" + integrity sha512-APccrMwl/ont0RHFTXNAQfM647duYYEfs6cngrIyTByTI0xbWnDnPSptFZhS68L4WCjt2ZxuhCFwuY6Pe88KZQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^7.2.3, ws@^7.3.1, ws@^7.4.6: + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + +ws@~8.2.3: + version "8.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" + integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== + +x-is-string@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-unist-parser@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/yaml-unist-parser/-/yaml-unist-parser-1.1.1.tgz#a2bc7b72578718e6e5b0ebc945dde8e1f258b561" + integrity sha512-cGtqhHBlcft+rTKiPsVcSyi43Eqm5a1buYokW9VkztroKMErBSdR9ANHx+/XxNppHZTu2KMEn4yY8MdhuGoFuA== + dependencies: + lines-and-columns "^1.1.6" + tslib "^1.10.0" + yaml "^1.7.1" + +yaml@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a" + integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw== + dependencies: + "@babel/runtime" "^7.8.7" + +yaml@^1.10.0, yaml@^1.5.0, yaml@^1.7.1, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" + integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^15.0.1: + version "15.0.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" + integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2, yargs-parser@^18.1.3: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^14.2: + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^15.0.1" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zstddec@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz#57e2f28dd1ff56b750e07d158a43f0611ad9eeb4" + integrity sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA== + +zustand@^3.2.0, zustand@^3.5.10, zustand@^3.5.13, zustand@^3.7.1: + version "3.7.2" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d" + integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== From 060d529ff1f82aeb343a72a43be9dfc479d0aa17 Mon Sep 17 00:00:00 2001 From: antpb Date: Fri, 4 Nov 2022 22:47:55 -0500 Subject: [PATCH 41/48] revamps portals to have offsets --- admin/three-object-viewer-settings/App.js | 2 - blocks/environment/Edit.js | 2 - .../components/EnvironmentFront.js | 98 ++++++++++++------- .../environment/components/ThreeObjectEdit.js | 12 ++- blocks/environment/frontend.js | 10 +- blocks/three-portal-block/Edit.js | 73 +++++++++++++- blocks/three-portal-block/Save.js | 15 +++ blocks/three-portal-block/block.json | 20 ++++ 8 files changed, 185 insertions(+), 47 deletions(-) diff --git a/admin/three-object-viewer-settings/App.js b/admin/three-object-viewer-settings/App.js index 00a5795..3bf5e65 100644 --- a/admin/three-object-viewer-settings/App.js +++ b/admin/three-object-viewer-settings/App.js @@ -43,7 +43,6 @@ function SavedObject( props ) { function CreateImage() { const { gl, scene, camera } = useThree() let getImageData = true; - console.log(gl); if(gl){ if(getImageData == true) { window.setTimeout(function () { @@ -107,7 +106,6 @@ export default function App({ getSettings, updateSettings }) { // Get media attachment details from the frame state var attachment = frame.state().get('selection').first().toJSON(); - // console.log(attachment); setDefaultVRM(attachment.url); // Send the attachment URL to our custom image input field. }); diff --git a/blocks/environment/Edit.js b/blocks/environment/Edit.js index a694018..792cd7a 100644 --- a/blocks/environment/Edit.js +++ b/blocks/environment/Edit.js @@ -29,13 +29,11 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { }; const onImageSelect = ( imageObject ) => { - console.log(imageObject); setAttributes( { threeObjectUrl: null } ); setAttributes( { threeObjectUrl: imageObject.url } ); }; const onPreviewImageSelect = ( imageObject ) => { - console.log(imageObject); setAttributes( { threePreviewImage: null } ); setAttributes( { threePreviewImage: imageObject.url } ); }; diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index fbf692c..88d9719 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -12,7 +12,9 @@ import Networking from './Networking'; import { useAnimations, Html, - Stats + Stats, + Text, + Billboard } from '@react-three/drei'; import { A11y, @@ -30,8 +32,6 @@ import TeleportTravel from './TeleportTravel'; import Player from './Player'; import defaultVRM from '../../../inc/avatars/3ov_default_avatar.vrm'; -import { useAspect } from '@react-three/drei'; -import { Button } from '@wordpress/components'; function Participant( participant ) { // Participant VRM. @@ -175,14 +175,31 @@ function ModelObject( model ) { function Portal( model ) { if ( model.object ){ return(<> + + + { model.label ? (model.label + ': ') : "" + model.destinationUrl } + + + onCollisionEnter={ () => window.location.href = model.destinationUrl } > - + ) } @@ -217,22 +234,32 @@ function Portal( model ) { } ); } }, [] ); - gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); - gltf.scene.rotation.set( 0, 0, 0 ); + // gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); + // gltf.scene.rotation.set( 0, 0, 0 ); gltf.scene.scale.set(model.scaleX , model.scaleY, model.scaleZ ); - gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); + // gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) return(<> window.location.href = model.destinationUrl } - > - + > + + + { model.label + ': ' + model.destinationUrl } + + + ); } @@ -413,28 +440,6 @@ function SavedObject( props ) { } }, [] ); - // if(gltf?.userData?.gltfExtensions?.VRM){ - // const vrm = gltf.userData.vrm; - // vrm.scene.position.set( 0, props.positionY, 0 ); - // VRMUtils.rotateVRM0( vrm ); - // const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - // vrm.scene.rotation.set( 0, rotationVRM, 0 ); - // vrm.scene.scale.set( props.scale, props.scale, props.scale ); - // return ; - // } - - // gltf.scene.position.set( 0, props.positionY, 0 ); - // gltf.scene.rotation.set( 0, props.rotationY, 0 ); - // gltf.scene.scale.set( props.scale, props.scale, props.scale ); - // const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); - - // if(collidersToAdd.length === 0){ - // console.log("it should never hit here") - // return ( - // - // ) - // } - return(<> { meshes && meshes.map((item, index)=>{ if(item.isObject3D){ @@ -464,6 +469,7 @@ function SavedObject( props ) { rotationY={finalRotation.y} rotationZ={finalRotation.z} object={ item.parent } + label={ props.label } destinationUrl={item.userData.gltfExtensions.OMI_link.uri} /> ) @@ -848,7 +854,26 @@ export default function EnvironmentFront( props ) { const animations = model.querySelector( 'p.three-portal-block-animations' ) ? model.querySelector( 'p.three-portal-block-animations' ).innerText : ''; - + + const label = model.querySelector( 'p.three-portal-block-label' ) + ? model.querySelector( 'p.three-portal-block-label' ).innerText + : ''; + + const labelOffsetX = model.querySelector( 'p.three-portal-block-label-offset-x' ) + ? model.querySelector( 'p.three-portal-block-label-offset-x' ).innerText + : ''; + + const labelOffsetY = model.querySelector( 'p.three-portal-block-label-offset-y' ) + ? model.querySelector( 'p.three-portal-block-label-offset-y' ).innerText + : ''; + + const labelOffsetZ = model.querySelector( 'p.three-portal-block-label-offset-z' ) + ? model.querySelector( 'p.three-portal-block-label-offset-z' ).innerText + : ''; + const labelTextColor = model.querySelector( 'p.three-portal-block-label-text-color' ) + ? model.querySelector( 'p.three-portal-block-label-text-color' ).innerText + : ''; + return(); })} {/* - + )} @@ -435,6 +436,13 @@ function PortalObject( model ) { rotation={[ portalBlockAttributes.rotationX , portalBlockAttributes.rotationY, portalBlockAttributes.rotationZ ]} scale={[ portalBlockAttributes.scaleX , portalBlockAttributes.scaleY, portalBlockAttributes.scaleZ ]} > + + { portalBlockAttributes.label + ': ' + portalBlockAttributes.destinationUrl } + )} diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index ead4f33..e1f8597 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -56,20 +56,20 @@ threeApp.forEach( ( threeApp ) => { render( <> -

+ {/*

Peers

Messages

- {/*
Send Button
*/} +
Send Button
-
- */} + {/* + /> */} { setAttributes( { rotationX: rotationX } ); }; + const onChangeRotationY = ( rotationY ) => { setAttributes( { rotationY: rotationY } ); }; + const onChangeRotationZ = ( rotationZ ) => { setAttributes( { rotationZ: rotationZ } ); }; @@ -46,9 +48,11 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { const onChangeScaleX = ( scaleX ) => { setAttributes( { scaleX: scaleX } ); }; + const onChangeScaleY = ( scaleY ) => { setAttributes( { scaleY: scaleY } ); }; + const onChangeScaleZ = ( scaleZ ) => { setAttributes( { scaleZ: scaleZ } ); }; @@ -57,6 +61,25 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { setAttributes( { animations: animations } ); }; + const onChangeLabel = ( label ) => { + setAttributes( { label: label } ); + }; + + const onChangeLabelX = ( labelX ) => { + setAttributes( { labelOffsetX: labelX } ); + }; + + const onChangeLabelY = ( labelY ) => { + setAttributes( { labelOffsetY: labelY } ); + }; + + const onChangeLabelZ = ( labelZ ) => { + setAttributes( { labelOffsetZ: labelZ } ); + }; + const onChangeLabelTextcolor = ( labelColor ) => { + setAttributes({ labelTextColor: labelColor } ); + }; + const onChangeDestinationUrl = ( destination ) => { setAttributes( { destinationUrl: destination } ); }; @@ -171,6 +194,16 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { } } /> + + + onChangeLabel( value ) + } + /> + + + + - { __( 'Position', 'three-object-viewer' ) } - + { __( 'Label Offset', 'three-object-viewer' ) } + + + + + onChangeLabelX( value ) + } + /> + + onChangeLabelY( value ) + } + /> + + onChangeLabelZ( value ) + } + /> { attributes.animations }

+

+ { attributes.label } +

+

+ { attributes.labelOffsetX } +

+

+ { attributes.labelOffsetY } +

+

+ { attributes.labelOffsetZ } +

+

+ { attributes.labelTextColor } +

diff --git a/blocks/three-portal-block/block.json b/blocks/three-portal-block/block.json index f46dda6..34d00e6 100644 --- a/blocks/three-portal-block/block.json +++ b/blocks/three-portal-block/block.json @@ -47,6 +47,26 @@ "type": "string", "default": null }, + "label": { + "type": "string", + "default": null + }, + "labelTextColor": { + "type": "string", + "default": "0x000000" + }, + "labelOffsetX": { + "type": "int", + "default":0 + }, + "labelOffsetY": { + "type": "int", + "default":0 + }, + "labelOffsetZ": { + "type": "int", + "default":0 + }, "animations": { "type": "string", "default": "" From dcf7702a2e7d6328177068bc6b56b39815d105fe Mon Sep 17 00:00:00 2001 From: antpb Date: Sat, 5 Nov 2022 14:27:21 -0500 Subject: [PATCH 42/48] add support for thirdroom links --- .../components/EnvironmentFront.js | 76 ++++++++++++++++++- .../environment/components/ThreeObjectEdit.js | 2 +- blocks/three-image-block/Edit.js | 22 +++++- blocks/three-image-block/block.json | 4 + blocks/three-portal-block/Edit.js | 36 ++++----- 5 files changed, 116 insertions(+), 24 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 88d9719..528ee40 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -32,6 +32,69 @@ import TeleportTravel from './TeleportTravel'; import Player from './Player'; import defaultVRM from '../../../inc/avatars/3ov_default_avatar.vrm'; +function parseMatrixUri(uri) { + const SegmentToSigil = { + u: "@", + user: "@", + r: "#", + room: "#", + roomid: "!", + }; + + const url = new URL(uri, window.location.href); + + if (url.protocol === "matrix:") { + const matches = url.pathname.match(/^(\/\/.+\/)?(.+)$/); + + let authority = undefined; + let path = undefined; + + if (matches) { + if (matches.length == 3) { + authority = matches[1]; + path = matches[2]; + } else if (matches.length === 2) { + path = matches[1]; + } + } + + if (!path) { + throw new Error(`Invalid matrix uri "${uri}": No path provided`); + } + + const segments = path.split("/"); + + if (segments.length !== 2 && segments.length !== 4) { + throw new Error(`Invalid matrix uri "${uri}": Invalid number of segments`); + } + + const sigil1 = SegmentToSigil[segments[0]]; + + if (!sigil1) { + throw new Error(`Invalid matrix uri "${uri}": Invalid segment ${segments[0]}`); + } + + if (!segments[1]) { + throw new Error(`Invalid matrix uri "${uri}": Empty segment`); + } + + const mxid1 = `${sigil1}${segments[1]}`; + + let mxid2 = undefined; + + if (segments.length === 4) { + if ((sigil1 === "!" || sigil1 === "#") && (segments[2] === "e" || segments[2] === "event") && segments[3]) { + mxid2 = `$${segments[3]}`; + } else { + throw new Error(`Invalid matrix uri "${uri}": Invalid segment ${segments[2]}`); + } + } + return { protocol: "matrix:", authority, mxid1, mxid2 }; + } + + return url; + +} function Participant( participant ) { // Participant VRM. @@ -195,8 +258,15 @@ function Portal( model ) { - window.location.href = model.destinationUrl + onCollisionEnter={ () => { + const url = new URL(model.destinationUrl, window.location.href); + if(url.protocol === "matrix:"){ + const destination = parseMatrixUri(model.destinationUrl); + window.location.href = 'https://thirdroom.io/world/' + destination.mxid1; + } else { + window.location.href = model.destinationUrl; + } + } } > @@ -545,7 +615,7 @@ export default function EnvironmentFront( props ) { {/* Debug physics */} - + {/* */} { props.threeUrl && ( <> diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 0670092..9a611bc 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -785,7 +785,7 @@ export default function ThreeObjectEdit( props ) { width: '100%', } } > - {/* */} + { - setAttributes( { hasZoom: zoomSetting } ); + const onChangeCollidable = ( setting ) => { + setAttributes( { collidable: setting } ); + }; + + const onChangeTransparent = ( transparent ) => { + setAttributes( { transparent: transparent } ); }; @@ -129,6 +133,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { ) } /> + + { + onChangeTransparent( e ); + } } + /> + - - - onChangeDestinationUrl( value ) - } - /> - - onChangeLabel( value ) + onChangeAnimations( value ) } /> - onChangeAnimations( value ) + onChangeDestinationUrl( value ) + } + /> + + + + onChangeLabel( value ) } /> From f20e76a81e7a953f99d7a1bdc188c9e00641e61a Mon Sep 17 00:00:00 2001 From: antpb Date: Sat, 5 Nov 2022 20:04:15 -0500 Subject: [PATCH 43/48] adds eslint --- .eslintrc | 4 + .prettierrc | 6 + .vscode/settings.json | 10 + blocks/environment/components/Controls.js | 614 +++++++++++------- .../components/EnvironmentFront.js | 8 +- package.json | 2 + yarn.lock | 539 ++++++++++++++- 7 files changed, 931 insertions(+), 252 deletions(-) create mode 100644 .eslintrc create mode 100644 .prettierrc create mode 100644 .vscode/settings.json diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..8e8e2ee --- /dev/null +++ b/.eslintrc @@ -0,0 +1,4 @@ +{ + "extends": [ "plugin:@wordpress/eslint-plugin/recommended" ] +} + diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..a76827a --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "semi": false, + "singleQuote": false, + "trailingComma": "none" +} + diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a420677 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,10 @@ +{ + "editor.defaultFormatter": "rvest.vs-code-prettier-eslint", + "editor.formatOnPaste": false, // required + "editor.formatOnType": false, // required + "editor.formatOnSave": true, // optional + "editor.formatOnSaveMode": "file", // required to format on save + "files.autoSave": "onFocusChange", // optional but recommended + "editor.insertSpaces": false, + "prettier.useTabs": true +} diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 280ba48..3a1bd14 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -1,245 +1,379 @@ -import React, { useEffect, useRef, useState, componentDidMount } from 'react'; +import React, { useEffect, useRef, useState, componentDidMount } from "react" // import { Raycaster, Vector3, Math, Euler } from 'three'; -import * as THREE from 'three'; +import * as THREE from "three" -import { useFrame, useThree } from '@react-three/fiber'; -import { PointerLockControls, OrbitControls } from '@react-three/drei'; -import previewOptions from '@wordpress/block-editor/build/components/preview-options'; -import { RigidBody, MeshCollider, useRapier, BallCollider, useRigidBody, RigidBodyApi, useCollider } from '@react-three/rapier'; +import { useFrame, useThree } from "@react-three/fiber" +import { PointerLockControls, OrbitControls } from "@react-three/drei" +import previewOptions from "@wordpress/block-editor/build/components/preview-options" +import { + RigidBody, + MeshCollider, + useRapier, + BallCollider, + useRigidBody, + RigidBodyApi, + useCollider +} from "@react-three/rapier" function touchStarted() { - getAudioContext().resume(); - } - + getAudioContext().resume() +} + const Controls = (props) => { - const p2pcf = window.p2pcf; - const controlsRef = useRef(); - const isLocked = useRef( false ); - const [ lock, setLock] = useState(false); - const [ moveForward, setMoveForward ] = useState( false ); - const [ moveBackward, setMoveBackward ] = useState( false ); - const [ moveLeft, setMoveLeft ] = useState( false ); - const [ moveRight, setMoveRight ] = useState( false ); - const [ spawnPos, setSpawnPos ] = useState(); - const [ jump, setJump ] = useState( false ); - const currentRigidbody = useRigidBody(); - const {world, rapier} = useRapier(); - let ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }); - const {camera, scene} = useThree(); - - useEffect( () => { - setSpawnPos(props.spawnPoint); - }, []); - - useFrame( () => { - - const playerThing = world.getRigidBody(props.something.current.handle); - const playerThingColliders = world.getCollider(props.something.current.handle); - - // playerThing.restrictRotations({enableX: false, enableY: false, enableZ: false}, true); - //maybebringthemback - // playerThing.lockRotations(true, true); - if(lock){ - playerThing.setBodyType(1); - } else { - playerThing.setBodyType(0); - } - // playerThing.setRotation({x: Math.radToDeg(controlsRef.current.camera.rotation.x), y: Math.radToDeg(controlsRef.current.camera.rotation.y), z: Math.radToDeg(controlsRef.current.camera.rotation.z), w: 0}, true); - ray.origin.x = playerThing.translation().x - ray.origin.y = playerThing.translation().y - ray.origin.z = playerThing.translation().z - const velocity = 0.25; - world.raw().step(); - let maxToi = 14; - let solid = true; - - if ( moveForward ) { - // playerThing.applyImpulse({x:0, y:0, z:0.1}, true); - controlsRef.current.moveForward( velocity ); - let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); - playerThing.lockRotations(true, true); - // playerThing.setRotation({x: 0, y: 1, z: 0, w: 0}, true); - - if (hit) { - let hitPoint = ray.pointAt(hit.toi); - playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); - camera.position.setY( hitPoint.y + 0.001); - } - if(p2pcf){ - let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; - p2pcf.broadcast(new TextEncoder().encode(message)); - } - } else if ( moveLeft ) { - playerThing.lockRotations(true, true); - // playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); - controlsRef.current.moveRight( -velocity ); - let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); - - if (hit) { - let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` - playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); - - } - if(p2pcf){ - let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; - p2pcf.broadcast(new TextEncoder().encode(message)); - } - } else if ( moveBackward ) { - playerThing.lockRotations(true, true); - // playerThing.setRotation({x: 0, y: 0, z: 0, w: -1}, true); - - controlsRef.current.moveForward( -velocity ); - let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); - - if (hit) { - let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` - playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); - - } - if(p2pcf){ - let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; - p2pcf.broadcast(new TextEncoder().encode(message)); - } - } else if ( moveRight ) { - playerThing.lockRotations(true, true); - // playerThing.setRotation({x: 0, y: 0.707107, z: 0, w: 0.707107}, true); - - controlsRef.current.moveRight( velocity ); - let hit = world.raw().queryPipeline.castRay(world.raw().colliders, ray, maxToi, solid, 0xfffffffff); - - if (hit) { - let hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` - playerThing.setTranslation({x: controlsRef.current.camera.position.x, y: hitPoint.y, z: controlsRef.current.camera.position.z }); - } - // rigidBody.applyImpulse(controlsRef.current.vec); - if(p2pcf){ - let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; - p2pcf.broadcast(new TextEncoder().encode(message)); - } - } else if ( jump ) { - } - } ); - - const onKeyDown = function ( event ) { - switch ( event.code ) { - case 'ArrowUp': - case 'KeyW': - setMoveForward( true ); - setLock(false); - break; - - case 'ArrowLeft': - case 'KeyA': - setMoveLeft( true ); - setLock(false); - break; - - case 'ArrowDown': - case 'KeyS': - setMoveBackward( true ); - setLock(false); - break; - - case 'ArrowRight': - case 'KeyD': - setMoveRight( true ); - setLock(false); - break; - case "Space": - // camera.position.set(spawnPos[0], spawnPos[1], spawnPos[2]); - controlsRef.current.camera.position.set(spawnPos[0], spawnPos[1], spawnPos[2]); - setLock(false); - window.addEventListener('keydown', (e) => { - if (e.keyCode === 32 && e.target === document.body) { - e.preventDefault(); - } - }); - setJump(true); - break; - default: - return; - } - }; - - const onKeyUp = function ( event, props ) { - switch ( event.code ) { - case 'ArrowUp': - case 'KeyW': - setMoveForward( false ); - setLock(true); - break; - - case 'ArrowLeft': - case 'KeyA': - setMoveLeft( false ); - setLock(true); - break; - - case 'ArrowDown': - case 'KeyS': - setMoveBackward( false ); - setLock(true); - break; - - case "Space": - setJump(false); - setLock(true); - break; - - case 'ArrowRight': - case 'KeyD': - setMoveRight( false ); - setLock(true); - break; - - default: - return; - } - }; - - document.addEventListener( 'keydown', onKeyDown ); - document.addEventListener( 'keyup', onKeyUp ); - return ( - { - if ( controlsRef.current ) { - controlsRef.current.addEventListener( 'lock', () => { - console.log( 'lock' ); - isLocked.current = true; - } ); - controlsRef.current.addEventListener( 'unlock', () => { - console.log( 'unlock' ); - isLocked.current = false; - } ); - } - } } - onChange={ () => { - if(p2pcf && controlsRef){ - let position = [controlsRef.current.camera.position.x, controlsRef.current.camera.position.y, controlsRef.current.camera.position.z ]; - let rotation = [controlsRef.current.camera.rotation.x, controlsRef.current.camera.rotation.y, controlsRef.current.camera.rotation.z ]; - let message = `{ "${p2pcf.clientId}": [{ "position" : [`+ position +`]},{ "rotation" : [`+ rotation +`]},{ "profileImage" : ["`+ userData.profileImage +`"]}]}`; - p2pcf.broadcast(new TextEncoder().encode(message)); - } - let rotatingPlayer = scene.getObjectByName("playerOne"); - const euler = new THREE.Euler(); - const rotation = euler.setFromQuaternion(controlsRef.current.camera.quaternion); - const radians = rotation.z > 0 - ? rotation.z - : (2 * Math.PI) + rotation.z; - const degrees = THREE.MathUtils.radToDeg(radians); - rotatingPlayer.rotation.set(0, radians, 0); - }} - ref={ controlsRef } - /> - ); -}; - -export default Controls; + const p2pcf = window.p2pcf + const controlsRef = useRef() + const isLocked = useRef(false) + const [lock, setLock] = useState(false) + const [moveForward, setMoveForward] = useState(false) + const [moveBackward, setMoveBackward] = useState(false) + const [moveLeft, setMoveLeft] = useState(false) + const [moveRight, setMoveRight] = useState(false) + const [spawnPos, setSpawnPos] = useState() + const [jump, setJump] = useState(false) + const currentRigidbody = useRigidBody() + const { world, rapier } = useRapier() + let ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }) + const { camera, scene } = useThree() + + useEffect(() => { + setSpawnPos(props.spawnPoint) + }, []) + + useFrame(() => { + const playerThing = world.getRigidBody(props.something.current.handle) + const playerThingColliders = world.getCollider( + props.something.current.handle + ) + + // playerThing.restrictRotations({enableX: false, enableY: false, enableZ: false}, true); + //maybebringthemback + // playerThing.lockRotations(true, true); + if (lock) { + playerThing.setBodyType(1) + } else { + playerThing.setBodyType(0) + } + // playerThing.setRotation({x: Math.radToDeg(controlsRef.current.camera.rotation.x), y: Math.radToDeg(controlsRef.current.camera.rotation.y), z: Math.radToDeg(controlsRef.current.camera.rotation.z), w: 0}, true); + ray.origin.x = playerThing.translation().x + ray.origin.y = playerThing.translation().y + ray.origin.z = playerThing.translation().z + const velocity = 0.25 + world.raw().step() + let maxToi = 14 + let solid = true + + if (moveForward) { + // playerThing.applyImpulse({x:0, y:0, z:0.1}, true); + controlsRef.current.moveForward(velocity) + let hit = world + .raw() + .queryPipeline.castRay( + world.raw().colliders, + ray, + maxToi, + solid, + 0xfffffffff + ) + playerThing.lockRotations(true, true) + // playerThing.setRotation({x: 0, y: 1, z: 0, w: 0}, true); + + if (hit) { + let hitPoint = ray.pointAt(hit.toi) + playerThing.setTranslation({ + x: controlsRef.current.camera.position.x, + y: hitPoint.y, + z: controlsRef.current.camera.position.z + }) + camera.position.setY(hitPoint.y + 0.001) + } + if (p2pcf) { + let position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ] + let rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ] + let message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}` + p2pcf.broadcast(new TextEncoder().encode(message)) + } + } else if (moveLeft) { + playerThing.lockRotations(true, true) + // playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); + controlsRef.current.moveRight(-velocity) + let hit = world + .raw() + .queryPipeline.castRay( + world.raw().colliders, + ray, + maxToi, + solid, + 0xfffffffff + ) + + if (hit) { + let hitPoint = ray.pointAt(hit.toi) // Same as: `ray.origin + ray.dir * toi` + playerThing.setTranslation({ + x: controlsRef.current.camera.position.x, + y: hitPoint.y, + z: controlsRef.current.camera.position.z + }) + } + if (p2pcf) { + let position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ] + let rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ] + let message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}` + p2pcf.broadcast(new TextEncoder().encode(message)) + } + } else if (moveBackward) { + playerThing.lockRotations(true, true) + // playerThing.setRotation({x: 0, y: 0, z: 0, w: -1}, true); + + controlsRef.current.moveForward(-velocity) + let hit = world + .raw() + .queryPipeline.castRay( + world.raw().colliders, + ray, + maxToi, + solid, + 0xfffffffff + ) + + if (hit) { + let hitPoint = ray.pointAt(hit.toi) // Same as: `ray.origin + ray.dir * toi` + playerThing.setTranslation({ + x: controlsRef.current.camera.position.x, + y: hitPoint.y, + z: controlsRef.current.camera.position.z + }) + } + if (p2pcf) { + let position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ] + let rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ] + let message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}` + p2pcf.broadcast(new TextEncoder().encode(message)) + } + } else if (moveRight) { + playerThing.lockRotations(true, true) + // playerThing.setRotation({x: 0, y: 0.707107, z: 0, w: 0.707107}, true); + + controlsRef.current.moveRight(velocity) + let hit = world + .raw() + .queryPipeline.castRay( + world.raw().colliders, + ray, + maxToi, + solid, + 0xfffffffff + ) + + if (hit) { + let hitPoint = ray.pointAt(hit.toi) // Same as: `ray.origin + ray.dir * toi` + playerThing.setTranslation({ + x: controlsRef.current.camera.position.x, + y: hitPoint.y, + z: controlsRef.current.camera.position.z + }) + } + // rigidBody.applyImpulse(controlsRef.current.vec); + if (p2pcf) { + let position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ] + let rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ] + let message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}` + p2pcf.broadcast(new TextEncoder().encode(message)) + } + } else if (jump) { + } + }) + + const onKeyDown = function (event) { + switch (event.code) { + case "ArrowUp": + case "KeyW": + setMoveForward(true) + setLock(false) + break + + case "ArrowLeft": + case "KeyA": + setMoveLeft(true) + setLock(false) + break + + case "ArrowDown": + case "KeyS": + setMoveBackward(true) + setLock(false) + break + + case "ArrowRight": + case "KeyD": + setMoveRight(true) + setLock(false) + break + case "Space": + // camera.position.set(spawnPos[0], spawnPos[1], spawnPos[2]); + controlsRef.current.camera.position.set( + spawnPos[0], + spawnPos[1], + spawnPos[2] + ) + setLock(false) + window.addEventListener("keydown", (e) => { + if (e.keyCode === 32 && e.target === document.body) { + e.preventDefault() + } + }) + setJump(true) + break + default: + return + } + } + + const onKeyUp = function (event, props) { + switch (event.code) { + case "ArrowUp": + case "KeyW": + setMoveForward(false) + setLock(true) + break + + case "ArrowLeft": + case "KeyA": + setMoveLeft(false) + setLock(true) + break + + case "ArrowDown": + case "KeyS": + setMoveBackward(false) + setLock(true) + break + + case "Space": + setJump(false) + setLock(true) + break + + case "ArrowRight": + case "KeyD": + setMoveRight(false) + setLock(true) + break + + default: + return + } + } + + document.addEventListener("keydown", onKeyDown) + document.addEventListener("keyup", onKeyUp) + return ( + { + if (controlsRef.current) { + controlsRef.current.addEventListener("lock", () => { + console.log("lock") + isLocked.current = true + }) + controlsRef.current.addEventListener("unlock", () => { + console.log("unlock") + isLocked.current = false + }) + } + }} + onChange={() => { + if (p2pcf && controlsRef) { + let position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ] + let rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ] + let message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}` + p2pcf.broadcast(new TextEncoder().encode(message)) + } + let rotatingPlayer = scene.getObjectByName("playerOne") + const euler = new THREE.Euler() + const rotation = euler.setFromQuaternion( + controlsRef.current.camera.quaternion + ) + const radians = rotation.z > 0 ? rotation.z : 2 * Math.PI + rotation.z + const degrees = THREE.MathUtils.radToDeg(radians) + rotatingPlayer.rotation.set(0, radians, 0) + }} + ref={controlsRef} + /> + ) +} + +export default Controls diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 528ee40..8ae18ee 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -515,8 +515,8 @@ function SavedObject( props ) { if(item.isObject3D){ const mixer = new THREE.AnimationMixer(gltf.scene); - var pos = new THREE.Vector3(); // create once an reuse it - var quat = new THREE.Quaternion(); // create once an reuse it + var pos = new THREE.Vector3(); + var quat = new THREE.Quaternion(); var rotation = new THREE.Euler(); var quaternion = item.getWorldQuaternion(quat); var finalRotation = rotation.setFromQuaternion(quaternion); @@ -525,8 +525,8 @@ function SavedObject( props ) { } })} { portals && portals.map((item, index)=>{ - var pos = new THREE.Vector3(); // create once an reuse it - var quat = new THREE.Quaternion(); // create once an reuse it + var pos = new THREE.Vector3(); + var quat = new THREE.Quaternion(); var rotation = new THREE.Euler(); let position = item.getWorldPosition(pos); var quaternion = item.getWorldQuaternion(quat); diff --git a/package.json b/package.json index 512bf4c..3096d15 100644 --- a/package.json +++ b/package.json @@ -17,10 +17,12 @@ "devDependencies": { "@babel/core": "^7", "@testing-library/react": "^12", + "@wordpress/eslint-plugin": "^13.5.0", "@wordpress/scripts": "^16", "airtap": "^4.0.4", "browserify": "^17.0.0", "esbuild": "^0.15.5", + "eslint": "^8.7.0", "lint-staged": "^13.0.3", "prettier": "^2.7.1", "prettier-standard": "^16.4.1", diff --git a/yarn.lock b/yarn.lock index 30fa4ed..f3bc496 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1030,6 +1030,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.18.9": + version "7.20.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" + integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== + dependencies: + regenerator-runtime "^0.13.10" + "@babel/runtime@^7.8.7": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" @@ -1241,6 +1248,15 @@ esquery "^1.4.0" jsdoc-type-pratt-parser "1.1.1" +"@es-joy/jsdoccomment@~0.20.1": + version "0.20.1" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz#fe89f435f045ae5aaf89c7a4df3616c03e9d106e" + integrity sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ== + dependencies: + comment-parser "1.3.0" + esquery "^1.4.0" + jsdoc-type-pratt-parser "~2.2.3" + "@esbuild/linux-loong64@0.15.5": version "0.15.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz#91aef76d332cdc7c8942b600fa2307f3387e6f82" @@ -1276,6 +1292,21 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/eslintrc@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" + integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.15.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + "@gar/promisify@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -1361,6 +1392,15 @@ debug "^4.1.1" minimatch "^3.0.4" +"@humanwhocodes/config-array@^0.11.6": + version "0.11.7" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz#38aec044c6c828f6ed51d5d7ae3d9b9faf6dbb0f" + integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + "@humanwhocodes/config-array@^0.5.0": version "0.5.0" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" @@ -1375,6 +1415,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "@humanwhocodes/object-schema@^1.2.0", "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -1603,7 +1648,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -2123,7 +2168,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== @@ -2258,6 +2303,11 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -2339,6 +2389,21 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/eslint-plugin@^5.3.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.0.tgz#36a8c0c379870127059889a9cc7e05c260d2aaa5" + integrity sha512-5TJh2AgL6+wpL8H/GTSjNb4WrjKoR2rqvFxR/DDTqYNk6uXn8BJMEcncLSpMbf/XV1aS0jAjYwn98uvVCiAywQ== + dependencies: + "@typescript-eslint/scope-manager" "5.42.0" + "@typescript-eslint/type-utils" "5.42.0" + "@typescript-eslint/utils" "5.42.0" + debug "^4.3.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + regexpp "^3.2.0" + semver "^7.3.7" + tsutils "^3.21.0" + "@typescript-eslint/experimental-utils@4.33.0", "@typescript-eslint/experimental-utils@^4.0.1": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" @@ -2351,6 +2416,13 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" +"@typescript-eslint/experimental-utils@^5.0.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.42.0.tgz#a2b6b24c75bf41ce22501f8669082efdac689909" + integrity sha512-B51HySW9wWIwLantEMqJi0FXVp1IMKRAyNASrYhJV3/nl4r6aEz6FJTJtscgu7YrGWigs7OypQExmcVqGQoDFQ== + dependencies: + "@typescript-eslint/utils" "5.42.0" + "@typescript-eslint/parser@^4.31.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" @@ -2361,6 +2433,16 @@ "@typescript-eslint/typescript-estree" "4.33.0" debug "^4.3.1" +"@typescript-eslint/parser@^5.3.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.42.0.tgz#be0ffbe279e1320e3d15e2ef0ad19262f59e9240" + integrity sha512-Ixh9qrOTDRctFg3yIwrLkgf33AHyEIn6lhyf5cCfwwiGtkWhNpVKlEZApi3inGQR/barWnY7qY8FbGKBO7p3JA== + dependencies: + "@typescript-eslint/scope-manager" "5.42.0" + "@typescript-eslint/types" "5.42.0" + "@typescript-eslint/typescript-estree" "5.42.0" + debug "^4.3.4" + "@typescript-eslint/scope-manager@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" @@ -2369,11 +2451,34 @@ "@typescript-eslint/types" "4.33.0" "@typescript-eslint/visitor-keys" "4.33.0" +"@typescript-eslint/scope-manager@5.42.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.42.0.tgz#e1f2bb26d3b2a508421ee2e3ceea5396b192f5ef" + integrity sha512-l5/3IBHLH0Bv04y+H+zlcLiEMEMjWGaCX6WyHE5Uk2YkSGAMlgdUPsT/ywTSKgu9D1dmmKMYgYZijObfA39Wow== + dependencies: + "@typescript-eslint/types" "5.42.0" + "@typescript-eslint/visitor-keys" "5.42.0" + +"@typescript-eslint/type-utils@5.42.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.42.0.tgz#4206d7192d4fe903ddf99d09b41d4ac31b0b7dca" + integrity sha512-HW14TXC45dFVZxnVW8rnUGnvYyRC0E/vxXShFCthcC9VhVTmjqOmtqj6H5rm9Zxv+ORxKA/1aLGD7vmlLsdlOg== + dependencies: + "@typescript-eslint/typescript-estree" "5.42.0" + "@typescript-eslint/utils" "5.42.0" + debug "^4.3.4" + tsutils "^3.21.0" + "@typescript-eslint/types@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== +"@typescript-eslint/types@5.42.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.42.0.tgz#5aeff9b5eced48f27d5b8139339bf1ef805bad7a" + integrity sha512-t4lzO9ZOAUcHY6bXQYRuu+3SSYdD9TS8ooApZft4WARt4/f2Cj/YpvbTe8A4GuhT4bNW72goDMOy7SW71mZwGw== + "@typescript-eslint/typescript-estree@2.6.1": version "2.6.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.1.tgz#fb363dd4ca23384745c5ea4b7f4c867432b00d31" @@ -2399,6 +2504,33 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.42.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.0.tgz#2592d24bb5f89bf54a63384ff3494870f95b3fd8" + integrity sha512-2O3vSq794x3kZGtV7i4SCWZWCwjEtkWfVqX4m5fbUBomOsEOyd6OAD1qU2lbvV5S8tgy/luJnOYluNyYVeOTTg== + dependencies: + "@typescript-eslint/types" "5.42.0" + "@typescript-eslint/visitor-keys" "5.42.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.42.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.42.0.tgz#f06bd43b9a9a06ed8f29600273240e84a53f2f15" + integrity sha512-JZ++3+h1vbeG1NUECXQZE3hg0kias9kOtcQr3+JVQ3whnjvKuMyktJAAIj6743OeNPnGBmjj7KEmiDL7qsdnCQ== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.42.0" + "@typescript-eslint/types" "5.42.0" + "@typescript-eslint/typescript-estree" "5.42.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + "@typescript-eslint/visitor-keys@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" @@ -2407,6 +2539,14 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" +"@typescript-eslint/visitor-keys@5.42.0": + version "5.42.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.0.tgz#ee8d62d486f41cfe646632fab790fbf0c1db5bb0" + integrity sha512-QHbu5Hf/2lOEOwy+IUw0GoSCuAzByTAWWrOTKzTzsotiUnWFpuKnXcAhC9YztAf2EElQ0VvIK+pHJUPkM0q7jg== + dependencies: + "@typescript-eslint/types" "5.42.0" + eslint-visitor-keys "^3.3.0" + "@use-gesture/core@10.2.11": version "10.2.11" resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.11.tgz#914c36f190bcf452500d11a11fc294fe56e5dc2f" @@ -2621,6 +2761,11 @@ resolved "https://registry.yarnpkg.com/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-3.1.2.tgz#71596ae30b390ddb23680147011a26dce11f88e1" integrity sha512-oMJnM3cJlu1hQMO4XmTFDhNPclj0cLRIeV5Y6uIF/9oNhhSfaMFu+ty0B4zBYodqwes/vbndwRg4j2q2bhG/Dg== +"@wordpress/babel-plugin-import-jsx-pragma@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.4.0.tgz#96e705f1e947336065540d7e08aa4db49151a43b" + integrity sha512-4bePHGzOjGmJzuq81kSPSinsrKclMQEoaNqZFVzP0vOwvv9eTiBjsoFPQEu4jdIBb9A9wGOYmTK0TO10pV1KlQ== + "@wordpress/babel-preset-default@^6.2.1": version "6.8.0" resolved "https://registry.yarnpkg.com/@wordpress/babel-preset-default/-/babel-preset-default-6.8.0.tgz#76a6ae40d2fd866e8b72504d4a5f783e414b0962" @@ -2639,6 +2784,24 @@ browserslist "^4.17.6" core-js "^3.19.1" +"@wordpress/babel-preset-default@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@wordpress/babel-preset-default/-/babel-preset-default-7.5.0.tgz#a800f401f6a88d05a9c13db9d73a1cede0e03eff" + integrity sha512-TVHLyoypYu7s7JyasYNw/OU4iqlPNrOYVYD3YMsVriKxT6Oql0L6YRuWdIEmmxwj3Hsr/QcJijx7Dk2f3m6+Nw== + dependencies: + "@babel/core" "^7.16.0" + "@babel/plugin-transform-react-jsx" "^7.16.0" + "@babel/plugin-transform-runtime" "^7.16.0" + "@babel/preset-env" "^7.16.0" + "@babel/preset-typescript" "^7.16.0" + "@babel/runtime" "^7.16.0" + "@wordpress/babel-plugin-import-jsx-pragma" "^4.4.0" + "@wordpress/browserslist-config" "^5.4.0" + "@wordpress/element" "^4.19.0" + "@wordpress/warning" "^2.21.0" + browserslist "^4.17.6" + core-js "^3.19.1" + "@wordpress/base-styles@^4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@wordpress/base-styles/-/base-styles-4.3.0.tgz#606ddb7c98253d9602eae25dd305c1b2b92b6f47" @@ -2764,6 +2927,11 @@ resolved "https://registry.yarnpkg.com/@wordpress/browserslist-config/-/browserslist-config-4.1.2.tgz#3d33e6316af269f2478bd6b0923aadd73cb08612" integrity sha512-UH0Ifmm4tEjVPOtiqH6yxDvk2EKtqSAhnyhyfSIb0wUnEoGsWTjREZjzuhgjt/I2nTqfg+0gUSzL5D0yQH6wDQ== +"@wordpress/browserslist-config@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@wordpress/browserslist-config/-/browserslist-config-5.4.0.tgz#88024d8604309d88560524a60cc7cf2471cc772d" + integrity sha512-pMDzct5d8vqljwXquo9pQxlbjuDQNfY/g+Aw21qBvzXDApmXQHasr0aritkQkC7yLrk6DoEY5C8+hqzsDW18Gg== + "@wordpress/components@^14", "@wordpress/components@^14.2.0": version "14.2.0" resolved "https://registry.yarnpkg.com/@wordpress/components/-/components-14.2.0.tgz#fa7c6ed96fb8ec98e05a04f8c0a7b583a84cd56f" @@ -2948,6 +3116,20 @@ react "^17.0.1" react-dom "^17.0.1" +"@wordpress/element@^4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-4.19.0.tgz#c5573ea86e1385e7d66c41c6507a0456e899fc0a" + integrity sha512-5Ul1cpbtgagq0NV6hUiwszeiXtKFa06Po51PGvza62KylCIHCLF2ZlaY2zjeGLO10gKKKpCi7jRODFqOvWH3hQ== + dependencies: + "@babel/runtime" "^7.16.0" + "@types/react" "^17.0.37" + "@types/react-dom" "^17.0.11" + "@wordpress/escape-html" "^2.21.0" + change-case "^4.1.2" + is-plain-object "^5.0.0" + react "^17.0.2" + react-dom "^17.0.2" + "@wordpress/element@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-4.4.0.tgz#2d5b870da913f2dc74002d3be80b4d0f20716578" @@ -2968,6 +3150,35 @@ dependencies: "@babel/runtime" "^7.16.0" +"@wordpress/escape-html@^2.21.0": + version "2.21.0" + resolved "https://registry.yarnpkg.com/@wordpress/escape-html/-/escape-html-2.21.0.tgz#236f1e258485b4879827f47974ae9c81d72218a0" + integrity sha512-P/9wUbIVQPO9gdxeosfYRqiAFQPW0AGy7amaMuHNMICleZflQ79pfvEZV7V8c8ke2VjXcQ3QWHt+mDbyGTT7hg== + dependencies: + "@babel/runtime" "^7.16.0" + +"@wordpress/eslint-plugin@^13.5.0": + version "13.5.0" + resolved "https://registry.yarnpkg.com/@wordpress/eslint-plugin/-/eslint-plugin-13.5.0.tgz#2b81af472fc53195e84343e1ee56c1a580aab6e5" + integrity sha512-IVNSRRQgWnYlWJ+p+IQj2HrklDHMIvKSo1wF71/IEIe8W9s46sLq81zEltohIK8FNLh5NPslJGmJ5rdmW18Lhg== + dependencies: + "@babel/eslint-parser" "^7.16.0" + "@typescript-eslint/eslint-plugin" "^5.3.0" + "@typescript-eslint/parser" "^5.3.0" + "@wordpress/babel-preset-default" "^7.5.0" + "@wordpress/prettier-config" "^2.4.0" + cosmiconfig "^7.0.0" + eslint-config-prettier "^8.3.0" + eslint-plugin-import "^2.25.2" + eslint-plugin-jest "^25.2.3" + eslint-plugin-jsdoc "^37.0.3" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-prettier "^3.3.0" + eslint-plugin-react "^7.27.0" + eslint-plugin-react-hooks "^4.3.0" + globals "^13.12.0" + requireindex "^1.2.0" + "@wordpress/eslint-plugin@^9.0.6": version "9.3.0" resolved "https://registry.yarnpkg.com/@wordpress/eslint-plugin/-/eslint-plugin-9.3.0.tgz#9099ed6f7c6f80a5653a79a3e0a0165c48fb5b79" @@ -3103,6 +3314,11 @@ resolved "https://registry.yarnpkg.com/@wordpress/prettier-config/-/prettier-config-1.1.3.tgz#4339ff68f7db37044af911de80f2413d1e8ad193" integrity sha512-0ogGFvywFxVVhw5rXZUCDCV7aaw2KII5a3Xy0t1CAJYBP1TCF7tPNZIRyGD4bPzm5FM6IjmUMyB6NPzwRnpXrg== +"@wordpress/prettier-config@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@wordpress/prettier-config/-/prettier-config-2.4.0.tgz#b5177b8d459d941ca7acccb1c736731b939b7b6c" + integrity sha512-M1Inh8OvnfeBgwrxC9l1q+eK6CRP7gqIE3ZMt7oJ7GmvSeRD5ldfC+zGOqONrZ/SJ1Vj3njGSPDngtx8FNnIaQ== + "@wordpress/primitives@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@wordpress/primitives/-/primitives-2.2.0.tgz#a813c3d8a43ad1f873b8e53f0b125cb8832273b0" @@ -3244,6 +3460,11 @@ resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-2.6.0.tgz#db1e39671910f1f7b31e81c27a25fd40200f4b82" integrity sha512-VWdFzDXt0ZQydNvvl0qjlPbqsCA7ZPupwV6U3gMnvMxELirAGONF0zjlD9/y+u7WGndRctzIJC/Er7qBhHVcNA== +"@wordpress/warning@^2.21.0": + version "2.21.0" + resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-2.21.0.tgz#e0f20ff6998663ce98771b4bf0f17df7378a792e" + integrity sha512-XE6ZTcogFA2+geSQRdnFABuNp2/IP/3fe2sndQzt5Fk7CHuEcEjVSS+SI5ywnzAu9g1qbD2X1t5CE77DtZ6w7A== + "@wordpress/wordcount@^3.2.0": version "3.6.0" resolved "https://registry.yarnpkg.com/@wordpress/wordcount/-/wordcount-3.6.0.tgz#187de9d76c32a4318c87cc3ac0ace87686e52bfe" @@ -3891,6 +4112,11 @@ axe-core@^4.3.5: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== +axe-core@^4.4.3: + version "4.5.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.5.1.tgz#04d561c11b6d76d096d34e9d14ba2c294fb20cdc" + integrity sha512-1exVbW0X1O/HSr/WMwnaweyqcWOgZgLiVxdLG34pvSQk4NlYQr9OUy0JLwuhFfuVNQzzqgH57eYzkFBCb3bIsQ== + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -4651,6 +4877,14 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -4683,6 +4917,15 @@ caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -4736,6 +4979,24 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -5120,6 +5381,11 @@ comment-parser@1.2.4: resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.2.4.tgz#489f3ee55dfd184a6e4bffb31baba284453cb760" integrity sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw== +comment-parser@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.0.tgz#68beb7dbe0849295309b376406730cd16c719c44" + integrity sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA== + common-shakeify@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/common-shakeify/-/common-shakeify-1.1.1.tgz#b8ceff048db5dbfa7704ce83f0c993f560c73fa3" @@ -5206,6 +5472,15 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/consolidated-events/-/consolidated-events-2.0.2.tgz#da8d8f8c2b232831413d9e190dc11669c79f4a91" integrity sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ== +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + constants-browserify@^1.0.0, constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -5560,7 +5835,7 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" -damerau-levenshtein@^1.0.7: +damerau-levenshtein@^1.0.7, damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== @@ -5613,7 +5888,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -5986,6 +6261,14 @@ domutils@^2.5.2, domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dotignore@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" @@ -6621,6 +6904,11 @@ eslint-config-prettier@^7.1.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9" integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== +eslint-config-prettier@^8.3.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + eslint-config-standard-jsx@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz#70852d395731a96704a592be5b0bfaccfeded239" @@ -6681,6 +6969,13 @@ eslint-plugin-jest@^24.1.3: dependencies: "@typescript-eslint/experimental-utils" "^4.0.1" +eslint-plugin-jest@^25.2.3: + version "25.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" + integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== + dependencies: + "@typescript-eslint/experimental-utils" "^5.0.0" + eslint-plugin-jsdoc@^36.0.8: version "36.1.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.1.1.tgz#124cd0e53a5d07f01ebde916a96dd1a6009625d6" @@ -6696,6 +6991,20 @@ eslint-plugin-jsdoc@^36.0.8: semver "^7.3.5" spdx-expression-parse "^3.0.1" +eslint-plugin-jsdoc@^37.0.3: + version "37.9.7" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz#ef46141aa2e5fcbb89adfa658eef8126435e9eac" + integrity sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g== + dependencies: + "@es-joy/jsdoccomment" "~0.20.1" + comment-parser "1.3.0" + debug "^4.3.3" + escape-string-regexp "^4.0.0" + esquery "^1.4.0" + regextras "^0.8.0" + semver "^7.3.5" + spdx-expression-parse "^3.0.1" + eslint-plugin-jsx-a11y@^6.4.1: version "6.5.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" @@ -6714,6 +7023,25 @@ eslint-plugin-jsx-a11y@^6.4.1: language-tags "^1.0.5" minimatch "^3.0.4" +eslint-plugin-jsx-a11y@^6.5.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff" + integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q== + dependencies: + "@babel/runtime" "^7.18.9" + aria-query "^4.2.2" + array-includes "^3.1.5" + ast-types-flow "^0.0.7" + axe-core "^4.4.3" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + has "^1.0.3" + jsx-ast-utils "^3.3.2" + language-tags "^1.0.5" + minimatch "^3.1.2" + semver "^6.3.0" + eslint-plugin-markdown@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz#79274bf17ce3ead48e4a55cbcb6d7ce735754280" @@ -6754,6 +7082,11 @@ eslint-plugin-react-hooks@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz#71c39e528764c848d8253e1aa2c7024ed505f6c4" integrity sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ== +eslint-plugin-react-hooks@^4.3.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + eslint-plugin-react@^7.22.0: version "7.29.4" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz#4717de5227f55f3801a5fd51a16a4fa22b5914d2" @@ -6774,6 +7107,26 @@ eslint-plugin-react@^7.22.0: semver "^6.3.0" string.prototype.matchall "^4.0.6" +eslint-plugin-react@^7.27.0: + version "7.31.10" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz#6782c2c7fe91c09e715d536067644bbb9491419a" + integrity sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA== + dependencies: + array-includes "^3.1.5" + array.prototype.flatmap "^1.3.0" + doctrine "^2.1.0" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.5" + object.fromentries "^2.0.5" + object.hasown "^1.1.1" + object.values "^1.1.5" + prop-types "^15.8.1" + resolve "^2.0.0-next.3" + semver "^6.3.0" + string.prototype.matchall "^4.0.7" + eslint-plugin-react@^7.28.0: version "7.30.1" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22" @@ -6988,6 +7341,51 @@ eslint@^8.13.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" +eslint@^8.7.0: + version "8.26.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" + integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== + dependencies: + "@eslint/eslintrc" "^1.3.3" + "@humanwhocodes/config-array" "^0.11.6" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.15.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + espree@^6.1.2: version "6.2.1" resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" @@ -7015,6 +7413,15 @@ espree@^9.3.2, espree@^9.3.3: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" +espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -7978,7 +8385,7 @@ glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.1, glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -8106,7 +8513,7 @@ globals@^12.0.0, globals@^12.1.0: dependencies: type-fest "^0.8.1" -globals@^13.15.0: +globals@^13.12.0, globals@^13.15.0: version "13.17.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== @@ -8374,6 +8781,14 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + highlight-words-core@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/highlight-words-core/-/highlight-words-core-1.2.2.tgz#1eff6d7d9f0a22f155042a00791237791b1eeaaa" @@ -9066,7 +9481,7 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" -is-path-inside@^3.0.1: +is-path-inside@^3.0.1, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -9093,6 +9508,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -9769,6 +10189,11 @@ js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== +js-sdsl@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" + integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -9812,6 +10237,11 @@ jsdoc-type-pratt-parser@^1.1.1: resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.2.0.tgz#3482a3833b74a88c95a6ba7253f0c0de3b77b9f5" integrity sha512-4STjeF14jp4bqha44nKMY1OUI6d2/g6uclHWUCZ7B4DoLzaB5bmpTkQrpqU+vSVzMD0LsKAOskcnI3I3VfIpmg== +jsdoc-type-pratt-parser@~2.2.3: + version "2.2.5" + resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz#c9f93afac7ee4b5ed4432fe3f09f7d36b05ed0ff" + integrity sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw== + jsdom@^16.4.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -9959,6 +10389,14 @@ jsprim@^1.2.2: array-includes "^3.1.4" object.assign "^4.1.2" +jsx-ast-utils@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== + dependencies: + array-includes "^3.1.5" + object.assign "^4.1.3" + kind-of@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" @@ -10420,6 +10858,13 @@ loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + lru-cache@^4.0.1, lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -10846,7 +11291,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -11148,6 +11593,11 @@ nanoresource@^1.3.0: dependencies: inherits "^2.0.4" +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -11183,6 +11633,14 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + node-fetch@^2.6.1: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -11725,6 +12183,14 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -11826,6 +12292,14 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -11841,6 +12315,14 @@ path-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -12965,6 +13447,11 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== +regenerator-runtime@^0.13.10: + version "0.13.10" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" + integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" @@ -13582,6 +14069,15 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -13791,6 +14287,14 @@ slice-ansi@^5.0.0: ansi-styles "^6.0.0" is-fullwidth-code-point "^4.0.0" +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -15133,6 +15637,11 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.3: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + tslib@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" @@ -15538,6 +16047,20 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" From 42e8abf93bcfeb0624c5ddc2d24ae08e9a00e1d2 Mon Sep 17 00:00:00 2001 From: antpb Date: Sat, 5 Nov 2022 21:10:25 -0500 Subject: [PATCH 44/48] prettier --- .prettierrc | 2 +- .vscode/settings.json | 10 +- blocks/environment/Edit.js | 294 +- blocks/environment/Save.js | 36 +- blocks/environment/components/Controls.js | 697 +++-- blocks/environment/components/EditControls.js | 139 +- .../components/EnvironmentFront.js | 2246 ++++++++++------ blocks/environment/components/Networking.js | 239 +- blocks/environment/components/Player.js | 99 +- .../environment/components/TeleportTravel.js | 92 +- .../environment/components/ThreeObjectEdit.js | 1469 ++++++---- blocks/environment/components/p2pcf/p2pcf.js | 2377 +++++++++-------- blocks/environment/frontend.js | 148 +- blocks/environment/index.js | 212 +- blocks/model-block/Edit.js | 398 ++- blocks/model-block/Edit.test.js | 88 +- blocks/model-block/Save.js | 50 +- blocks/model-block/components/ModelEdit.js | 149 +- blocks/model-block/index.js | 212 +- blocks/sky-block/Edit.js | 244 +- blocks/sky-block/Edit.test.js | 88 +- blocks/sky-block/Save.js | 12 +- blocks/sky-block/index.js | 212 +- blocks/spawn-point-block/Edit.js | 127 +- blocks/spawn-point-block/Edit.test.js | 88 +- blocks/spawn-point-block/Save.js | 20 +- blocks/spawn-point-block/index.js | 212 +- blocks/three-audio-block/Edit.js | 616 +++-- blocks/three-audio-block/Edit.test.js | 88 +- blocks/three-audio-block/Save.js | 41 +- blocks/three-audio-block/index.js | 212 +- blocks/three-html-block/Edit.js | 378 ++- blocks/three-html-block/Edit.test.js | 88 +- blocks/three-html-block/Save.js | 24 +- .../three-html-block/components/ModelEdit.js | 149 +- blocks/three-html-block/index.js | 212 +- blocks/three-image-block/Edit.js | 391 ++- blocks/three-image-block/Edit.test.js | 88 +- blocks/three-image-block/Save.js | 41 +- .../three-image-block/components/ImageEdit.js | 84 +- blocks/three-image-block/index.js | 212 +- blocks/three-portal-block/Edit.js | 468 ++-- blocks/three-portal-block/Edit.test.js | 88 +- blocks/three-portal-block/Save.js | 64 +- blocks/three-portal-block/index.js | 212 +- blocks/three-video-block/Edit.js | 369 ++- blocks/three-video-block/Edit.test.js | 88 +- blocks/three-video-block/Save.js | 41 +- blocks/three-video-block/index.js | 212 +- 49 files changed, 7509 insertions(+), 6617 deletions(-) diff --git a/.prettierrc b/.prettierrc index a76827a..b011a6f 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,5 @@ { - "semi": false, + "semi": true, "singleQuote": false, "trailingComma": "none" } diff --git a/.vscode/settings.json b/.vscode/settings.json index a420677..15d3670 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,10 +1,6 @@ { "editor.defaultFormatter": "rvest.vs-code-prettier-eslint", - "editor.formatOnPaste": false, // required - "editor.formatOnType": false, // required - "editor.formatOnSave": true, // optional - "editor.formatOnSaveMode": "file", // required to format on save - "files.autoSave": "onFocusChange", // optional but recommended - "editor.insertSpaces": false, - "prettier.useTabs": true + "editor.codeActionsOnSave": { + "source.fixAll": true + }, } diff --git a/blocks/environment/Edit.js b/blocks/environment/Edit.js index 792cd7a..275308c 100644 --- a/blocks/environment/Edit.js +++ b/blocks/environment/Edit.js @@ -1,14 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, MediaUpload, InnerBlocks -} from '@wordpress/block-editor'; +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -17,66 +16,67 @@ import { ToggleControl, SelectControl, TextControl, -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; + DropZone +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -import ThreeObjectEdit from './components/ThreeObjectEdit'; +import ThreeObjectEdit from "./components/ThreeObjectEdit"; -export default function Edit( { attributes, setAttributes, isSelected } ) { +export default function Edit({ attributes, setAttributes, isSelected }) { const ALLOWED_BLOCKS = allowed_blocks; - const onChangeAnimations = ( animations ) => { - setAttributes( { animations: animations } ); + const onChangeAnimations = (animations) => { + setAttributes({ animations }); }; - const onImageSelect = ( imageObject ) => { - setAttributes( { threeObjectUrl: null } ); - setAttributes( { threeObjectUrl: imageObject.url } ); + const onImageSelect = (imageObject) => { + setAttributes({ threeObjectUrl: null }); + setAttributes({ threeObjectUrl: imageObject.url }); }; - const onPreviewImageSelect = ( imageObject ) => { - setAttributes( { threePreviewImage: null } ); - setAttributes( { threePreviewImage: imageObject.url } ); + const onPreviewImageSelect = (imageObject) => { + setAttributes({ threePreviewImage: null }); + setAttributes({ threePreviewImage: imageObject.url }); }; - const onChangePositionY = ( posy ) => { - setAttributes( { positionY: posy } ); + const onChangePositionY = (posy) => { + setAttributes({ positionY: posy }); }; - const onChangeScale = ( scale ) => { - setAttributes( { scale: scale } ); + const onChangeScale = (scale) => { + setAttributes({ scale }); }; - const onChangerotationY = ( rotz ) => { - setAttributes( { rotationY: rotz } ); + const onChangerotationY = (rotz) => { + setAttributes({ rotationY: rotz }); }; - const setDeviceTarget = ( target ) => { - setAttributes( { deviceTarget: target } ); + const setDeviceTarget = (target) => { + setAttributes({ deviceTarget: target }); }; - const [ enteredURL, setEnteredURL ] = useState( "" ); + const [enteredURL, setEnteredURL] = useState(""); const { mediaUpload } = wp.editor; const ALLOWED_MEDIA_TYPES = [ - 'model/gltf-binary', - 'application/octet-stream', + "model/gltf-binary", + "application/octet-stream" ]; const MyDropZone = () => { - const [ hasDropped, setHasDropped ] = useState( false ); + const [hasDropped, setHasDropped] = useState(false); return (
- { hasDropped ? 'Dropped!' : 'Drop a glb here or' } + {hasDropped ? "Dropped!" : "Drop a glb here or"} - mediaUpload( { + onFilesDrop={(files) => + mediaUpload({ allowedTypes: ALLOWED_MEDIA_TYPES, filesList: files, - onFileChange: ( [ images ] ) => { - onImageSelect( images ); - }, - } ) + onFileChange: ([images]) => { + onImageSelect(images); + } + }) } />
@@ -84,35 +84,37 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { }; return ( -
+
- Select a glb file from your media library. This will be treated as a collidable mesh that visitors can walk on: + Select a glb file from your media library. This + will be treated as a collidable mesh that + visitors can walk on: - onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="image" label="GLB File" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } + )} /> @@ -122,36 +124,42 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { - Preview - onPreviewImageSelect( imageObject ) + onSelect={(imageObject) => + onPreviewImageSelect(imageObject) } type="image" label="Image File" // allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threePreviewImage } - render={ ( { open } ) => ( - - ) } + )} /> Object Display Type: @@ -159,72 +167,66 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { - setDeviceTarget( target ) - } + value={attributes.deviceTarget} + options={[{ label: "VR", value: "vr" }]} + onChange={(target) => setDeviceTarget(target)} /> - onChangeAnimations( value ) - } + value={attributes.animations} + onChange={(value) => onChangeAnimations(value)} /> - { isSelected ? ( + {isSelected ? ( <> - { attributes.threeObjectUrl ? ( + {attributes.threeObjectUrl ? ( ) : ( @@ -244,41 +246,44 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { Use URL
*/} - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } - /> -
+ + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.threeObjectUrl} + render={({ open }) => ( + + )} + /> +
- ) } - + )} + ) : ( <> - { attributes.threeObjectUrl ? ( + {attributes.threeObjectUrl ? ( ) : ( @@ -299,23 +304,26 @@ export default function Edit( { attributes, setAttributes, isSelected } ) {
*/}
- onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } + )} />
- ) } - + )} + - ) } + )}
); } diff --git a/blocks/environment/Save.js b/blocks/environment/Save.js index 7a5fd4d..a5baaef 100644 --- a/blocks/environment/Save.js +++ b/blocks/environment/Save.js @@ -1,40 +1,42 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps, InnerBlocks } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps, InnerBlocks } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>

- { attributes.deviceTarget } + {attributes.deviceTarget}

- { attributes.threeObjectUrl } + {attributes.threeObjectUrl}

-

{ attributes.scale }

+

{attributes.scale}

- { attributes.bg_color } + {attributes.bg_color}

-

{ attributes.zoom }

+

{attributes.zoom}

- { attributes.hasZoom ? 1 : 0 } + {attributes.hasZoom ? 1 : 0}

- { attributes.hasTip ? 1 : 0 } + {attributes.hasTip ? 1 : 0}

- { attributes.positionY } + {attributes.positionY}

- { attributes.rotationY } + {attributes.rotationY} +

+

{attributes.scale}

+

+ {attributes.threePreviewImage}

-

{ attributes.scale }

-

{ attributes.threePreviewImage }

- { attributes.animations } + {attributes.animations}

- +
diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 3a1bd14..5def499 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -1,379 +1,378 @@ -import React, { useEffect, useRef, useState, componentDidMount } from "react" +import React, { useEffect, useRef, useState, componentDidMount } from "react"; // import { Raycaster, Vector3, Math, Euler } from 'three'; -import * as THREE from "three" +import * as THREE from "three"; -import { useFrame, useThree } from "@react-three/fiber" -import { PointerLockControls, OrbitControls } from "@react-three/drei" -import previewOptions from "@wordpress/block-editor/build/components/preview-options" +import { useFrame, useThree } from "@react-three/fiber"; +import { PointerLockControls, OrbitControls } from "@react-three/drei"; +import previewOptions from "@wordpress/block-editor/build/components/preview-options"; import { - RigidBody, - MeshCollider, - useRapier, - BallCollider, - useRigidBody, - RigidBodyApi, - useCollider -} from "@react-three/rapier" + RigidBody, + MeshCollider, + useRapier, + BallCollider, + useRigidBody, + RigidBodyApi, + useCollider +} from "@react-three/rapier"; function touchStarted() { - getAudioContext().resume() + getAudioContext().resume(); } const Controls = (props) => { - const p2pcf = window.p2pcf - const controlsRef = useRef() - const isLocked = useRef(false) - const [lock, setLock] = useState(false) - const [moveForward, setMoveForward] = useState(false) - const [moveBackward, setMoveBackward] = useState(false) - const [moveLeft, setMoveLeft] = useState(false) - const [moveRight, setMoveRight] = useState(false) - const [spawnPos, setSpawnPos] = useState() - const [jump, setJump] = useState(false) - const currentRigidbody = useRigidBody() - const { world, rapier } = useRapier() - let ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }) - const { camera, scene } = useThree() + const p2pcf = window.p2pcf; + const controlsRef = useRef(); + const isLocked = useRef(false); + const [lock, setLock] = useState(false); + const [moveForward, setMoveForward] = useState(false); + const [moveBackward, setMoveBackward] = useState(false); + const [moveLeft, setMoveLeft] = useState(false); + const [moveRight, setMoveRight] = useState(false); + const [spawnPos, setSpawnPos] = useState(); + const [jump, setJump] = useState(false); + const currentRigidbody = useRigidBody(); + const { world, rapier } = useRapier(); + const ray = new rapier.Ray({ x: 0, y: 0, z: 0 }, { x: 0, y: -1, z: 0 }); + const { camera, scene } = useThree(); - useEffect(() => { - setSpawnPos(props.spawnPoint) - }, []) + useEffect(() => { + setSpawnPos(props.spawnPoint); + }, []); - useFrame(() => { - const playerThing = world.getRigidBody(props.something.current.handle) - const playerThingColliders = world.getCollider( - props.something.current.handle - ) + useFrame(() => { + const playerThing = world.getRigidBody(props.something.current.handle); + const playerThingColliders = world.getCollider( + props.something.current.handle + ); - // playerThing.restrictRotations({enableX: false, enableY: false, enableZ: false}, true); - //maybebringthemback - // playerThing.lockRotations(true, true); - if (lock) { - playerThing.setBodyType(1) - } else { - playerThing.setBodyType(0) - } - // playerThing.setRotation({x: Math.radToDeg(controlsRef.current.camera.rotation.x), y: Math.radToDeg(controlsRef.current.camera.rotation.y), z: Math.radToDeg(controlsRef.current.camera.rotation.z), w: 0}, true); - ray.origin.x = playerThing.translation().x - ray.origin.y = playerThing.translation().y - ray.origin.z = playerThing.translation().z - const velocity = 0.25 - world.raw().step() - let maxToi = 14 - let solid = true + // playerThing.restrictRotations({enableX: false, enableY: false, enableZ: false}, true); + //maybebringthemback + // playerThing.lockRotations(true, true); + if (lock) { + playerThing.setBodyType(1); + } else { + playerThing.setBodyType(0); + } + // playerThing.setRotation({x: Math.radToDeg(controlsRef.current.camera.rotation.x), y: Math.radToDeg(controlsRef.current.camera.rotation.y), z: Math.radToDeg(controlsRef.current.camera.rotation.z), w: 0}, true); + ray.origin.x = playerThing.translation().x; + ray.origin.y = playerThing.translation().y; + ray.origin.z = playerThing.translation().z; + const velocity = 0.25; + world.raw().step(); + const maxToi = 14; + const solid = true; - if (moveForward) { - // playerThing.applyImpulse({x:0, y:0, z:0.1}, true); - controlsRef.current.moveForward(velocity) - let hit = world - .raw() - .queryPipeline.castRay( - world.raw().colliders, - ray, - maxToi, - solid, - 0xfffffffff - ) - playerThing.lockRotations(true, true) - // playerThing.setRotation({x: 0, y: 1, z: 0, w: 0}, true); + if (moveForward) { + // playerThing.applyImpulse({x:0, y:0, z:0.1}, true); + controlsRef.current.moveForward(velocity); + const hit = world + .raw() + .queryPipeline.castRay( + world.raw().colliders, + ray, + maxToi, + solid, + 0xfffffffff + ); + playerThing.lockRotations(true, true); + // playerThing.setRotation({x: 0, y: 1, z: 0, w: 0}, true); - if (hit) { - let hitPoint = ray.pointAt(hit.toi) - playerThing.setTranslation({ - x: controlsRef.current.camera.position.x, - y: hitPoint.y, - z: controlsRef.current.camera.position.z - }) - camera.position.setY(hitPoint.y + 0.001) - } - if (p2pcf) { - let position = [ - controlsRef.current.camera.position.x, - controlsRef.current.camera.position.y, - controlsRef.current.camera.position.z - ] - let rotation = [ - controlsRef.current.camera.rotation.x, - controlsRef.current.camera.rotation.y, - controlsRef.current.camera.rotation.z - ] - let message = - `{ "${p2pcf.clientId}": [{ "position" : [` + - position + - `]},{ "rotation" : [` + - rotation + - `]},{ "profileImage" : ["` + - userData.profileImage + - `"]}]}` - p2pcf.broadcast(new TextEncoder().encode(message)) - } - } else if (moveLeft) { - playerThing.lockRotations(true, true) - // playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); - controlsRef.current.moveRight(-velocity) - let hit = world - .raw() - .queryPipeline.castRay( - world.raw().colliders, - ray, - maxToi, - solid, - 0xfffffffff - ) + if (hit) { + const hitPoint = ray.pointAt(hit.toi); + playerThing.setTranslation({ + x: controlsRef.current.camera.position.x, + y: hitPoint.y, + z: controlsRef.current.camera.position.z + }); + camera.position.setY(hitPoint.y + 0.001); + } + if (p2pcf) { + const position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ]; + const rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ]; + const message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); + } + } else if (moveLeft) { + playerThing.lockRotations(true, true); + // playerThing.setRotation({x: 0, y: -0.707107, z: 0, w: 0.707107}, true); + controlsRef.current.moveRight(-velocity); + const hit = world + .raw() + .queryPipeline.castRay( + world.raw().colliders, + ray, + maxToi, + solid, + 0xfffffffff + ); - if (hit) { - let hitPoint = ray.pointAt(hit.toi) // Same as: `ray.origin + ray.dir * toi` - playerThing.setTranslation({ - x: controlsRef.current.camera.position.x, - y: hitPoint.y, - z: controlsRef.current.camera.position.z - }) - } - if (p2pcf) { - let position = [ - controlsRef.current.camera.position.x, - controlsRef.current.camera.position.y, - controlsRef.current.camera.position.z - ] - let rotation = [ - controlsRef.current.camera.rotation.x, - controlsRef.current.camera.rotation.y, - controlsRef.current.camera.rotation.z - ] - let message = - `{ "${p2pcf.clientId}": [{ "position" : [` + - position + - `]},{ "rotation" : [` + - rotation + - `]},{ "profileImage" : ["` + - userData.profileImage + - `"]}]}` - p2pcf.broadcast(new TextEncoder().encode(message)) - } - } else if (moveBackward) { - playerThing.lockRotations(true, true) - // playerThing.setRotation({x: 0, y: 0, z: 0, w: -1}, true); + if (hit) { + const hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` + playerThing.setTranslation({ + x: controlsRef.current.camera.position.x, + y: hitPoint.y, + z: controlsRef.current.camera.position.z + }); + } + if (p2pcf) { + const position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ]; + const rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ]; + const message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); + } + } else if (moveBackward) { + playerThing.lockRotations(true, true); + // playerThing.setRotation({x: 0, y: 0, z: 0, w: -1}, true); - controlsRef.current.moveForward(-velocity) - let hit = world - .raw() - .queryPipeline.castRay( - world.raw().colliders, - ray, - maxToi, - solid, - 0xfffffffff - ) + controlsRef.current.moveForward(-velocity); + const hit = world + .raw() + .queryPipeline.castRay( + world.raw().colliders, + ray, + maxToi, + solid, + 0xfffffffff + ); - if (hit) { - let hitPoint = ray.pointAt(hit.toi) // Same as: `ray.origin + ray.dir * toi` - playerThing.setTranslation({ - x: controlsRef.current.camera.position.x, - y: hitPoint.y, - z: controlsRef.current.camera.position.z - }) - } - if (p2pcf) { - let position = [ - controlsRef.current.camera.position.x, - controlsRef.current.camera.position.y, - controlsRef.current.camera.position.z - ] - let rotation = [ - controlsRef.current.camera.rotation.x, - controlsRef.current.camera.rotation.y, - controlsRef.current.camera.rotation.z - ] - let message = - `{ "${p2pcf.clientId}": [{ "position" : [` + - position + - `]},{ "rotation" : [` + - rotation + - `]},{ "profileImage" : ["` + - userData.profileImage + - `"]}]}` - p2pcf.broadcast(new TextEncoder().encode(message)) - } - } else if (moveRight) { - playerThing.lockRotations(true, true) - // playerThing.setRotation({x: 0, y: 0.707107, z: 0, w: 0.707107}, true); + if (hit) { + const hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` + playerThing.setTranslation({ + x: controlsRef.current.camera.position.x, + y: hitPoint.y, + z: controlsRef.current.camera.position.z + }); + } + if (p2pcf) { + const position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ]; + const rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ]; + const message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); + } + } else if (moveRight) { + playerThing.lockRotations(true, true); + // playerThing.setRotation({x: 0, y: 0.707107, z: 0, w: 0.707107}, true); - controlsRef.current.moveRight(velocity) - let hit = world - .raw() - .queryPipeline.castRay( - world.raw().colliders, - ray, - maxToi, - solid, - 0xfffffffff - ) + controlsRef.current.moveRight(velocity); + const hit = world + .raw() + .queryPipeline.castRay( + world.raw().colliders, + ray, + maxToi, + solid, + 0xfffffffff + ); - if (hit) { - let hitPoint = ray.pointAt(hit.toi) // Same as: `ray.origin + ray.dir * toi` - playerThing.setTranslation({ - x: controlsRef.current.camera.position.x, - y: hitPoint.y, - z: controlsRef.current.camera.position.z - }) - } - // rigidBody.applyImpulse(controlsRef.current.vec); - if (p2pcf) { - let position = [ - controlsRef.current.camera.position.x, - controlsRef.current.camera.position.y, - controlsRef.current.camera.position.z - ] - let rotation = [ - controlsRef.current.camera.rotation.x, - controlsRef.current.camera.rotation.y, - controlsRef.current.camera.rotation.z - ] - let message = - `{ "${p2pcf.clientId}": [{ "position" : [` + - position + - `]},{ "rotation" : [` + - rotation + - `]},{ "profileImage" : ["` + - userData.profileImage + - `"]}]}` - p2pcf.broadcast(new TextEncoder().encode(message)) - } - } else if (jump) { - } - }) + if (hit) { + const hitPoint = ray.pointAt(hit.toi); // Same as: `ray.origin + ray.dir * toi` + playerThing.setTranslation({ + x: controlsRef.current.camera.position.x, + y: hitPoint.y, + z: controlsRef.current.camera.position.z + }); + } + // rigidBody.applyImpulse(controlsRef.current.vec); + if (p2pcf) { + const position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ]; + const rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ]; + const message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); + } + } else if (jump) { + } + }); - const onKeyDown = function (event) { - switch (event.code) { - case "ArrowUp": - case "KeyW": - setMoveForward(true) - setLock(false) - break + const onKeyDown = function (event) { + switch (event.code) { + case "ArrowUp": + case "KeyW": + setMoveForward(true); + setLock(false); + break; - case "ArrowLeft": - case "KeyA": - setMoveLeft(true) - setLock(false) - break + case "ArrowLeft": + case "KeyA": + setMoveLeft(true); + setLock(false); + break; - case "ArrowDown": - case "KeyS": - setMoveBackward(true) - setLock(false) - break + case "ArrowDown": + case "KeyS": + setMoveBackward(true); + setLock(false); + break; - case "ArrowRight": - case "KeyD": - setMoveRight(true) - setLock(false) - break - case "Space": - // camera.position.set(spawnPos[0], spawnPos[1], spawnPos[2]); - controlsRef.current.camera.position.set( - spawnPos[0], - spawnPos[1], - spawnPos[2] - ) - setLock(false) - window.addEventListener("keydown", (e) => { - if (e.keyCode === 32 && e.target === document.body) { - e.preventDefault() - } - }) - setJump(true) - break - default: - return - } - } + case "ArrowRight": + case "KeyD": + setMoveRight(true); + setLock(false); + break; + case "Space": + // camera.position.set(spawnPos[0], spawnPos[1], spawnPos[2]); + controlsRef.current.camera.position.set( + spawnPos[0], + spawnPos[1], + spawnPos[2] + ); + setLock(false); + window.addEventListener("keydown", (e) => { + if (e.keyCode === 32 && e.target === document.body) { + e.preventDefault(); + } + }); + setJump(true); + break; + default: + } + }; - const onKeyUp = function (event, props) { - switch (event.code) { - case "ArrowUp": - case "KeyW": - setMoveForward(false) - setLock(true) - break + const onKeyUp = function (event, props) { + switch (event.code) { + case "ArrowUp": + case "KeyW": + setMoveForward(false); + setLock(true); + break; - case "ArrowLeft": - case "KeyA": - setMoveLeft(false) - setLock(true) - break + case "ArrowLeft": + case "KeyA": + setMoveLeft(false); + setLock(true); + break; - case "ArrowDown": - case "KeyS": - setMoveBackward(false) - setLock(true) - break + case "ArrowDown": + case "KeyS": + setMoveBackward(false); + setLock(true); + break; - case "Space": - setJump(false) - setLock(true) - break + case "Space": + setJump(false); + setLock(true); + break; - case "ArrowRight": - case "KeyD": - setMoveRight(false) - setLock(true) - break + case "ArrowRight": + case "KeyD": + setMoveRight(false); + setLock(true); + break; - default: - return - } - } + default: + } + }; - document.addEventListener("keydown", onKeyDown) - document.addEventListener("keyup", onKeyUp) - return ( - { - if (controlsRef.current) { - controlsRef.current.addEventListener("lock", () => { - console.log("lock") - isLocked.current = true - }) - controlsRef.current.addEventListener("unlock", () => { - console.log("unlock") - isLocked.current = false - }) - } - }} - onChange={() => { - if (p2pcf && controlsRef) { - let position = [ - controlsRef.current.camera.position.x, - controlsRef.current.camera.position.y, - controlsRef.current.camera.position.z - ] - let rotation = [ - controlsRef.current.camera.rotation.x, - controlsRef.current.camera.rotation.y, - controlsRef.current.camera.rotation.z - ] - let message = - `{ "${p2pcf.clientId}": [{ "position" : [` + - position + - `]},{ "rotation" : [` + - rotation + - `]},{ "profileImage" : ["` + - userData.profileImage + - `"]}]}` - p2pcf.broadcast(new TextEncoder().encode(message)) - } - let rotatingPlayer = scene.getObjectByName("playerOne") - const euler = new THREE.Euler() - const rotation = euler.setFromQuaternion( - controlsRef.current.camera.quaternion - ) - const radians = rotation.z > 0 ? rotation.z : 2 * Math.PI + rotation.z - const degrees = THREE.MathUtils.radToDeg(radians) - rotatingPlayer.rotation.set(0, radians, 0) - }} - ref={controlsRef} - /> - ) -} + document.addEventListener("keydown", onKeyDown); + document.addEventListener("keyup", onKeyUp); + return ( + { + if (controlsRef.current) { + controlsRef.current.addEventListener("lock", () => { + console.log("lock"); + isLocked.current = true; + }); + controlsRef.current.addEventListener("unlock", () => { + console.log("unlock"); + isLocked.current = false; + }); + } + }} + onChange={() => { + if (p2pcf && controlsRef) { + const position = [ + controlsRef.current.camera.position.x, + controlsRef.current.camera.position.y, + controlsRef.current.camera.position.z + ]; + const rotation = [ + controlsRef.current.camera.rotation.x, + controlsRef.current.camera.rotation.y, + controlsRef.current.camera.rotation.z + ]; + const message = + `{ "${p2pcf.clientId}": [{ "position" : [` + + position + + `]},{ "rotation" : [` + + rotation + + `]},{ "profileImage" : ["` + + userData.profileImage + + `"]}]}`; + p2pcf.broadcast(new TextEncoder().encode(message)); + } + const rotatingPlayer = scene.getObjectByName("playerOne"); + const euler = new THREE.Euler(); + const rotation = euler.setFromQuaternion( + controlsRef.current.camera.quaternion + ); + const radians = + rotation.z > 0 ? rotation.z : 2 * Math.PI + rotation.z; + const degrees = THREE.MathUtils.radToDeg(radians); + rotatingPlayer.rotation.set(0, radians, 0); + }} + ref={controlsRef} + /> + ); +}; -export default Controls +export default Controls; diff --git a/blocks/environment/components/EditControls.js b/blocks/environment/components/EditControls.js index 1084531..9e1c7ce 100644 --- a/blocks/environment/components/EditControls.js +++ b/blocks/environment/components/EditControls.js @@ -1,120 +1,117 @@ -import React, { useRef, useState } from 'react'; -import { Raycaster, Vector3, Math } from 'three'; +import React, { useRef, useState } from "react"; +import { Raycaster, Vector3, Math } from "three"; -import { useFrame, useThree } from '@react-three/fiber'; -import { PointerLockControls, OrbitControls } from '@react-three/drei'; +import { useFrame, useThree } from "@react-three/fiber"; +import { PointerLockControls, OrbitControls } from "@react-three/drei"; const EditControls = (props) => { const controlsRef = useRef(); - const isLocked = useRef( false ); - const [ moveForward, setMoveForward ] = useState( false ); - const [ moveBackward, setMoveBackward ] = useState( false ); - const [ moveLeft, setMoveLeft ] = useState( false ); - const [ moveRight, setMoveRight ] = useState( false ); - const [ jump, setJump ] = useState( false ); - - useFrame( () => { + const isLocked = useRef(false); + const [moveForward, setMoveForward] = useState(false); + const [moveBackward, setMoveBackward] = useState(false); + const [moveLeft, setMoveLeft] = useState(false); + const [moveRight, setMoveRight] = useState(false); + const [jump, setJump] = useState(false); + + useFrame(() => { const velocity = 0.5; - if ( moveForward ) { + if (moveForward) { // playerThing.applyImpulse({x:0, y:0, z:0.1}, true); - controlsRef.current.moveForward( velocity ); - } else if ( moveLeft ) { - controlsRef.current.moveRight( -velocity ); - } else if ( moveBackward ) { - controlsRef.current.moveForward( -velocity ); - } else if ( moveRight ) { - controlsRef.current.moveRight( velocity ); - } else if ( jump ) { + controlsRef.current.moveForward(velocity); + } else if (moveLeft) { + controlsRef.current.moveRight(-velocity); + } else if (moveBackward) { + controlsRef.current.moveForward(-velocity); + } else if (moveRight) { + controlsRef.current.moveRight(velocity); + } else if (jump) { } - } ); + }); - const onKeyDown = function ( event, props ) { - switch ( event.code ) { - case 'ArrowUp': - case 'KeyW': - setMoveForward( true ); + const onKeyDown = function (event, props) { + switch (event.code) { + case "ArrowUp": + case "KeyW": + setMoveForward(true); break; - case 'ArrowLeft': - case 'KeyA': - setMoveLeft( true ); + case "ArrowLeft": + case "KeyA": + setMoveLeft(true); break; - case 'ArrowDown': - case 'KeyS': - setMoveBackward( true ); + case "ArrowDown": + case "KeyS": + setMoveBackward(true); break; - case 'ArrowRight': - case 'KeyD': - setMoveRight( true ); + case "ArrowRight": + case "KeyD": + setMoveRight(true); break; case "Space": - window.addEventListener('keydown', (e) => { + window.addEventListener("keydown", (e) => { if (e.keyCode === 32 && e.target === document.body) { e.preventDefault(); - } - }); + } + }); setJump(true); - break; + break; default: - return; } }; - const onKeyUp = function ( event ) { - switch ( event.code ) { - case 'ArrowUp': - case 'KeyW': - setMoveForward( false ); + const onKeyUp = function (event) { + switch (event.code) { + case "ArrowUp": + case "KeyW": + setMoveForward(false); break; - case 'ArrowLeft': - case 'KeyA': - setMoveLeft( false ); + case "ArrowLeft": + case "KeyA": + setMoveLeft(false); break; - case 'ArrowDown': - case 'KeyS': - setMoveBackward( false ); + case "ArrowDown": + case "KeyS": + setMoveBackward(false); break; case "Space": setJump(false); break; - - case 'ArrowRight': - case 'KeyD': - setMoveRight( false ); + + case "ArrowRight": + case "KeyD": + setMoveRight(false); break; default: - return; } }; - document.addEventListener( 'keydown', onKeyDown ); - document.addEventListener( 'keyup', onKeyUp ); + document.addEventListener("keydown", onKeyDown); + document.addEventListener("keyup", onKeyUp); const { gl } = useThree(); - console.log(gl.domElement); - if(gl){ + if (gl) { return ( { - if ( controlsRef.current ) { - renderer.addEventListener( 'lock', () => { - console.log( 'lock' ); + onUpdate={() => { + if (controlsRef.current) { + renderer.addEventListener("lock", () => { + console.log("lock"); isLocked.current = true; - } ); - controlsRef.current.addEventListener( 'unlock', () => { - console.log( 'unlock' ); + }); + controlsRef.current.addEventListener("unlock", () => { + console.log("unlock"); isLocked.current = false; - } ); + }); } - } } - ref={ controlsRef } + }} + ref={controlsRef} /> ); } diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 8ae18ee..c51914b 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -1,36 +1,28 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; -import { TextureLoader } from 'three/src/loaders/TextureLoader'; +import * as THREE from "three"; +import React, { Suspense, useRef, useState, useEffect, useMemo } from "react"; +import { Canvas, useLoader, useFrame, useThree } from "@react-three/fiber"; +import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; +import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader"; +import { TextureLoader } from "three/src/loaders/TextureLoader"; import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader"; import { Physics, RigidBody, MeshCollider, Debug } from "@react-three/rapier"; -import * as SkeletonUtils from 'three/examples/jsm/utils/SkeletonUtils.js'; -import Networking from './Networking'; +import * as SkeletonUtils from "three/examples/jsm/utils/SkeletonUtils.js"; +import Networking from "./Networking"; -import { - useAnimations, - Html, - Stats, - Text, - Billboard -} from '@react-three/drei'; -import { - A11y, -} from '@react-three/a11y'; -import { GLTFAudioEmitterExtension } from 'three-omi'; +import { useAnimations, Html, Stats, Text, Billboard } from "@react-three/drei"; +import { A11y } from "@react-three/a11y"; +import { GLTFAudioEmitterExtension } from "three-omi"; import { VRCanvas, DefaultXRControllers, Hands, XRButton -} from '@react-three/xr'; -import { Perf } from 'r3f-perf'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import TeleportTravel from './TeleportTravel'; -import Player from './Player'; -import defaultVRM from '../../../inc/avatars/3ov_default_avatar.vrm'; +} from "@react-three/xr"; +import { Perf } from "r3f-perf"; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from "@pixiv/three-vrm"; +import TeleportTravel from "./TeleportTravel"; +import Player from "./Player"; +import defaultVRM from "../../../inc/avatars/3ov_default_avatar.vrm"; function parseMatrixUri(uri) { const SegmentToSigil = { @@ -38,102 +30,127 @@ function parseMatrixUri(uri) { user: "@", r: "#", room: "#", - roomid: "!", - }; - + roomid: "!" + }; + const url = new URL(uri, window.location.href); if (url.protocol === "matrix:") { - const matches = url.pathname.match(/^(\/\/.+\/)?(.+)$/); - - let authority = undefined; - let path = undefined; - - if (matches) { - if (matches.length == 3) { - authority = matches[1]; - path = matches[2]; - } else if (matches.length === 2) { - path = matches[1]; + const matches = url.pathname.match(/^(\/\/.+\/)?(.+)$/); + + let authority; + let path; + + if (matches) { + if (matches.length === 3) { + authority = matches[1]; + path = matches[2]; + } else if (matches.length === 2) { + path = matches[1]; + } + } + + if (!path) { + throw new Error(`Invalid matrix uri "${uri}": No path provided`); + } + + const segments = path.split("/"); + + if (segments.length !== 2 && segments.length !== 4) { + throw new Error( + `Invalid matrix uri "${uri}": Invalid number of segments` + ); + } + + const sigil1 = SegmentToSigil[segments[0]]; + + if (!sigil1) { + throw new Error( + `Invalid matrix uri "${uri}": Invalid segment ${segments[0]}` + ); } - } - - if (!path) { - throw new Error(`Invalid matrix uri "${uri}": No path provided`); - } - - const segments = path.split("/"); - - if (segments.length !== 2 && segments.length !== 4) { - throw new Error(`Invalid matrix uri "${uri}": Invalid number of segments`); - } - - const sigil1 = SegmentToSigil[segments[0]]; - - if (!sigil1) { - throw new Error(`Invalid matrix uri "${uri}": Invalid segment ${segments[0]}`); - } - - if (!segments[1]) { - throw new Error(`Invalid matrix uri "${uri}": Empty segment`); - } - - const mxid1 = `${sigil1}${segments[1]}`; - - let mxid2 = undefined; - - if (segments.length === 4) { - if ((sigil1 === "!" || sigil1 === "#") && (segments[2] === "e" || segments[2] === "event") && segments[3]) { - mxid2 = `$${segments[3]}`; - } else { - throw new Error(`Invalid matrix uri "${uri}": Invalid segment ${segments[2]}`); + + if (!segments[1]) { + throw new Error(`Invalid matrix uri "${uri}": Empty segment`); } - } - return { protocol: "matrix:", authority, mxid1, mxid2 }; + + const mxid1 = `${sigil1}${segments[1]}`; + + let mxid2; + + if (segments.length === 4) { + if ( + (sigil1 === "!" || sigil1 === "#") && + (segments[2] === "e" || segments[2] === "event") && + segments[3] + ) { + mxid2 = `$${segments[3]}`; + } else { + throw new Error( + `Invalid matrix uri "${uri}": Invalid segment ${segments[2]}` + ); + } + } + return { protocol: "matrix:", authority, mxid1, mxid2 }; } - + return url; - } -function Participant( participant ) { +function Participant(participant) { // Participant VRM. const fallbackURL = threeObjectPlugin + defaultVRM; - const playerURL = userData.vrm ? userData.vrm : fallbackURL + const playerURL = userData.vrm ? userData.vrm : fallbackURL; - const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); + const someSceneState = useLoader(GLTFLoader, playerURL, (loader) => { + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); - if(someSceneState?.userData?.gltfExtensions?.VRM){ + if (someSceneState?.userData?.gltfExtensions?.VRM) { const playerController = someSceneState.userData.vrm; - VRMUtils.rotateVRM0( playerController ); + VRMUtils.rotateVRM0(playerController); const rotationVRM = playerController.scene.rotation.y; - playerController.scene.rotation.set( 0, rotationVRM, 0 ); - playerController.scene.scale.set( 1, 1, 1 ); + playerController.scene.rotation.set(0, rotationVRM, 0); + playerController.scene.scale.set(1, 1, 1); const theScene = useThree(); - participant.p2pcf.on('msg', (peer, data) => { - let finalData = new TextDecoder('utf-8').decode(data); - const participantData = JSON.parse( finalData ); - const participantObject = theScene.scene.getObjectByName(peer.client_id); - if(participantObject){ - const loadedProfile = useLoader(TextureLoader, participantData[peer.client_id][2]["profileImage"]); - if(loadedProfile){ - participantObject.traverse( ( obj ) => { - if(obj.name === "profile" && obj.material.map === null){ - var newMat = obj.material.clone(); + participant.p2pcf.on("msg", (peer, data) => { + const finalData = new TextDecoder("utf-8").decode(data); + const participantData = JSON.parse(finalData); + const participantObject = theScene.scene.getObjectByName( + peer.client_id + ); + if (participantObject) { + const loadedProfile = useLoader( + TextureLoader, + participantData[peer.client_id][2].profileImage + ); + if (loadedProfile) { + participantObject.traverse((obj) => { + if ( + obj.name === "profile" && + obj.material.map === null + ) { + const newMat = obj.material.clone(); newMat.map = loadedProfile; obj.material = newMat; obj.material.map.needsUpdate = true; } - }); + }); } - participantObject.position.set(participantData[peer.client_id][0]["position"][0], participantData[peer.client_id][0]["position"][1], participantData[peer.client_id][0]["position"][2] ); - participantObject.rotation.set(participantData[peer.client_id][1]["rotation"][0], participantData[peer.client_id][1]["rotation"][1], participantData[peer.client_id][1]["rotation"][2] ); + participantObject.position.set( + participantData[peer.client_id][0].position[0], + participantData[peer.client_id][0].position[1], + participantData[peer.client_id][0].position[2] + ); + participantObject.rotation.set( + participantData[peer.client_id][1].rotation[0], + participantData[peer.client_id][1].rotation[1], + participantData[peer.client_id][1].rotation[2] + ); } }); @@ -145,824 +162,1383 @@ function Participant( participant ) { // }) const modelClone = SkeletonUtils.clone(playerController.scene); - + return ( <> - {playerController && } + {playerController && ( + + )} ); } } -function ModelObject( model ) { - const [ url, set ] = useState( model.url ); - useEffect( () => { - setTimeout( () => set( model.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); +function ModelObject(model) { + const [url, set] = useState(model.url); + useEffect(() => { + setTimeout(() => set(model.url), 2000); + }, []); + const [listener] = useState(() => new THREE.AudioListener()); - useThree( ( { camera } ) => { - camera.add( listener ); - } ); + useThree(({ camera }) => { + camera.add(listener); + }); - const gltf = useLoader( GLTFLoader, url, ( loader ) => { + const gltf = useLoader(GLTFLoader, url, (loader) => { loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + (parser) => new GLTFAudioEmitterExtension(parser, listener) ); - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); - - const { actions } = useAnimations( gltf.animations, gltf.scene ); - let animationClips = gltf.animations; - const animationList = model.animations ? model.animations.split( ',' ) : ''; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - console.log(actions[ name ].play()); + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); + + const { actions } = useAnimations(gltf.animations, gltf.scene); + const animationClips = gltf.animations; + const animationList = model.animations ? model.animations.split(",") : ""; + useEffect(() => { + if (animationList) { + animationList.forEach((name) => { + if (Object.keys(actions).includes(name)) { + console.log(actions[name].play()); } - } ); + }); } - }, [] ); - if(gltf?.userData?.gltfExtensions?.VRM){ - const vrm = gltf.userData.vrm; - vrm.scene.position.set( model.positionX, model.positionY, model.positionZ ); - VRMUtils.rotateVRM0( vrm ); - const rotationVRM = vrm.scene.rotation.y + parseFloat(0); - vrm.scene.rotation.set( 0, rotationVRM, 0 ); - vrm.scene.scale.set( 1, 1, 1 ); - vrm.scene.scale.set( model.scaleX, model.scaleY, model.scaleZ ); - return ( - // - - // - ); - } + }, []); + if (gltf?.userData?.gltfExtensions?.VRM) { + const vrm = gltf.userData.vrm; + vrm.scene.position.set( + model.positionX, + model.positionY, + model.positionZ + ); + VRMUtils.rotateVRM0(vrm); + const rotationVRM = vrm.scene.rotation.y + parseFloat(0); + vrm.scene.rotation.set(0, rotationVRM, 0); + vrm.scene.scale.set(1, 1, 1); + vrm.scene.scale.set(model.scaleX, model.scaleY, model.scaleZ); + return ( + // + + // + ); + } const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); const modelClone = SkeletonUtils.clone(gltf.scene); - if(model.collidable === "1"){ - return(<> - ( - // // window.location.href = model.destinationUrl - // ) - // } - > - - - ); - } else { - return <> - + ( + // // window.location.href = model.destinationUrl + // ) + // } + > + + + + ); + } + return ( + <> + - ; - } + + ); } -function Portal( model ) { - if ( model.object ){ - return(<> - - + - { model.label ? (model.label + ': ') : "" + model.destinationUrl } - - - { - const url = new URL(model.destinationUrl, window.location.href); - if(url.protocol === "matrix:"){ - const destination = parseMatrixUri(model.destinationUrl); - window.location.href = 'https://thirdroom.io/world/' + destination.mxid1; + + {model.label + ? model.label + ": " + : "" + model.destinationUrl} + + + { + const url = new URL( + model.destinationUrl, + window.location.href + ); + if (url.protocol === "matrix:") { + const destination = parseMatrixUri( + model.destinationUrl + ); + window.location.href = + "https://thirdroom.io/world/" + + destination.mxid1; } else { window.location.href = model.destinationUrl; } - } - } - > - - - ) + }} + > + + + + ); } - const [ url, set ] = useState( model.url ); - useEffect( () => { - setTimeout( () => set( model.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); + const [url, set] = useState(model.url); - useThree( ( { camera } ) => { - camera.add( listener ); - } ); + useEffect(() => { + setTimeout(() => set(model.url), 2000); + }, []); + const [listener] = useState(() => new THREE.AudioListener()); + + useThree(({ camera }) => { + camera.add(listener); + }); - const gltf = useLoader( GLTFLoader, url, ( loader ) => { + const gltf = useLoader(GLTFLoader, url, (loader) => { loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + (parser) => new GLTFAudioEmitterExtension(parser, listener) ); - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); - - const { actions } = useAnimations( gltf.animations, gltf.scene ); - - const animationList = model.animations ? model.animations.split( ',' ) : ''; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); + + const { actions } = useAnimations(gltf.animations, gltf.scene); + + const animationList = model.animations ? model.animations.split(",") : ""; + useEffect(() => { + if (animationList) { + animationList.forEach((name) => { + if (Object.keys(actions).includes(name)) { + actions[name].play(); } - } ); + }); } - }, [] ); - // gltf.scene.position.set( model.positionX, model.positionY, model.positionZ ); - // gltf.scene.rotation.set( 0, 0, 0 ); - gltf.scene.scale.set(model.scaleX , model.scaleY, model.scaleZ ); - // gltf.scene.rotation.set(model.rotationX , model.rotationY, model.rotationZ ); - const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) - - return(<> - - window.location.href = model.destinationUrl - } - > - - gltf.scene.clone(), [gltf.scene]); + + return ( + <> + + (window.location.href = model.destinationUrl) + } + > + - { model.label + ': ' + model.destinationUrl } - - - - - ); + + {model.label + ": " + model.destinationUrl} + + + + + + ); } -function Sky( sky ) { - const skyUrl = sky.src[0].querySelector( 'p.sky-block-url' ) - ? sky.src[0].querySelector( 'p.sky-block-url' ).innerText - : ''; +function Sky(sky) { + const skyUrl = sky.src[0].querySelector("p.sky-block-url") + ? sky.src[0].querySelector("p.sky-block-url").innerText + : ""; - const texture_1 = useLoader(THREE.TextureLoader, skyUrl); + const texture1 = useLoader(THREE.TextureLoader, skyUrl); - return ( - - - - - ); + return ( + + + + + ); } -function ThreeImage( threeImage ) { - const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); +function ThreeImage(threeImage) { + const texture2 = useLoader(THREE.TextureLoader, threeImage.url); return ( - - - + + + ); } function ThreeVideo(threeVideo) { const clicked = true; - const [video] = useState(() => Object.assign(document.createElement('video'), { src: threeVideo.url, crossOrigin: 'Anonymous', loop: true, muted: true })); + const [video] = useState(() => + Object.assign(document.createElement("video"), { + src: threeVideo.url, + crossOrigin: "Anonymous", + loop: true, + muted: true + }) + ); useEffect(() => void (clicked && video.play()), [video, clicked]); return ( - - - - - - + + + + + + ); } -function Floor( props ) { +function Floor(props) { return ( - - + + ); } -function Markup( model ) { +function Markup(model) { const htmlObj = useRef(); - const {scene}= useThree(); - return(<> - - - - -
-
- -
+ return ( + <> + + + + +
+ +
- ); + + ); } -function Participants( props ) { - const [ participants, setParticipant ] = useState([]); +function Participants(props) { + const [participants, setParticipant] = useState([]); const p2pcf = window.p2pcf; - if(p2pcf){ - p2pcf.on('peerconnect', peer => { + if (p2pcf) { + p2pcf.on("peerconnect", (peer) => { console.log("connected peer", peer); - setParticipant(current => [...current, peer.client_id]); - }) + setParticipant((current) => [...current, peer.client_id]); + }); } - return(<> - { participants && participants.map((item, index)=>{ - return ( - <> - - - )}) - } - ); + return ( + <> + {participants && + participants.map((item, index) => { + return ( + <> + + + ); + })} + + ); } -function SavedObject( props ) { +function SavedObject(props) { const meshRef = useRef(); - const [ url, set ] = useState( props.url ); - useEffect( () => { - setTimeout( () => set( props.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); + const [url, set] = useState(props.url); + useEffect(() => { + setTimeout(() => set(props.url), 2000); + }, []); + const [listener] = useState(() => new THREE.AudioListener()); const [colliders, setColliders] = useState(); const [meshes, setMeshes] = useState(); const [portals, setPortals] = useState(); - useThree( ( { camera } ) => { - camera.add( listener ); - } ); + useThree(({ camera }) => { + camera.add(listener); + }); - const gltf = useLoader( GLTFLoader, url, ( loader ) => { + const gltf = useLoader(GLTFLoader, url, (loader) => { const dracoLoader = new DRACOLoader(); - dracoLoader.setDecoderPath('https://www.gstatic.com/draco/v1/decoders/'); + dracoLoader.setDecoderPath( + "https://www.gstatic.com/draco/v1/decoders/" + ); loader.setDRACOLoader(dracoLoader); loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + (parser) => new GLTFAudioEmitterExtension(parser, listener) ); - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); - - useEffect(()=>{ - //OMI_collider logic. - let childrenToParse = []; - let collidersToAdd = []; - let meshesToAdd = []; - let portalsToAdd = []; + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); - if ( gltf.userData.gltfExtensions?.OMI_collider ) { - var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; - } - if ( gltf.userData.gltfExtensions?.OMI_link ) { - var colliders = gltf.userData.gltfExtensions.OMI_link.colliders; - } - if ( gltf.userData.gltfExtensions?.KHR_audio ) { - var colliders = gltf.userData.gltfExtensions.OMI_collider.colliders; - } + useEffect(() => { + //OMI_collider logic. + const childrenToParse = []; + const collidersToAdd = []; + const meshesToAdd = []; + const portalsToAdd = []; + let omiColliders; - gltf.scene.traverse( (child) => { - if ( child.userData.gltfExtensions?.OMI_collider ) { - childrenToParse.push(child); - // child.parent.remove(child.name); - } - if( child.userData.gltfExtensions?.OMI_link ) { - portalsToAdd.push(child); - } else { - meshesToAdd.push(child); + if (gltf.userData.gltfExtensions?.OMI_collider) { + omiColliders = gltf.userData.gltfExtensions.OMI_collider.colliders; } - }); - - childrenToParse.forEach( (child) => { - let index = child.userData.gltfExtensions.OMI_collider.collider; - collidersToAdd.push([child, colliders[index]]); - // gltf.scene.remove(child.name); - }); - setColliders(collidersToAdd); - setMeshes(meshesToAdd); - setPortals(portalsToAdd); - // End OMI_collider logic. - }, []) - - const { actions } = useAnimations( gltf.animations, gltf.scene ); - - const animationList = props.animations ? props.animations.split( ',' ) : ''; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); + + gltf.scene.traverse((child) => { + if (child.userData.gltfExtensions?.OMI_collider) { + childrenToParse.push(child); + // child.parent.remove(child.name); + } + if (child.userData.gltfExtensions?.OMI_link) { + portalsToAdd.push(child); + } else { + meshesToAdd.push(child); + } + }); + + childrenToParse.forEach((child) => { + const index = child.userData.gltfExtensions.OMI_collider.collider; + collidersToAdd.push([child, omiColliders[index]]); + // gltf.scene.remove(child.name); + }); + setColliders(collidersToAdd); + setMeshes(meshesToAdd); + setPortals(portalsToAdd); + // End OMI_collider logic. + }, []); + + const { actions } = useAnimations(gltf.animations, gltf.scene); + + const animationList = props.animations ? props.animations.split(",") : ""; + useEffect(() => { + if (animationList) { + animationList.forEach((name) => { + if (Object.keys(actions).includes(name)) { + actions[name].play(); } - } ); + }); } - }, [] ); + }, []); - return(<> - { meshes && meshes.map((item, index)=>{ - if(item.isObject3D){ - const mixer = new THREE.AnimationMixer(gltf.scene); + return ( + <> + {meshes && + meshes.map((item, index) => { + if (item.isObject3D) { + const mixer = new THREE.AnimationMixer(gltf.scene); - var pos = new THREE.Vector3(); - var quat = new THREE.Quaternion(); - var rotation = new THREE.Euler(); - var quaternion = item.getWorldQuaternion(quat); - var finalRotation = rotation.setFromQuaternion(quaternion); + const pos = new THREE.Vector3(); + const quat = new THREE.Quaternion(); + const rotation = new THREE.Euler(); + const quaternion = item.getWorldQuaternion(quat); + const finalRotation = + rotation.setFromQuaternion(quaternion); - return() - } - })} - { portals && portals.map((item, index)=>{ - var pos = new THREE.Vector3(); - var quat = new THREE.Quaternion(); - var rotation = new THREE.Euler(); - let position = item.getWorldPosition(pos); - var quaternion = item.getWorldQuaternion(quat); - var finalRotation = rotation.setFromQuaternion(quaternion); - return( - ) - })} - { colliders && colliders.map((item, index)=>{ - var pos = new THREE.Vector3(); // create once an reuse it - var quat = new THREE.Quaternion(); // create once an reuse it - var rotation = new THREE.Euler(); - var quaternion = item[0].getWorldQuaternion(quat); - var finalRotation = rotation.setFromQuaternion(quaternion); - var worldPosition = item[0].getWorldPosition(pos); - if(item[1].type === "mesh"){ - return ( - - - - ) - } - if(item[1].type === "box"){ - return ( - - ) - } - if(item[1].type === "capsule"){ - return ( - - ) - } - if(item[1].type === "sphere"){ - return ( - - ) - } - })} - ); + return ( + + ); + } + })} + {portals && + portals.map((item, index) => { + const pos = new THREE.Vector3(); + const quat = new THREE.Quaternion(); + const rotation = new THREE.Euler(); + const position = item.getWorldPosition(pos); + const quaternion = item.getWorldQuaternion(quat); + const finalRotation = + rotation.setFromQuaternion(quaternion); + return ( + + ); + })} + {colliders && + colliders.map((item, index) => { + const pos = new THREE.Vector3(); // create once an reuse it + const quat = new THREE.Quaternion(); // create once an reuse it + const rotation = new THREE.Euler(); + const quaternion = item[0].getWorldQuaternion(quat); + const finalRotation = + rotation.setFromQuaternion(quaternion); + const worldPosition = item[0].getWorldPosition(pos); + if (item[1].type === "mesh") { + return ( + + + + ); + } + if (item[1].type === "box") { + return ( + + + + ); + } + if (item[1].type === "capsule") { + return ( + + + + ); + } + if (item[1].type === "sphere") { + return ( + + + + ); + } + })} + + ); } -export default function EnvironmentFront( props ) { +export default function EnvironmentFront(props) { const [loaded, setLoaded] = useState(false); - if( loaded === true) { - if ( props.deviceTarget === 'vr' ) { + if (loaded === true) { + if (props.deviceTarget === "vr") { return ( <> - {/* */} + {/* */} {/* */} - + - - - - {/* Debug physics */} - {/* */} - { props.threeUrl && ( - <> - + + + + {/* Debug physics */} + {/* */} + {props.threeUrl && ( + <> + - + - { Object.values(props.sky).map((item, index)=>{ - return(<> - - ); - }) - } - { Object.values(props.imagesToAdd).map((item, index)=>{ - const imagePosX = item.querySelector( 'p.image-block-positionX' ) - ? item.querySelector( 'p.image-block-positionX' ).innerText - : ''; - - const imagePosY = item.querySelector( 'p.image-block-positionY' ) - ? item.querySelector( 'p.image-block-positionY' ).innerText - : ''; - - const imagePosZ = item.querySelector( 'p.image-block-positionZ' ) - ? item.querySelector( 'p.image-block-positionZ' ).innerText - : ''; - - const imageScaleX = item.querySelector( 'p.image-block-scaleX' ) - ? item.querySelector( 'p.image-block-scaleX' ).innerText - : ''; - - const imageScaleY = item.querySelector( 'p.image-block-scaleY' ) - ? item.querySelector( 'p.image-block-scaleY' ).innerText - : ''; - - const imageScaleZ = item.querySelector( 'p.image-block-scaleZ' ) - ? item.querySelector( 'p.image-block-scaleZ' ).innerText - : ''; - - const imageRotationX = item.querySelector( 'p.image-block-rotationX' ) - ? item.querySelector( 'p.image-block-rotationX' ).innerText - : ''; - - const imageRotationY = item.querySelector( 'p.image-block-rotationY' ) - ? item.querySelector( 'p.image-block-rotationY' ).innerText - : ''; - - const imageRotationZ = item.querySelector( 'p.image-block-rotationZ' ) - ? item.querySelector( 'p.image-block-rotationZ' ).innerText - : ''; - - const imageUrl = item.querySelector( 'p.image-block-url' ) - ? item.querySelector( 'p.image-block-url' ).innerText - : ''; - - const aspectHeight = item.querySelector( 'p.image-block-aspect-height' ) - ? item.querySelector( 'p.image-block-aspect-height' ).innerText - : ''; - - const aspectWidth = item.querySelector( 'p.image-block-aspect-width' ) - ? item.querySelector( 'p.image-block-aspect-width' ).innerText - : ''; - - return(); - })} - { Object.values(props.videosToAdd).map((item, index)=>{ - const videoPosX = item.querySelector( 'p.video-block-positionX' ) - ? item.querySelector( 'p.video-block-positionX' ).innerText - : ''; - - const videoPosY = item.querySelector( 'p.video-block-positionY' ) - ? item.querySelector( 'p.video-block-positionY' ).innerText - : ''; - - const videoPosZ = item.querySelector( 'p.video-block-positionZ' ) - ? item.querySelector( 'p.video-block-positionZ' ).innerText - : ''; - - const videoScaleX = item.querySelector( 'p.video-block-scaleX' ) - ? item.querySelector( 'p.video-block-scaleX' ).innerText - : ''; - - const videoScaleY = item.querySelector( 'p.video-block-scaleY' ) - ? item.querySelector( 'p.video-block-scaleY' ).innerText - : ''; - - const videoScaleZ = item.querySelector( 'p.video-block-scaleZ' ) - ? item.querySelector( 'p.video-block-scaleZ' ).innerText - : ''; - - const videoRotationX = item.querySelector( 'p.video-block-rotationX' ) - ? item.querySelector( 'p.video-block-rotationX' ).innerText - : ''; - - const videoRotationY = item.querySelector( 'p.video-block-rotationY' ) - ? item.querySelector( 'p.video-block-rotationY' ).innerText - : ''; - - const videoRotationZ = item.querySelector( 'p.video-block-rotationZ' ) - ? item.querySelector( 'p.video-block-rotationZ' ).innerText - : ''; - - const videoUrl = item.querySelector( 'div.video-block-url' ) - ? item.querySelector( 'div.video-block-url' ).innerText - : ''; - - const aspectHeight = item.querySelector( 'p.video-block-aspect-height' ) - ? item.querySelector( 'p.video-block-aspect-height' ).innerText - : ''; - - const aspectWidth = item.querySelector( 'p.video-block-aspect-width' ) - ? item.querySelector( 'p.video-block-aspect-width' ).innerText - : ''; - - return(); - })} - - { Object.values(props.modelsToAdd).map((model, index)=>{ - const modelPosX = model.querySelector( 'p.model-block-position-x' ) - ? model.querySelector( 'p.model-block-position-x' ).innerText - : ''; - - const modelPosY = model.querySelector( 'p.model-block-position-y' ) - ? model.querySelector( 'p.model-block-position-y' ).innerText - : ''; - - const modelPosZ = model.querySelector( 'p.model-block-position-z' ) - ? model.querySelector( 'p.model-block-position-z' ).innerText - : ''; - - const modelScaleX = model.querySelector( 'p.model-block-scale-x' ) - ? model.querySelector( 'p.model-block-scale-x' ).innerText - : ''; - - const modelScaleY = model.querySelector( 'p.model-block-scale-y' ) - ? model.querySelector( 'p.model-block-scale-y' ).innerText - : ''; - - const modelScaleZ = model.querySelector( 'p.model-block-scale-z' ) - ? model.querySelector( 'p.model-block-scale-z' ).innerText - : ''; - - const modelRotationX = model.querySelector( 'p.model-block-rotation-x' ) - ? model.querySelector( 'p.model-block-rotation-x' ).innerText - : ''; - - const modelRotationY = model.querySelector( 'p.model-block-rotation-y' ) - ? model.querySelector( 'p.model-block-rotation-y' ).innerText - : ''; - - const modelRotationZ = model.querySelector( 'p.model-block-rotation-z' ) - ? model.querySelector( 'p.model-block-rotation-z' ).innerText - : ''; - - const url = model.querySelector( 'p.model-block-url' ) - ? model.querySelector( 'p.model-block-url' ).innerText - : ''; - - const animations = model.querySelector( 'p.model-block-animations' ) - ? model.querySelector( 'p.model-block-animations' ).innerText - : ''; - - const alt = model.querySelector( 'p.model-block-alt' ) - ? model.querySelector( 'p.model-block-alt' ).innerText - : ''; - - const collidable = model.querySelector( 'p.model-block-collidable' ) - ? model.querySelector( 'p.model-block-collidable' ).innerText - : false; - - return(); + {Object.values(props.sky).map( + (item, index) => { + return ( + <> + + + ); + } + )} + {Object.values( + props.imagesToAdd + ).map((item, index) => { + const imagePosX = + item.querySelector( + "p.image-block-positionX" + ) + ? item.querySelector( + "p.image-block-positionX" + ).innerText + : ""; + + const imagePosY = + item.querySelector( + "p.image-block-positionY" + ) + ? item.querySelector( + "p.image-block-positionY" + ).innerText + : ""; + + const imagePosZ = + item.querySelector( + "p.image-block-positionZ" + ) + ? item.querySelector( + "p.image-block-positionZ" + ).innerText + : ""; + + const imageScaleX = + item.querySelector( + "p.image-block-scaleX" + ) + ? item.querySelector( + "p.image-block-scaleX" + ).innerText + : ""; + + const imageScaleY = + item.querySelector( + "p.image-block-scaleY" + ) + ? item.querySelector( + "p.image-block-scaleY" + ).innerText + : ""; + + const imageScaleZ = + item.querySelector( + "p.image-block-scaleZ" + ) + ? item.querySelector( + "p.image-block-scaleZ" + ).innerText + : ""; + + const imageRotationX = + item.querySelector( + "p.image-block-rotationX" + ) + ? item.querySelector( + "p.image-block-rotationX" + ).innerText + : ""; + + const imageRotationY = + item.querySelector( + "p.image-block-rotationY" + ) + ? item.querySelector( + "p.image-block-rotationY" + ).innerText + : ""; + + const imageRotationZ = + item.querySelector( + "p.image-block-rotationZ" + ) + ? item.querySelector( + "p.image-block-rotationZ" + ).innerText + : ""; + + const imageUrl = + item.querySelector( + "p.image-block-url" + ) + ? item.querySelector( + "p.image-block-url" + ).innerText + : ""; + + const aspectHeight = + item.querySelector( + "p.image-block-aspect-height" + ) + ? item.querySelector( + "p.image-block-aspect-height" + ).innerText + : ""; + + const aspectWidth = + item.querySelector( + "p.image-block-aspect-width" + ) + ? item.querySelector( + "p.image-block-aspect-width" + ).innerText + : ""; + + return ( + + ); })} - { Object.values(props.htmlToAdd).map((model, index)=>{ - const markup = model.querySelector( 'p.three-html-markup' ) - ? model.querySelector( 'p.three-html-markup' ).innerText - : ''; - const rotationX = model.querySelector( 'p.three-html-rotationX' ) - ? model.querySelector( 'p.three-html-rotationX' ).innerText - : ''; - const rotationY = model.querySelector( 'p.three-html-rotationY' ) - ? model.querySelector( 'p.three-html-rotationY' ).innerText - : ''; - const rotationZ = model.querySelector( 'p.three-html-rotationZ' ) - ? model.querySelector( 'p.three-html-rotationZ' ).innerText - : ''; - const positionX = model.querySelector( 'p.three-html-positionX' ) - ? model.querySelector( 'p.three-html-positionX' ).innerText - : ''; - const positionY = model.querySelector( 'p.three-html-positionY' ) - ? model.querySelector( 'p.three-html-positionY' ).innerText - : ''; - const positionZ = model.querySelector( 'p.three-html-positionZ' ) - ? model.querySelector( 'p.three-html-positionZ' ).innerText - : ''; - - return(); + {Object.values( + props.videosToAdd + ).map((item, index) => { + const videoPosX = + item.querySelector( + "p.video-block-positionX" + ) + ? item.querySelector( + "p.video-block-positionX" + ).innerText + : ""; + + const videoPosY = + item.querySelector( + "p.video-block-positionY" + ) + ? item.querySelector( + "p.video-block-positionY" + ).innerText + : ""; + + const videoPosZ = + item.querySelector( + "p.video-block-positionZ" + ) + ? item.querySelector( + "p.video-block-positionZ" + ).innerText + : ""; + + const videoScaleX = + item.querySelector( + "p.video-block-scaleX" + ) + ? item.querySelector( + "p.video-block-scaleX" + ).innerText + : ""; + + const videoScaleY = + item.querySelector( + "p.video-block-scaleY" + ) + ? item.querySelector( + "p.video-block-scaleY" + ).innerText + : ""; + + const videoScaleZ = + item.querySelector( + "p.video-block-scaleZ" + ) + ? item.querySelector( + "p.video-block-scaleZ" + ).innerText + : ""; + + const videoRotationX = + item.querySelector( + "p.video-block-rotationX" + ) + ? item.querySelector( + "p.video-block-rotationX" + ).innerText + : ""; + + const videoRotationY = + item.querySelector( + "p.video-block-rotationY" + ) + ? item.querySelector( + "p.video-block-rotationY" + ).innerText + : ""; + + const videoRotationZ = + item.querySelector( + "p.video-block-rotationZ" + ) + ? item.querySelector( + "p.video-block-rotationZ" + ).innerText + : ""; + + const videoUrl = + item.querySelector( + "div.video-block-url" + ) + ? item.querySelector( + "div.video-block-url" + ).innerText + : ""; + + const aspectHeight = + item.querySelector( + "p.video-block-aspect-height" + ) + ? item.querySelector( + "p.video-block-aspect-height" + ).innerText + : ""; + + const aspectWidth = + item.querySelector( + "p.video-block-aspect-width" + ) + ? item.querySelector( + "p.video-block-aspect-width" + ).innerText + : ""; + + return ( + + ); })} - { Object.values(props.portalsToAdd).map((model, index)=>{ - const modelPosX = model.querySelector( 'p.three-portal-block-position-x' ) - ? model.querySelector( 'p.three-portal-block-position-x' ).innerText - : ''; - - const modelPosY = model.querySelector( 'p.three-portal-block-position-y' ) - ? model.querySelector( 'p.three-portal-block-position-y' ).innerText - : ''; - - const modelPosZ = model.querySelector( 'p.three-portal-block-position-z' ) - ? model.querySelector( 'p.three-portal-block-position-z' ).innerText - : ''; - - const modelScaleX = model.querySelector( 'p.three-portal-block-scale-x' ) - ? model.querySelector( 'p.three-portal-block-scale-x' ).innerText - : ''; - - const modelScaleY = model.querySelector( 'p.three-portal-block-scale-y' ) - ? model.querySelector( 'p.three-portal-block-scale-y' ).innerText - : ''; - - const modelScaleZ = model.querySelector( 'p.three-portal-block-scale-z' ) - ? model.querySelector( 'p.three-portal-block-scale-z' ).innerText - : ''; - - const modelRotationX = model.querySelector( 'p.three-portal-block-rotation-x' ) - ? model.querySelector( 'p.three-portal-block-rotation-x' ).innerText - : ''; - - const modelRotationY = model.querySelector( 'p.three-portal-block-rotation-y' ) - ? model.querySelector( 'p.three-portal-block-rotation-y' ).innerText - : ''; - - const modelRotationZ = model.querySelector( 'p.three-portal-block-rotation-z' ) - ? model.querySelector( 'p.three-portal-block-rotation-z' ).innerText - : ''; - - const url = model.querySelector( 'p.three-portal-block-url' ) - ? model.querySelector( 'p.three-portal-block-url' ).innerText - : ''; - - const destinationUrl = model.querySelector( 'p.three-portal-block-destination-url' ) - ? model.querySelector( 'p.three-portal-block-destination-url' ).innerText - : ''; - - const animations = model.querySelector( 'p.three-portal-block-animations' ) - ? model.querySelector( 'p.three-portal-block-animations' ).innerText - : ''; - - const label = model.querySelector( 'p.three-portal-block-label' ) - ? model.querySelector( 'p.three-portal-block-label' ).innerText - : ''; - - const labelOffsetX = model.querySelector( 'p.three-portal-block-label-offset-x' ) - ? model.querySelector( 'p.three-portal-block-label-offset-x' ).innerText - : ''; - - const labelOffsetY = model.querySelector( 'p.three-portal-block-label-offset-y' ) - ? model.querySelector( 'p.three-portal-block-label-offset-y' ).innerText - : ''; - - const labelOffsetZ = model.querySelector( 'p.three-portal-block-label-offset-z' ) - ? model.querySelector( 'p.three-portal-block-label-offset-z' ).innerText - : ''; - const labelTextColor = model.querySelector( 'p.three-portal-block-label-text-color' ) - ? model.querySelector( 'p.three-portal-block-label-text-color' ).innerText - : ''; - - return(); + + {Object.values( + props.modelsToAdd + ).map((model, index) => { + const modelPosX = + model.querySelector( + "p.model-block-position-x" + ) + ? model.querySelector( + "p.model-block-position-x" + ).innerText + : ""; + + const modelPosY = + model.querySelector( + "p.model-block-position-y" + ) + ? model.querySelector( + "p.model-block-position-y" + ).innerText + : ""; + + const modelPosZ = + model.querySelector( + "p.model-block-position-z" + ) + ? model.querySelector( + "p.model-block-position-z" + ).innerText + : ""; + + const modelScaleX = + model.querySelector( + "p.model-block-scale-x" + ) + ? model.querySelector( + "p.model-block-scale-x" + ).innerText + : ""; + + const modelScaleY = + model.querySelector( + "p.model-block-scale-y" + ) + ? model.querySelector( + "p.model-block-scale-y" + ).innerText + : ""; + + const modelScaleZ = + model.querySelector( + "p.model-block-scale-z" + ) + ? model.querySelector( + "p.model-block-scale-z" + ).innerText + : ""; + + const modelRotationX = + model.querySelector( + "p.model-block-rotation-x" + ) + ? model.querySelector( + "p.model-block-rotation-x" + ).innerText + : ""; + + const modelRotationY = + model.querySelector( + "p.model-block-rotation-y" + ) + ? model.querySelector( + "p.model-block-rotation-y" + ).innerText + : ""; + + const modelRotationZ = + model.querySelector( + "p.model-block-rotation-z" + ) + ? model.querySelector( + "p.model-block-rotation-z" + ).innerText + : ""; + + const url = model.querySelector( + "p.model-block-url" + ) + ? model.querySelector( + "p.model-block-url" + ).innerText + : ""; + + const animations = + model.querySelector( + "p.model-block-animations" + ) + ? model.querySelector( + "p.model-block-animations" + ).innerText + : ""; + + const alt = model.querySelector( + "p.model-block-alt" + ) + ? model.querySelector( + "p.model-block-alt" + ).innerText + : ""; + + const collidable = + model.querySelector( + "p.model-block-collidable" + ) + ? model.querySelector( + "p.model-block-collidable" + ).innerText + : false; + + return ( + + ); + })} + {Object.values(props.htmlToAdd).map( + (model, index) => { + const markup = + model.querySelector( + "p.three-html-markup" + ) + ? model.querySelector( + "p.three-html-markup" + ).innerText + : ""; + const rotationX = + model.querySelector( + "p.three-html-rotationX" + ) + ? model.querySelector( + "p.three-html-rotationX" + ).innerText + : ""; + const rotationY = + model.querySelector( + "p.three-html-rotationY" + ) + ? model.querySelector( + "p.three-html-rotationY" + ).innerText + : ""; + const rotationZ = + model.querySelector( + "p.three-html-rotationZ" + ) + ? model.querySelector( + "p.three-html-rotationZ" + ).innerText + : ""; + const positionX = + model.querySelector( + "p.three-html-positionX" + ) + ? model.querySelector( + "p.three-html-positionX" + ).innerText + : ""; + const positionY = + model.querySelector( + "p.three-html-positionY" + ) + ? model.querySelector( + "p.three-html-positionY" + ).innerText + : ""; + const positionZ = + model.querySelector( + "p.three-html-positionZ" + ) + ? model.querySelector( + "p.three-html-positionZ" + ).innerText + : ""; + + return ( + + ); + } + )} + {Object.values( + props.portalsToAdd + ).map((model, index) => { + const modelPosX = + model.querySelector( + "p.three-portal-block-position-x" + ) + ? model.querySelector( + "p.three-portal-block-position-x" + ).innerText + : ""; + + const modelPosY = + model.querySelector( + "p.three-portal-block-position-y" + ) + ? model.querySelector( + "p.three-portal-block-position-y" + ).innerText + : ""; + + const modelPosZ = + model.querySelector( + "p.three-portal-block-position-z" + ) + ? model.querySelector( + "p.three-portal-block-position-z" + ).innerText + : ""; + + const modelScaleX = + model.querySelector( + "p.three-portal-block-scale-x" + ) + ? model.querySelector( + "p.three-portal-block-scale-x" + ).innerText + : ""; + + const modelScaleY = + model.querySelector( + "p.three-portal-block-scale-y" + ) + ? model.querySelector( + "p.three-portal-block-scale-y" + ).innerText + : ""; + + const modelScaleZ = + model.querySelector( + "p.three-portal-block-scale-z" + ) + ? model.querySelector( + "p.three-portal-block-scale-z" + ).innerText + : ""; + + const modelRotationX = + model.querySelector( + "p.three-portal-block-rotation-x" + ) + ? model.querySelector( + "p.three-portal-block-rotation-x" + ).innerText + : ""; + + const modelRotationY = + model.querySelector( + "p.three-portal-block-rotation-y" + ) + ? model.querySelector( + "p.three-portal-block-rotation-y" + ).innerText + : ""; + + const modelRotationZ = + model.querySelector( + "p.three-portal-block-rotation-z" + ) + ? model.querySelector( + "p.three-portal-block-rotation-z" + ).innerText + : ""; + + const url = model.querySelector( + "p.three-portal-block-url" + ) + ? model.querySelector( + "p.three-portal-block-url" + ).innerText + : ""; + + const destinationUrl = + model.querySelector( + "p.three-portal-block-destination-url" + ) + ? model.querySelector( + "p.three-portal-block-destination-url" + ).innerText + : ""; + + const animations = + model.querySelector( + "p.three-portal-block-animations" + ) + ? model.querySelector( + "p.three-portal-block-animations" + ).innerText + : ""; + + const label = + model.querySelector( + "p.three-portal-block-label" + ) + ? model.querySelector( + "p.three-portal-block-label" + ).innerText + : ""; + + const labelOffsetX = + model.querySelector( + "p.three-portal-block-label-offset-x" + ) + ? model.querySelector( + "p.three-portal-block-label-offset-x" + ).innerText + : ""; + + const labelOffsetY = + model.querySelector( + "p.three-portal-block-label-offset-y" + ) + ? model.querySelector( + "p.three-portal-block-label-offset-y" + ).innerText + : ""; + + const labelOffsetZ = + model.querySelector( + "p.three-portal-block-label-offset-z" + ) + ? model.querySelector( + "p.three-portal-block-label-offset-z" + ).innerText + : ""; + const labelTextColor = + model.querySelector( + "p.three-portal-block-label-text-color" + ) + ? model.querySelector( + "p.three-portal-block-label-text-color" + ).innerText + : ""; + + return ( + + ); })} {/* */} - ) } - + )} + {/* ); - } + } } else { - return( -
-
- + return ( +
+
+
); diff --git a/blocks/environment/components/Networking.js b/blocks/environment/components/Networking.js index 5443e17..687ce4b 100644 --- a/blocks/environment/components/Networking.js +++ b/blocks/environment/components/Networking.js @@ -1,122 +1,127 @@ -import P2PCF from './p2pcf/p2pcf.js'; +import P2PCF from "./p2pcf/p2pcf.js"; const Networking = (props) => { - if (!document.location.hash) { - document.location = - document.location.toString() + - `#xpp-${props.postSlug}` - } - - const userProfileName = userData.userId === "" ? Math.floor(Math.random() * 100000) : userData.userId; - const p2pcf = new P2PCF( - 'user-' + userProfileName, - document.location.hash.substring(1), - { - workerUrl: "https://p2pcf.sxpdigital.workers.dev/", - slowPollingRateMs: 5000, - fastPollingRateMs: 1500 - } - ); - window.p2pcf = p2pcf; - console.log("client id:", p2pcf.clientId); - - const removePeerUi = clientId => { - document.getElementById(clientId)?.remove(); - document.getElementById(`${clientId}-video`)?.remove(); - } - - const addPeerUi = sessionId => { - if (document.getElementById(sessionId)) return - - const peerEl = document.createElement('div'); - peerEl.style = 'display: flex;'; - - const name = document.createElement('div'); - name.innerText = sessionId.substring(0, 5); - - peerEl.id = sessionId; - peerEl.appendChild(name); - - document.getElementById('peers').appendChild(peerEl); - } - const addMessage = message => { - const messageEl = document.createElement('div'); - messageEl.innerText = message; - - document.getElementById('messages').appendChild(messageEl); - } - let stream; - p2pcf.on('peerconnect', peer => { - console.log('Peer connect', peer.id, peer); - console.log(peer.client_id); - - if (stream) { - peer.addStream(stream); - } - peer.on('track', (track, stream) => { - console.log('got track', track); - const video = document.createElement('audio'); - video.id = `${peer.id}-audio`; - video.srcObject = stream; - video.setAttribute('playsinline', true); - document.getElementById('videos').appendChild(video); - video.play(); - }) - addPeerUi(peer.id); - }) - - p2pcf.on('peerclose', peer => { - console.log('Peer close', peer.id, peer); - removePeerUi(peer.id); - }) - - p2pcf.on('msg', (peer, data) => { - addMessage( - peer.id.substring(0, 5) + ': ' + new TextDecoder('utf-8').decode(data) - ) - }); - - const go = () => { - document.getElementById('session-id').innerText = - p2pcf.sessionId.substring(0, 5) + '@' + p2pcf.roomId + ':'; - - // document.getElementById('send-button').addEventListener('click', () => { - // const box = document.getElementById('send-box'); - // addMessage(p2pcf.sessionId.substring(0, 5) + ': ' + box.value); - // p2pcf.broadcast(new TextEncoder().encode(box.value)); - // box.value = ''; - // }) - - document - .getElementById('audio-button') - .addEventListener('click', async () => { - stream = await navigator.mediaDevices.getUserMedia({ audio: true }); - - for (const peer of p2pcf.peers.values()) { - peer.addStream(stream) - } - }) - - p2pcf.start() - } - if ( - document.readyState === 'complete' || - document.readyState === 'interactive' - ) { - document - .getElementById('join-button') - .addEventListener('click', async () => { - window.addEventListener('DOMContentLoaded', audio, { once: true }) - // window.addEventListener('DOMContentLoaded', go, { once: true }) - }) - } else { - window.addEventListener('DOMContentLoaded', go, { once: true }) - } - - return ( - <> - - ); + if (!document.location.hash) { + document.location = + document.location.toString() + `#xpp-${props.postSlug}`; + } + + const userProfileName = + userData.userId === "" + ? Math.floor(Math.random() * 100000) + : userData.userId; + const p2pcf = new P2PCF( + "user-" + userProfileName, + document.location.hash.substring(1), + { + workerUrl: "https://p2pcf.sxpdigital.workers.dev/", + slowPollingRateMs: 5000, + fastPollingRateMs: 1500 + } + ); + window.p2pcf = p2pcf; + console.log("client id:", p2pcf.clientId); + + const removePeerUi = (clientId) => { + document.getElementById(clientId)?.remove(); + document.getElementById(`${clientId}-video`)?.remove(); + }; + + const addPeerUi = (sessionId) => { + if (document.getElementById(sessionId)) return; + + const peerEl = document.createElement("div"); + peerEl.style = "display: flex;"; + + const name = document.createElement("div"); + name.innerText = sessionId.substring(0, 5); + + peerEl.id = sessionId; + peerEl.appendChild(name); + + document.getElementById("peers").appendChild(peerEl); + }; + const addMessage = (message) => { + const messageEl = document.createElement("div"); + messageEl.innerText = message; + + document.getElementById("messages").appendChild(messageEl); + }; + let stream; + p2pcf.on("peerconnect", (peer) => { + console.log("Peer connect", peer.id, peer); + console.log(peer.client_id); + + if (stream) { + peer.addStream(stream); + } + peer.on("track", (track, stream) => { + console.log("got track", track); + const video = document.createElement("audio"); + video.id = `${peer.id}-audio`; + video.srcObject = stream; + video.setAttribute("playsinline", true); + document.getElementById("videos").appendChild(video); + video.play(); + }); + addPeerUi(peer.id); + }); + + p2pcf.on("peerclose", (peer) => { + console.log("Peer close", peer.id, peer); + removePeerUi(peer.id); + }); + + p2pcf.on("msg", (peer, data) => { + addMessage( + peer.id.substring(0, 5) + + ": " + + new TextDecoder("utf-8").decode(data) + ); + }); + + const go = () => { + document.getElementById("session-id").innerText = + p2pcf.sessionId.substring(0, 5) + "@" + p2pcf.roomId + ":"; + + // document.getElementById('send-button').addEventListener('click', () => { + // const box = document.getElementById('send-box'); + // addMessage(p2pcf.sessionId.substring(0, 5) + ': ' + box.value); + // p2pcf.broadcast(new TextEncoder().encode(box.value)); + // box.value = ''; + // }) + + document + .getElementById("audio-button") + .addEventListener("click", async () => { + stream = await navigator.mediaDevices.getUserMedia({ + audio: true + }); + + for (const peer of p2pcf.peers.values()) { + peer.addStream(stream); + } + }); + + p2pcf.start(); + }; + if ( + document.readyState === "complete" || + document.readyState === "interactive" + ) { + document + .getElementById("join-button") + .addEventListener("click", async () => { + window.addEventListener("DOMContentLoaded", audio, { + once: true + }); + // window.addEventListener('DOMContentLoaded', go, { once: true }) + }); + } else { + window.addEventListener("DOMContentLoaded", go, { once: true }); + } + + return <>; }; export default Networking; diff --git a/blocks/environment/components/Player.js b/blocks/environment/components/Player.js index 0a648c5..f9c20b4 100644 --- a/blocks/environment/components/Player.js +++ b/blocks/environment/components/Player.js @@ -1,71 +1,83 @@ -import { Raycaster, Vector3, ImageUtils } from 'three'; -import { TextureLoader } from 'three/src/loaders/TextureLoader' -import { useXR, Interactive } from '@react-three/xr'; -import { useFrame, useLoader, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import Controls from './Controls'; +import { Raycaster, Vector3, ImageUtils } from "three"; +import { TextureLoader } from "three/src/loaders/TextureLoader"; +import { useXR, Interactive } from "@react-three/xr"; +import { useFrame, useLoader, useThree } from "@react-three/fiber"; +import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; +import Controls from "./Controls"; -import { useCallback, useRef, useState, useEffect } from 'react'; -import { RigidBody, MeshCollider, useRapier, usePhysics, useRigidBody, BallCollider, CapsuleCollider, RigidBodyApi } from '@react-three/rapier'; -import defaultVRM from '../../../inc/avatars/3ov_default_avatar.vrm'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' - -export default function Player( props ) { +import { useCallback, useRef, useState, useEffect } from "react"; +import { + RigidBody, + MeshCollider, + useRapier, + usePhysics, + useRigidBody, + BallCollider, + CapsuleCollider, + RigidBodyApi +} from "@react-three/rapier"; +import defaultVRM from "../../../inc/avatars/3ov_default_avatar.vrm"; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from "@pixiv/three-vrm"; +export default function Player(props) { const { camera, scene } = useThree(); const participantObject = scene.getObjectByName("playerOne"); - const [ rapierId, setRapierId ] = useState(""); - const [ contactPoint, setContactPoint ] = useState(""); - const [ headPoint, setHeadPoint ] = useState(""); + const [rapierId, setRapierId] = useState(""); + const [contactPoint, setContactPoint] = useState(""); + const [headPoint, setHeadPoint] = useState(""); const rigidRef = useRef(); - useFrame( () => { - if(participantObject){ - var posY = participantObject.parent.position.y; + useFrame(() => { + if (participantObject) { + const posY = participantObject.parent.position.y; // var posY = participantObject.userData.vrm.firstPerson.humanoid.humanBones.head.position.y; // camera.position.setY( posY + 1.5 ); - camera.position.setY( posY + 1.5 ); + camera.position.setY(posY + 1.5); // participantObject.rotation.set([0, camera.rotation.y, 0]); // participantObject.rotation.set(camera.rotation); } - } ); + }); // Participant VRM. const fallbackURL = threeObjectPlugin + defaultVRM; const playerURL = userData.vrm ? userData.vrm : fallbackURL; - const someSceneState = useLoader( GLTFLoader, playerURL, ( loader ) => { - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); + const someSceneState = useLoader(GLTFLoader, playerURL, (loader) => { + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); - if(someSceneState?.userData?.gltfExtensions?.VRM){ + if (someSceneState?.userData?.gltfExtensions?.VRM) { const playerController = someSceneState.userData.vrm; - const loadedProfile = useLoader(TextureLoader, userData.profileImage) - playerController.scene.traverse( ( obj ) => { - if(obj.name === "profile"){ - var newMat = obj.material.clone(); + const loadedProfile = useLoader(TextureLoader, userData.profileImage); + playerController.scene.traverse((obj) => { + if (obj.name === "profile") { + const newMat = obj.material.clone(); newMat.map = loadedProfile; obj.material = newMat; obj.material.map.needsUpdate = true; } }); - VRMUtils.rotateVRM0( playerController ); - useEffect(()=>{ - setHeadPoint(playerController.firstPerson.humanoid.humanBones.head.node.position.y); - }, []) - playerController.firstPerson.humanoid.humanBones.head.node.scale.set([0,0,0]); + VRMUtils.rotateVRM0(playerController); + useEffect(() => { + setHeadPoint( + playerController.firstPerson.humanoid.humanBones.head.node + .position.y + ); + }, []); + playerController.firstPerson.humanoid.humanBones.head.node.scale.set([ + 0, 0, 0 + ]); // const rotationVRM = playerController.scene.rotation.y; // playerController.scene.rotation.set( 0, rotationVRM, 0 ); // playerController.scene.scale.set( 1, 1, 1 ); return ( <> - {playerController && - ( + {playerController && ( <> - { + onCollisionEnter={({ manifold, target }) => { setRapierId(target.colliderSet.map.data[1]); setContactPoint(manifold.solverContactPoint(0)); }} @@ -91,11 +103,14 @@ export default function Player( props ) { something={rigidRef} spawnPoint={props.spawnPoint} /> - + - ) - } + )} ); } diff --git a/blocks/environment/components/TeleportTravel.js b/blocks/environment/components/TeleportTravel.js index 3c0b646..784173f 100644 --- a/blocks/environment/components/TeleportTravel.js +++ b/blocks/environment/components/TeleportTravel.js @@ -1,45 +1,39 @@ -import { Raycaster, Vector3 } from 'three'; -import { useXR, Interactive } from '@react-three/xr'; -import { useFrame } from '@react-three/fiber'; -import { useCallback, useRef, useState } from 'react'; +import { Raycaster, Vector3 } from "three"; +import { useXR, Interactive } from "@react-three/xr"; +import { useFrame } from "@react-three/fiber"; +import { useCallback, useRef, useState } from "react"; -export function TeleportIndicator( props ) { +export function TeleportIndicator(props) { return ( <> - - - - + + + + ); } -export default function TeleportTravel( props ) { +export default function TeleportTravel(props) { const { centerOnTeleport, Indicator = TeleportIndicator, - useNormal = true, + useNormal = true } = props; - const [ isHovered, setIsHovered ] = useState( false ); + const [isHovered, setIsHovered] = useState(false); const target = useRef(); const targetLoc = useRef(); - const ray = useRef( new Raycaster() ); + const ray = useRef(new Raycaster()); - const rayDir = useRef( { + const rayDir = useRef({ pos: new Vector3(), - dir: new Vector3(), - } ); + dir: new Vector3() + }); const { controllers, player } = useXR(); - useFrame( () => { + useFrame(() => { if ( isHovered && controllers.length > 0 && @@ -47,56 +41,54 @@ export default function TeleportTravel( props ) { target.current && targetLoc.current ) { - controllers[ 0 ].controller.getWorldDirection( rayDir.current.dir ); - controllers[ 0 ].controller.getWorldPosition( rayDir.current.pos ); - rayDir.current.dir.multiplyScalar( -1 ); - ray.current.set( rayDir.current.pos, rayDir.current.dir ); + controllers[0].controller.getWorldDirection(rayDir.current.dir); + controllers[0].controller.getWorldPosition(rayDir.current.pos); + rayDir.current.dir.multiplyScalar(-1); + ray.current.set(rayDir.current.pos, rayDir.current.dir); - const [ intersection ] = ray.current.intersectObject( - target.current - ); + const [intersection] = ray.current.intersectObject(target.current); - if ( intersection ) { - if ( useNormal ) { + if (intersection) { + if (useNormal) { const p = intersection.point; - targetLoc.current.position.set( 0, 0, 0 ); + targetLoc.current.position.set(0, 0, 0); const n = intersection.face.normal.clone(); - n.transformDirection( intersection.object.matrixWorld ); + n.transformDirection(intersection.object.matrixWorld); - targetLoc.current.lookAt( n ); + targetLoc.current.lookAt(n); targetLoc.current.rotateOnAxis( - new Vector3( 1, 0, 0 ), + new Vector3(1, 0, 0), Math.PI / 2 ); - targetLoc.current.position.copy( p ); + targetLoc.current.position.copy(p); } else { - targetLoc.current.position.copy( intersection.point ); + targetLoc.current.position.copy(intersection.point); } } } - } ); + }); - const click = useCallback( () => { - if ( isHovered ) { - player.position.copy( targetLoc.current.position ); + const click = useCallback(() => { + if (isHovered) { + player.position.copy(targetLoc.current.position); } - }, [ centerOnTeleport, isHovered, useNormal ] ); + }, [centerOnTeleport, isHovered, useNormal]); return ( <> - { isHovered && ( - + {isHovered && ( + - ) } + )} setIsHovered( true ) } - onBlur={ () => setIsHovered( false ) } + onSelect={click} + onHover={() => setIsHovered(true)} + onBlur={() => setIsHovered(false)} > - { props.children } + {props.children} ); diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 9a611bc..102b1d3 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -1,8 +1,8 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'; +import * as THREE from "three"; +import React, { Suspense, useRef, useState, useEffect, useMemo } from "react"; +import { Canvas, useLoader, useFrame, useThree } from "@react-three/fiber"; +import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; +import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader"; import { PerspectiveCamera, OrbitControls, @@ -12,154 +12,279 @@ import { Stats, Select, Text -} from '@react-three/drei'; -import { VRMUtils, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; -import { - A11y, -} from '@react-three/a11y'; -import { Perf } from 'r3f-perf'; -import EditControls from './EditControls'; -import CustomComponent from '../../../../four-object-viewer/blocks/four-portal-block/components/CustomComponent'; -import { Resizable } from 're-resizable'; -import { useAspect } from '@react-three/drei'; - -function Markup( model ) { +} from "@react-three/drei"; +import { VRMUtils, VRMLoaderPlugin } from "@pixiv/three-vrm"; +import { GLTFAudioEmitterExtension } from "three-omi"; +import { A11y } from "@react-three/a11y"; +import { Perf } from "r3f-perf"; +import EditControls from "./EditControls"; +import CustomComponent from "../../../../four-object-viewer/blocks/four-portal-block/components/CustomComponent"; +import { Resizable } from "re-resizable"; +import { useAspect } from "@react-three/drei"; + +function Markup(model) { const htmlObj = useRef(); - return(<> - { - const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); - const scale = e?.target.worldScale; - rot.setFromQuaternion(e?.target.worldQuaternion); - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(model.htmlobjectId, { - positionX: e?.target.worldPosition.x, - positionY: e?.target.worldPosition.y, - positionZ: e?.target.worldPosition.z, - rotationX: rot.x, - rotationY: rot.y, - rotationZ: rot.z, - scaleX: scale.x, - scaleY: scale.y, - scaleZ: scale.z - }) - }} - > - - - - -
-
- -
-
-
- ); + return ( + <> + { + const rot = new THREE.Euler(0, 0, 0, "XYZ"); + const scale = e?.target.worldScale; + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data + .dispatch("core/block-editor") + .updateBlockAttributes(model.htmlobjectId, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z + }); + }} + > + + + + +
+ +
+
+
+ + ); } -function Sky( sky ) { +function Sky(sky) { const skyUrl = sky.src.skyUrl; - if(skyUrl){ + if (skyUrl) { const texture_1 = useLoader(THREE.TextureLoader, skyUrl); return ( - + - ); + ); } } -function Spawn( spawn ) { +function Spawn(spawn) { const spawnObj = useRef(); const [isSelected, setIsSelected] = useState(); - const spawnBlockAttributes = wp.data.select( 'core/block-editor' ).getBlockAttributes(spawn.spawnpointID); - const TransformController = ({condition, wrap, children}) => condition ? wrap(children) : children; - if(spawn){ + const spawnBlockAttributes = wp.data + .select("core/block-editor") + .getBlockAttributes(spawn.spawnpointID); + const TransformController = ({ condition, wrap, children }) => + condition ? wrap(children) : children; + if (spawn) { return ( - { + e.length !== 0 ? setIsSelected(true) : setIsSelected(false); }} + filter={(items) => items} > - {children} - )}> - {spawnBlockAttributes && ( - - - - - )} - + ( + { + const rot = new THREE.Euler(0, 0, 0, "XYZ"); + const scale = e?.target.worldScale; + rot.setFromQuaternion( + e?.target.worldQuaternion + ); + wp.data + .dispatch("core/block-editor") + .updateBlockAttributes(spawn.spawnpointID, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z + }); + }} + > + {children} + + )} + > + {spawnBlockAttributes && ( + + + + + )} + - ); + ); } } - -function ImageObject( threeImage ) { - const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); +function ImageObject(threeImage) { + const texture_2 = useLoader(THREE.TextureLoader, threeImage.url); const imgObj = useRef(); const [isSelected, setIsSelected] = useState(); - const threeImageBlockAttributes = wp.data.select( 'core/block-editor' ).getBlockAttributes(threeImage.imageID); + const threeImageBlockAttributes = wp.data + .select("core/block-editor") + .getBlockAttributes(threeImage.imageID); return ( - { + e.length !== 0 ? setIsSelected(true) : setIsSelected(false); + }} + filter={(items) => items} + > + {isSelected === true ? ( + { + const rot = new THREE.Euler(0, 0, 0, "XYZ"); + const scale = e?.target.worldScale; + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data + .dispatch("core/block-editor") + .updateBlockAttributes(threeImage.imageID, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z + }); + }} + > + + + + + + ) : ( + + + )} @@ -168,290 +293,438 @@ function ImageObject( threeImage ) { function VideoObject(threeVideo) { const clicked = true; - const [video] = useState(() => Object.assign(document.createElement('video'), { src: threeVideo.url, crossOrigin: 'Anonymous', loop: true, muted: true })); + const [video] = useState(() => + Object.assign(document.createElement("video"), { + src: threeVideo.url, + crossOrigin: "Anonymous", + loop: true, + muted: true + }) + ); const videoObj = useRef(); const [isSelected, setIsSelected] = useState(); - const [threeVideoBlockAttributes, setThreeVideoBlockAttributes ] = useState(wp.data.select( 'core/block-editor' ).getBlockAttributes(threeVideo.videoID)); - const TransformController = ({condition, wrap, children}) => condition ? wrap(children) : children; - + const [threeVideoBlockAttributes, setThreeVideoBlockAttributes] = useState( + wp.data + .select("core/block-editor") + .getBlockAttributes(threeVideo.videoID) + ); + const TransformController = ({ condition, wrap, children }) => + condition ? wrap(children) : children; useEffect(() => void (clicked && video.play()), [video, clicked]); return ( - { + e.length !== 0 ? setIsSelected(true) : setIsSelected(false); + }} + filter={(items) => items} + > ( - ( + { - const rot = new THREE.Euler( 0, 0, 0, 'XYZ' ); - const scale = e?.target.worldScale; - rot.setFromQuaternion(e?.target.worldQuaternion); - wp.data.dispatch( 'core/block-editor' ).updateBlockAttributes(threeVideo.videoID, { + onMouseUp={(e) => { + const rot = new THREE.Euler(0, 0, 0, "XYZ"); + const scale = e?.target.worldScale; + rot.setFromQuaternion(e?.target.worldQuaternion); + wp.data + .dispatch("core/block-editor") + .updateBlockAttributes(threeVideo.videoID, { positionX: e?.target.worldPosition.x, positionY: e?.target.worldPosition.y, - positionZ: e?.target.worldPosition.z, + positionZ: e?.target.worldPosition.z, rotationX: rot.x, rotationY: rot.y, rotationZ: rot.z, - scaleX: scale.x, - scaleY: scale.y, - scaleZ: scale.z - }) - setThreeVideoBlockAttributes(wp.data.select( 'core/block-editor' ).getBlockAttributes(threeVideo.videoID)); - - if(threeVideo.shouldFocus){ - setFocusPosition([e?.target.worldPosition.x, e?.target.worldPosition.y, e?.target.worldPosition.z]); + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z + }); + setThreeVideoBlockAttributes( + wp.data + .select("core/block-editor") + .getBlockAttributes(threeVideo.videoID) + ); + + if (threeVideo.shouldFocus) { + setFocusPosition([ + e?.target.worldPosition.x, + e?.target.worldPosition.y, + e?.target.worldPosition.z + ]); camera.position.set(threeVideo.focusPosition); } - } - } - > - {children} - - )} - > - {threeVideoBlockAttributes && ( - - - - - - - )} - + }} + > + {children} + + )} + > + {threeVideoBlockAttributes && ( + + + + + + + )} + ); } -function ModelObject( model ) { - const [ url, set ] = useState( model.url ); - useEffect( () => { - setTimeout( () => set( model.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); +function ModelObject(model) { + const [url, set] = useState(model.url); + useEffect(() => { + setTimeout(() => set(model.url), 2000); + }, []); + const [listener] = useState(() => new THREE.AudioListener()); - useThree( ( { camera } ) => { - camera.add( listener ); - } ); - const {camera} = useThree(); + useThree(({ camera }) => { + camera.add(listener); + }); + const { camera } = useThree(); - const gltf = useLoader( GLTFLoader, model.url, ( loader ) => { + const gltf = useLoader(GLTFLoader, model.url, (loader) => { loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + (parser) => new GLTFAudioEmitterExtension(parser, listener) ); - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); - - const { actions } = useAnimations( gltf.animations, gltf.scene ); - - const animationList = model.animations ? model.animations.split( ',' ) : ''; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); + + const { actions } = useAnimations(gltf.animations, gltf.scene); + + const animationList = model.animations ? model.animations.split(",") : ""; + useEffect(() => { + if (animationList) { + animationList.forEach((name) => { + if (Object.keys(actions).includes(name)) { + actions[name].play(); } - } ); + }); } - }, [] ); - if(gltf?.userData?.gltfExtensions?.VRM){ - const vrm = gltf.userData.vrm; - vrm.scene.position.set( model.positionX, model.positionY, model.positionZ ); - VRMUtils.rotateVRM0( vrm ); - const rotationVRM = vrm.scene.rotation.y + parseFloat(0); - vrm.scene.rotation.set( 0, rotationVRM, 0 ); - vrm.scene.scale.set( 1, 1, 1 ); - vrm.scene.scale.set( model.scaleX, model.scaleY, model.scaleZ ); - return ( - // - - // - ); + }, []); + if (gltf?.userData?.gltfExtensions?.VRM) { + const vrm = gltf.userData.vrm; + vrm.scene.position.set( + model.positionX, + model.positionY, + model.positionZ + ); + VRMUtils.rotateVRM0(vrm); + const rotationVRM = vrm.scene.rotation.y + parseFloat(0); + vrm.scene.rotation.set(0, rotationVRM, 0); + vrm.scene.scale.set(1, 1, 1); + vrm.scene.scale.set(model.scaleX, model.scaleY, model.scaleZ); + return ( + // + + // + ); } - gltf.scene.rotation.set( 0, 0, 0 ); + gltf.scene.rotation.set(0, 0, 0); const obj = useRef(); - const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); const [isSelected, setIsSelected] = useState(); - const [modelBlockAttributes, setModelBlockAttributes ] = useState(wp.data.select( 'core/block-editor' ).getBlockAttributes(model.modelId)); - const TransformController = ({condition, wrap, children}) => condition ? wrap(children) : children; - - return (<> - { + e.length !== 0 ? setIsSelected(true) : setIsSelected(false); + }} + filter={(items) => items} > - {children} - - )} - > - { modelBlockAttributes && ( - ( + { + const rot = new THREE.Euler(0, 0, 0, "XYZ"); + const scale = e?.target.worldScale; + rot.setFromQuaternion( + e?.target.worldQuaternion + ); + wp.data + .dispatch("core/block-editor") + .updateBlockAttributes(model.modelId, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z + }); + setModelBlockAttributes( + wp.data + .select("core/block-editor") + .getBlockAttributes(model.modelId) + ); + + if (model.shouldFocus) { + setFocusPosition([ + e?.target.worldPosition.x, + e?.target.worldPosition.y, + e?.target.worldPosition.z + ]); + camera.position.set(model.focusPosition); + } + }} + > + {children} + + )} > - - - ) - } - - - ); + {modelBlockAttributes && ( + + + + )} + + + + ); } -function PortalObject( model ) { +function PortalObject(model) { const [isSelected, setIsSelected] = useState(); - const [portalBlockAttributes, setPortalBlockAttributes ] = useState(wp.data.select( 'core/block-editor' ).getBlockAttributes(model.portalID)); - const TransformController = ({condition, wrap, children}) => condition ? wrap(children) : children; + const [portalBlockAttributes, setPortalBlockAttributes] = useState( + wp.data.select("core/block-editor").getBlockAttributes(model.portalID) + ); + const TransformController = ({ condition, wrap, children }) => + condition ? wrap(children) : children; - const [ url, set ] = useState( model.url ); - useEffect( () => { - setTimeout( () => set( model.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); + const [url, set] = useState(model.url); + useEffect(() => { + setTimeout(() => set(model.url), 2000); + }, []); + const [listener] = useState(() => new THREE.AudioListener()); - useThree( ( { camera } ) => { - camera.add( listener ); - } ); - const {camera} = useThree(); + useThree(({ camera }) => { + camera.add(listener); + }); + const { camera } = useThree(); - const gltf = useLoader( GLTFLoader, model.url, ( loader ) => { + const gltf = useLoader(GLTFLoader, model.url, (loader) => { loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + (parser) => new GLTFAudioEmitterExtension(parser, listener) ); - loader.register( ( parser ) => { - return new VRMLoaderPlugin( parser ); - } ); - } ); - - const { actions } = useAnimations( gltf.animations, gltf.scene ); - - const animationList = model.animations ? model.animations.split( ',' ) : ''; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); + + const { actions } = useAnimations(gltf.animations, gltf.scene); + + const animationList = model.animations ? model.animations.split(",") : ""; + useEffect(() => { + if (animationList) { + animationList.forEach((name) => { + if (Object.keys(actions).includes(name)) { + actions[name].play(); } - } ); + }); } - }, [] ); - if(gltf?.userData?.gltfExtensions?.VRM){ - const vrm = gltf.userData.vrm; - vrm.scene.position.set( model.positionX, model.positionY, model.positionZ ); - VRMUtils.rotateVRM0( vrm ); - const rotationVRM = vrm.scene.rotation.y + parseFloat(0); - vrm.scene.rotation.set( 0, rotationVRM, 0 ); - vrm.scene.scale.set( 1, 1, 1 ); - vrm.scene.scale.set( model.scaleX, model.scaleY, model.scaleZ ); - return ( - // - - // - ); + }, []); + if (gltf?.userData?.gltfExtensions?.VRM) { + const vrm = gltf.userData.vrm; + vrm.scene.position.set( + model.positionX, + model.positionY, + model.positionZ + ); + VRMUtils.rotateVRM0(vrm); + const rotationVRM = vrm.scene.rotation.y + parseFloat(0); + vrm.scene.rotation.set(0, rotationVRM, 0); + vrm.scene.scale.set(1, 1, 1); + vrm.scene.scale.set(model.scaleX, model.scaleY, model.scaleZ); + return ( + // + + // + ); } - gltf.scene.rotation.set( 0, 0, 0 ); + gltf.scene.rotation.set(0, 0, 0); const obj = useRef(); - const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) - - return (<> - { + e.length !== 0 ? setIsSelected(true) : setIsSelected(false); + }} + filter={(items) => items} + > + ( + - {children} - - )} - > - { portalBlockAttributes && ( - { + const rot = new THREE.Euler(0, 0, 0, "XYZ"); + const scale = e?.target.worldScale; + rot.setFromQuaternion( + e?.target.worldQuaternion + ); + wp.data + .dispatch("core/block-editor") + .updateBlockAttributes(model.portalID, { + positionX: e?.target.worldPosition.x, + positionY: e?.target.worldPosition.y, + positionZ: e?.target.worldPosition.z, + rotationX: rot.x, + rotationY: rot.y, + rotationZ: rot.z, + scaleX: scale.x, + scaleY: scale.y, + scaleZ: scale.z + }); + setPortalBlockAttributes( + wp.data + .select("core/block-editor") + .getBlockAttributes(model.portalID) + ); + + if (model.shouldFocus) { + setFocusPosition([ + e?.target.worldPosition.x, + e?.target.worldPosition.y, + e?.target.worldPosition.z + ]); + camera.position.set(model.focusPosition); + } + }} + > + {children} + + )} > - - { portalBlockAttributes.label + ': ' + portalBlockAttributes.destinationUrl } - - - - )} - - - ); + {portalBlockAttributes && ( + + + {portalBlockAttributes.label + + ": " + + portalBlockAttributes.destinationUrl} + + + + )} + + + + ); } -function ThreeObject( props ) { +function ThreeObject(props) { let skyobject; let skyobjectId; @@ -460,67 +733,87 @@ function ThreeObject( props ) { let modelobject; let modelID; - let editorModelsToAdd = []; + const editorModelsToAdd = []; let portalobject; let portalID; - let editorPortalsToAdd = []; + const editorPortalsToAdd = []; let imageID; - let imageElementsToAdd = []; + const imageElementsToAdd = []; let imageobject; let videoID; let videoobject; - let videoElementsToAdd = []; + const videoElementsToAdd = []; - let editorHtmlToAdd= []; + const editorHtmlToAdd = []; let htmlobject; let htmlobjectId; - const currentBlocks = wp.data.select( 'core/block-editor' ).getBlocks(); - if(currentBlocks){ - currentBlocks.forEach( ( block ) => { - if (block.name === "three-object-viewer/environment"){ + const currentBlocks = wp.data.select("core/block-editor").getBlocks(); + if (currentBlocks) { + currentBlocks.forEach((block) => { + if (block.name === "three-object-viewer/environment") { const currentInnerBlocks = block.innerBlocks; if (currentInnerBlocks) { - currentInnerBlocks.forEach( ( innerBlock ) => { - if(innerBlock.name === "three-object-viewer/sky-block"){ + currentInnerBlocks.forEach((innerBlock) => { + if ( + innerBlock.name === "three-object-viewer/sky-block" + ) { skyobject = innerBlock.attributes; skyobjectId = innerBlock.clientId; } - if(innerBlock.name === "three-object-viewer/spawn-point-block"){ + if ( + innerBlock.name === + "three-object-viewer/spawn-point-block" + ) { spawnpoint = innerBlock.attributes; spawnpointID = innerBlock.clientId; } - if(innerBlock.name === "three-object-viewer/model-block"){ + if ( + innerBlock.name === + "three-object-viewer/model-block" + ) { modelobject = innerBlock.attributes; modelID = innerBlock.clientId; - let something = [{modelobject, modelID}] - editorModelsToAdd.push({modelobject, modelID}); + const something = [{ modelobject, modelID }]; + editorModelsToAdd.push({ modelobject, modelID }); } - if(innerBlock.name === "three-object-viewer/three-image-block"){ + if ( + innerBlock.name === + "three-object-viewer/three-image-block" + ) { imageobject = innerBlock.attributes; imageID = innerBlock.clientId; - let something = [{imageobject, imageID}] - imageElementsToAdd.push({imageobject, imageID}); + const something = [{ imageobject, imageID }]; + imageElementsToAdd.push({ imageobject, imageID }); } - if(innerBlock.name === "three-object-viewer/three-video-block"){ + if ( + innerBlock.name === + "three-object-viewer/three-video-block" + ) { videoobject = innerBlock.attributes; videoID = innerBlock.clientId; - let something = [{videoobject, videoID}] - videoElementsToAdd.push({videoobject, videoID}); + const something = [{ videoobject, videoID }]; + videoElementsToAdd.push({ videoobject, videoID }); } - if(innerBlock.name === "three-object-viewer/three-portal-block"){ + if ( + innerBlock.name === + "three-object-viewer/three-portal-block" + ) { portalobject = innerBlock.attributes; portalID = innerBlock.clientId; - let something = [{portalobject, portalID}] - editorPortalsToAdd.push({portalobject, portalID}); + const something = [{ portalobject, portalID }]; + editorPortalsToAdd.push({ portalobject, portalID }); } - if(innerBlock.name === "three-object-viewer/three-html-block"){ + if ( + innerBlock.name === + "three-object-viewer/three-html-block" + ) { htmlobject = innerBlock.attributes; htmlobjectId = innerBlock.clientId; - editorHtmlToAdd.push({htmlobject, htmlobjectId}); + editorHtmlToAdd.push({ htmlobject, htmlobjectId }); } }); } @@ -528,144 +821,141 @@ function ThreeObject( props ) { }); } + const [url, set] = useState(props.url); + useEffect(() => { + setTimeout(() => set(props.url), 2000); + }, []); + const [listener] = useState(() => new THREE.AudioListener()); - const [ url, set ] = useState( props.url ); - useEffect( () => { - setTimeout( () => set( props.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); + useThree(({ camera }) => { + camera.add(listener); + }); - useThree( ( { camera } ) => { - camera.add( listener ); - } ); - - const gltf = useLoader( GLTFLoader, url, ( loader ) => { + const gltf = useLoader(GLTFLoader, url, (loader) => { // const dracoLoader = new DRACOLoader(); // dracoLoader.setDecoderPath('https://www.gstatic.com/draco/v1/decoders/'); // loader.setDRACOLoader(dracoLoader); loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + (parser) => new GLTFAudioEmitterExtension(parser, listener) ); - loader.register( ( parser ) => { - - return new VRMLoaderPlugin( parser ); - - } ); - - } ); + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); - const { actions } = useAnimations( gltf.animations, gltf.scene ); + const { actions } = useAnimations(gltf.animations, gltf.scene); - const animationList = props.animations ? props.animations.split( ',' ) : ''; + const animationList = props.animations ? props.animations.split(",") : ""; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); + useEffect(() => { + if (animationList) { + animationList.forEach((name) => { + if (Object.keys(actions).includes(name)) { + actions[name].play(); } - } ); + }); } - }, [] ); - - if(gltf?.userData?.gltfExtensions?.VRM){ - const vrm = gltf.userData.vrm; - vrm.scene.position.set( 0, props.positionY, 0 ); - VRMUtils.rotateVRM0( vrm ); - const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - vrm.scene.rotation.set( 0, rotationVRM, 0 ); - vrm.scene.scale.set( props.scale, props.scale, props.scale ); - return ; - } - gltf.scene.position.set( 0, props.positionY, 0 ); - gltf.scene.rotation.set( 0, props.rotationY, 0 ); - gltf.scene.scale.set( props.scale, props.scale, props.scale ); + }, []); + + if (gltf?.userData?.gltfExtensions?.VRM) { + const vrm = gltf.userData.vrm; + vrm.scene.position.set(0, props.positionY, 0); + VRMUtils.rotateVRM0(vrm); + const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); + vrm.scene.rotation.set(0, rotationVRM, 0); + vrm.scene.scale.set(props.scale, props.scale, props.scale); + return ; + } + gltf.scene.position.set(0, props.positionY, 0); + gltf.scene.rotation.set(0, props.rotationY, 0); + gltf.scene.scale.set(props.scale, props.scale, props.scale); // const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]) - return( - <> - {skyobject && } - {spawnpoint && + {skyobject && } + {spawnpoint && ( + - } - { Object.values(editorModelsToAdd).map((model, index)=>{ - if(model.modelobject.threeObjectUrl){ - return( - { + if (model.modelobject.threeObjectUrl) { + return ( + ); } })} - { Object.values(editorPortalsToAdd).map((model, index)=>{ - if(model.portalobject.threeObjectUrl){ - return( - { + if (model.portalobject.threeObjectUrl) { + return ( + ); } })} - { Object.values(imageElementsToAdd).map((model, index)=>{ - if(model.imageobject.imageUrl){ - return( - { + if (model.imageobject.imageUrl) { + return ( + { - if(model.videoobject.videoUrl){ - return( - { + if (model.videoobject.videoUrl) { + return ( + { - return(); + {Object.values(editorHtmlToAdd).map((markup, index) => { + return ( + + ); })} {/* {modelobject && props.transformMode && modelobject.threeObjectUrl && } */} - + ); } -export default function ThreeObjectEdit( props ) { - - const [ transformMode, setTransformMode ] = useState("translate"); - const [ focusPosition, setFocusPosition ] = useState([0,0,0]); - const [ shouldFocus, setShouldFocus ] = useState(false); - const onKeyUp = function ( event ) { - switch ( event.code ) { - case 'KeyT': - setTransformMode( "translate" ); - break; - case 'KeyR': - setTransformMode( "rotate" ); +export default function ThreeObjectEdit(props) { + const [transformMode, setTransformMode] = useState("translate"); + const [focusPosition, setFocusPosition] = useState([0, 0, 0]); + const [shouldFocus, setShouldFocus] = useState(false); + const onKeyUp = function (event) { + switch (event.code) { + case "KeyT": + setTransformMode("translate"); + break; + case "KeyR": + setTransformMode("rotate"); break; - case 'KeyS': - setTransformMode( "scale" ); + case "KeyS": + setTransformMode("scale"); break; - case 'KeyF': + case "KeyF": setShouldFocus(true); - break; + break; default: - return; } }; - document.addEventListener( 'keyup', onKeyUp ); - + document.addEventListener("keyup", onKeyUp); return ( <> - - - - - - { props.url && ( - - {/* */} - + + + + + + {props.url && ( + + {/* */} + - ) } - - + )} + + ); diff --git a/blocks/environment/components/p2pcf/p2pcf.js b/blocks/environment/components/p2pcf/p2pcf.js index 9a3fa28..1266ae5 100644 --- a/blocks/environment/components/p2pcf/p2pcf.js +++ b/blocks/environment/components/p2pcf/p2pcf.js @@ -6,1188 +6,1245 @@ /* global crypto */ -import getBrowserRTC from 'get-browser-rtc' -import EventEmitter from 'events' -import Peer from 'tiny-simple-peer' +import getBrowserRTC from "get-browser-rtc"; +import EventEmitter from "events"; +import Peer from "tiny-simple-peer"; import { - encode as arrayBufferToBase64, - decode as base64ToArrayBuffer -} from 'base64-arraybuffer' -import { hexToBytes } from 'convert-hex' -import arrayBufferToHex from 'array-buffer-to-hex' + encode as arrayBufferToBase64, + decode as base64ToArrayBuffer +} from "base64-arraybuffer"; +import { hexToBytes } from "convert-hex"; +import arrayBufferToHex from "array-buffer-to-hex"; // Based on Chrome -const MAX_MESSAGE_LENGTH_BYTES = 16000 +const MAX_MESSAGE_LENGTH_BYTES = 16000; -const CHUNK_HEADER_LENGTH_BYTES = 12 // 2 magic, 2 msg id, 2 chunk id, 2 for done bit, 4 for length -const CHUNK_MAGIC_WORD = 8121 +const CHUNK_HEADER_LENGTH_BYTES = 12; // 2 magic, 2 msg id, 2 chunk id, 2 for done bit, 4 for length +const CHUNK_MAGIC_WORD = 8121; const CHUNK_MAX_LENGTH_BYTES = - MAX_MESSAGE_LENGTH_BYTES - CHUNK_HEADER_LENGTH_BYTES + MAX_MESSAGE_LENGTH_BYTES - CHUNK_HEADER_LENGTH_BYTES; // Signalling messages have a 64-bit unique header -const SIGNAL_MESSAGE_HEADER_WORDS = [0x82ab, 0x81cd, 0x1295, 0xa1cb] +const SIGNAL_MESSAGE_HEADER_WORDS = [0x82ab, 0x81cd, 0x1295, 0xa1cb]; const CANDIDATE_TYPES = { - host: 0, - srflx: 1, - relay: 2 -} + host: 0, + srflx: 1, + relay: 2 +}; const CANDIDATE_TCP_TYPES = { - active: 0, - passive: 1, - so: 2 -} + active: 0, + passive: 1, + so: 2 +}; const CANDIDATE_IDX = { - TYPE: 0, - PROTOCOL: 1, - IP: 2, - PORT: 3, - RELATED_IP: 4, - RELATED_PORT: 5, - TCP_TYPE: 6 -} + TYPE: 0, + PROTOCOL: 1, + IP: 2, + PORT: 3, + RELATED_IP: 4, + RELATED_PORT: 5, + TCP_TYPE: 6 +}; const DEFAULT_STUN_ICE = [ - { urls: 'stun:stun1.l.google.com:19302' }, - { urls: 'stun:global.stun.twilio.com:3478' } -] + { urls: "stun:stun1.l.google.com:19302" }, + { urls: "stun:global.stun.twilio.com:3478" } +]; const DEFAULT_TURN_ICE = [ - { - urls: 'turn:openrelay.metered.ca:80', - username: 'openrelayproject', - credential: 'openrelayproject' - }, - { - urls: 'turn:openrelay.metered.ca:443', - username: 'openrelayproject', - credential: 'openrelayproject' - }, - { - urls: 'turn:openrelay.metered.ca:443?transport=tcp', - username: 'openrelayproject', - credential: 'openrelayproject' - } -] - -const randomstring = len => { - const bytes = crypto.getRandomValues(new Uint8Array(len)) - const str = bytes.reduce((accum, v) => accum + String.fromCharCode(v), '') - return btoa(str).replaceAll('=', '') -} - -const textDecoder = new TextDecoder('utf-8') -const textEncoder = new TextEncoder() - -const arrToText = textDecoder.decode.bind(textDecoder) -const textToArr = textEncoder.encode.bind(textEncoder) + { + urls: "turn:openrelay.metered.ca:80", + username: "openrelayproject", + credential: "openrelayproject" + }, + { + urls: "turn:openrelay.metered.ca:443", + username: "openrelayproject", + credential: "openrelayproject" + }, + { + urls: "turn:openrelay.metered.ca:443?transport=tcp", + username: "openrelayproject", + credential: "openrelayproject" + } +]; + +const randomstring = (len) => { + const bytes = crypto.getRandomValues(new Uint8Array(len)); + const str = bytes.reduce((accum, v) => accum + String.fromCharCode(v), ""); + return btoa(str).replaceAll("=", ""); +}; + +const textDecoder = new TextDecoder("utf-8"); +const textEncoder = new TextEncoder(); + +const arrToText = textDecoder.decode.bind(textDecoder); +const textToArr = textEncoder.encode.bind(textEncoder); const removeInPlace = (a, condition) => { - let i = 0; let j = 0 - - while (i < a.length) { - const val = a[i] - if (!condition(val, i, a)) a[j++] = val - i++ - } - - a.length = j - return a -} - -const ua = window.navigator.userAgent -const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i) -const webkit = !!ua.match(/WebKit/i) -const iOSSafari = !!(iOS && webkit && !ua.match(/CriOS/i)) -const isFirefox = !!(navigator?.userAgent.toLowerCase().indexOf('firefox') > -1) - -const hexToBase64 = hex => arrayBufferToBase64(hexToBytes(hex)) -const base64ToHex = b64 => arrayBufferToHex(base64ToArrayBuffer(b64)) - -function createSdp (isOffer, iceUFrag, icePwd, dtlsFingerprintBase64) { - const dtlsHex = base64ToHex(dtlsFingerprintBase64) - let dtlsFingerprint = '' - - for (let i = 0; i < dtlsHex.length; i += 2) { - dtlsFingerprint += `${dtlsHex[i]}${dtlsHex[i + 1]}${ - i === dtlsHex.length - 2 ? '' : ':' - }`.toUpperCase() - } - - const sdp = [ - 'v=0', - 'o=- 5498186869896684180 2 IN IP4 127.0.0.1', - 's=-', - 't=0 0', - 'a=msid-semantic: WMS', - 'm=application 9 UDP/DTLS/SCTP webrtc-datachannel', - 'c=IN IP4 0.0.0.0', - 'a=mid:0', - 'a=sctp-port:5000' - ] - - if (isOffer) { - sdp.push('a=setup:actpass') - } else { - sdp.push('a=setup:active') - } - - sdp.push(`a=ice-ufrag:${iceUFrag}`) - sdp.push(`a=ice-pwd:${icePwd}`) - sdp.push(`a=fingerprint:sha-256 ${dtlsFingerprint}`) - - return sdp.join('\r\n') + '\r\n' + let i = 0; + let j = 0; + + while (i < a.length) { + const val = a[i]; + if (!condition(val, i, a)) a[j++] = val; + i++; + } + + a.length = j; + return a; +}; + +const ua = window.navigator.userAgent; +const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i); +const webkit = !!ua.match(/WebKit/i); +const iOSSafari = !!(iOS && webkit && !ua.match(/CriOS/i)); +const isFirefox = !!( + navigator?.userAgent.toLowerCase().indexOf("firefox") > -1 +); + +const hexToBase64 = (hex) => arrayBufferToBase64(hexToBytes(hex)); +const base64ToHex = (b64) => arrayBufferToHex(base64ToArrayBuffer(b64)); + +function createSdp(isOffer, iceUFrag, icePwd, dtlsFingerprintBase64) { + const dtlsHex = base64ToHex(dtlsFingerprintBase64); + let dtlsFingerprint = ""; + + for (let i = 0; i < dtlsHex.length; i += 2) { + dtlsFingerprint += `${dtlsHex[i]}${dtlsHex[i + 1]}${ + i === dtlsHex.length - 2 ? "" : ":" + }`.toUpperCase(); + } + + const sdp = [ + "v=0", + "o=- 5498186869896684180 2 IN IP4 127.0.0.1", + "s=-", + "t=0 0", + "a=msid-semantic: WMS", + "m=application 9 UDP/DTLS/SCTP webrtc-datachannel", + "c=IN IP4 0.0.0.0", + "a=mid:0", + "a=sctp-port:5000" + ]; + + if (isOffer) { + sdp.push("a=setup:actpass"); + } else { + sdp.push("a=setup:active"); + } + + sdp.push(`a=ice-ufrag:${iceUFrag}`); + sdp.push(`a=ice-pwd:${icePwd}`); + sdp.push(`a=fingerprint:sha-256 ${dtlsFingerprint}`); + + return sdp.join("\r\n") + "\r\n"; } // parseCandidate from https://github.com/fippo/sdp -const parseCandidate = line => { - let parts - - // Parse both variants. - if (line.indexOf('a=candidate:') === 0) { - parts = line.substring(12).split(' ') - } else { - parts = line.substring(10).split(' ') - } - - const candidate = [ - CANDIDATE_TYPES[parts[7]], // type - parts[2].toLowerCase() === 'udp' ? 0 : 1, // protocol - parts[4], // ip - parseInt(parts[5], 10) // port - ] - - for (let i = 8; i < parts.length; i += 2) { - switch (parts[i]) { - case 'raddr': - while (candidate.length < 5) candidate.push(null) - candidate[4] = parts[i + 1] - break - case 'rport': - while (candidate.length < 6) candidate.push(null) - candidate[5] = parseInt(parts[i + 1], 10) - break - case 'tcptype': - while (candidate.length < 7) candidate.push(null) - candidate[6] = CANDIDATE_TCP_TYPES[parts[i + 1]] - break - default: - // Unknown extensions are silently ignored. - break - } - } - - while (candidate.length < 8) candidate.push(null) - candidate[7] = parseInt(parts[3], 10) // Priority last - - return candidate -} +const parseCandidate = (line) => { + let parts; + + // Parse both variants. + if (line.indexOf("a=candidate:") === 0) { + parts = line.substring(12).split(" "); + } else { + parts = line.substring(10).split(" "); + } + + const candidate = [ + CANDIDATE_TYPES[parts[7]], // type + parts[2].toLowerCase() === "udp" ? 0 : 1, // protocol + parts[4], // ip + parseInt(parts[5], 10) // port + ]; + + for (let i = 8; i < parts.length; i += 2) { + switch (parts[i]) { + case "raddr": + while (candidate.length < 5) candidate.push(null); + candidate[4] = parts[i + 1]; + break; + case "rport": + while (candidate.length < 6) candidate.push(null); + candidate[5] = parseInt(parts[i + 1], 10); + break; + case "tcptype": + while (candidate.length < 7) candidate.push(null); + candidate[6] = CANDIDATE_TCP_TYPES[parts[i + 1]]; + break; + default: + // Unknown extensions are silently ignored. + break; + } + } + + while (candidate.length < 8) candidate.push(null); + candidate[7] = parseInt(parts[3], 10); // Priority last + + return candidate; +}; export default class P2PCF extends EventEmitter { - constructor (clientId = '', roomId = '', options = {}) { - super() - - if (!clientId || clientId.length < 4) { - throw new Error('Client ID must be at least four characters') - } - - if (!roomId || roomId.length < 4) { - throw new Error('Room ID must be at least four characters') - } - - this._step = this._step.bind(this) - - this.peers = new Map() - this.msgChunks = new Map() - this.connectedSessions = [] - this.clientId = clientId - this.roomId = roomId - this.sessionId = randomstring(20) - this.packages = [] - this.dataTimestamp = null - this.lastPackages = null - this.lastProcessedReceivedDataTimestamps = new Map() - this.packageReceivedFromPeers = new Set() - this.startedAtTimestamp = null - this.peerOptions = options.rtcPeerConnectionOptions || {} - this.peerProprietaryConstraints = options.rtcPeerConnectionProprietaryConstraints || {} - this.peerSdpTransform = options.sdpTransform || ((sdp) => sdp) - - this.workerUrl = options.workerUrl || 'https://p2pcf.minddrop.workers.dev' - - if (this.workerUrl.endsWith('/')) { - this.workerUrl = this.workerUrl.substring(0, this.workerUrl.length - 1) - } - - this.stunIceServers = options.stunIceServers || DEFAULT_STUN_ICE - this.turnIceServers = options.turnIceServers || DEFAULT_TURN_ICE - this.networkChangePollIntervalMs = - options.networkChangePollIntervalMs || 15000 - - this.stateExpirationIntervalMs = - options.stateExpirationIntervalMs || 2 * 60 * 1000 - this.stateHeartbeatWindowMs = options.stateHeartbeatWindowMs || 30000 - - this.fastPollingDurationMs = options.fastPollingDurationMs || 10000 - this.fastPollingRateMs = options.fastPollingRateMs || 750 - this.slowPollingRateMs = options.slowPollingRateMs || 1500 - - this.wrtc = getBrowserRTC() - this.dtlsCert = null - this.udpEnabled = null - this.isSymmetric = null - this.dtlsFingerprint = null - this.reflexiveIps = new Set() - - // step - this.isSending = false - this.finished = false - this.nextStepTime = -1 - this.deleteKey = null - this.sentFirstPoll = false - this.stopFastPollingAt = -1 - - // ContextID is maintained across page refreshes - if (!window.history.state?._p2pcfContextId) { - window.history.replaceState( - { - ...window.history.state, - _p2pcfContextId: randomstring(20) - }, - window.location.href - ) - } - - this.contextId = window.history.state._p2pcfContextId - } - - async _init () { - if (this.dtlsCert === null) { - this.dtlsCert = await this.wrtc.RTCPeerConnection.generateCertificate({ - name: 'ECDSA', - namedCurve: 'P-256' - }) - } - } - - async _step (finish = false) { - const { - sessionId, - clientId, - roomId, - contextId, - stateExpirationIntervalMs, - stateHeartbeatWindowMs, - packages, - fastPollingDurationMs, - fastPollingRateMs, - slowPollingRateMs - } = this - - const now = Date.now() - - if (finish) { - if (this.finished) return - if (!this.deleteKey) return - this.finished = true - } else { - if (this.nextStepTime > now) return - if (this.isSending) return - if (this.reflexiveIps.length === 0) return - } - - this.isSending = true - - try { - const localDtlsFingerprintBase64 = hexToBase64( - this.dtlsFingerprint.replaceAll(':', '') - ) - - const localPeerInfo = [ - sessionId, - clientId, - this.isSymmetric, - localDtlsFingerprintBase64, - this.startedAtTimestamp, - [...this.reflexiveIps] - ] - - const payload = { r: roomId, k: contextId } - - if (finish) { - payload.dk = this.deleteKey - } - - const expired = - this.dataTimestamp === null || - now - this.dataTimestamp >= - stateExpirationIntervalMs - stateHeartbeatWindowMs - - const packagesChanged = this.lastPackages !== JSON.stringify(packages) - let includePackages = false - - if (expired || packagesChanged || finish) { - // This will force a write - this.dataTimestamp = now - - // Compact packages, expire any of them sent more than a minute ago. - // (ICE will timeout by then, even if other latency fails us.) - removeInPlace(packages, pkg => { - const sentAt = pkg[pkg.length - 2] - return now - sentAt > 60 * 1000 - }) - - includePackages = true - } - - if (finish) { - includePackages = false - } - - // The first poll should just be a read, no writes, to build up packages before we do a write - // to reduce worker I/O. So don't include the data + packages on the first request. - if (this.sentFirstPoll) { - payload.d = localPeerInfo - payload.t = this.dataTimestamp - payload.x = this.stateExpirationIntervalMs - - if (includePackages) { - payload.p = packages - this.lastPackages = JSON.stringify(packages) - } - } - - const body = JSON.stringify(payload) - const headers = { 'Content-Type': 'application/json ' } - let keepalive = false - - if (finish) { - headers['X-Worker-Method'] = 'DELETE' - keepalive = true - } - - const res = await fetch(this.workerUrl, { - method: 'POST', - headers, - body, - keepalive - }) - - const { ps: remotePeerDatas, pk: remotePackages, dk } = await res.json() - - if (dk) { - this.deleteKey = dk - } - - if (finish) return - - // Slight optimization: if the peers are empty on the first poll, immediately publish data to reduce - // delay before first peers show up. - if (remotePeerDatas.length === 0 && !this.sentFirstPoll) { - payload.d = localPeerInfo - payload.t = this.dataTimestamp - payload.x = this.stateExpirationIntervalMs - payload.p = packages - this.lastPackages = JSON.stringify(packages) - - const res = await fetch(this.workerUrl, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload) - }) - - const { dk } = await res.json() - - if (dk) { - this.deleteKey = dk - } - } - - this.sentFirstPoll = true - - const previousPeerSessionIds = [...this.peers.keys()] - - this._handleWorkerResponse( - localPeerInfo, - localDtlsFingerprintBase64, - packages, - remotePeerDatas, - remotePackages - ) - - const activeSessionIds = remotePeerDatas.map(p => p[0]) - - const peersChanged = - previousPeerSessionIds.length !== activeSessionIds.length || - activeSessionIds.find(c => !previousPeerSessionIds.includes(c)) || - previousPeerSessionIds.find(c => !activeSessionIds.includes(c)) - - // Rate limit requests when room is empty, or look for new joins - // Go faster when things are changing to avoid ICE timeouts - if (peersChanged) { - this.stopFastPollingAt = now + fastPollingDurationMs - } - - if (now < this.stopFastPollingAt) { - this.nextStepTime = now + fastPollingRateMs - } else { - this.nextStepTime = now + slowPollingRateMs - } - } catch (e) { - console.error(e) - this.nextStepTime = now + slowPollingRateMs - } finally { - this.isSending = false - } - } - - _handleWorkerResponse ( - localPeerData, - localDtlsFingerprintBase64, - localPackages, - remotePeerDatas, - remotePackages - ) { - const localStartedAtTimestamp = this.startedAtTimestamp - - const { - dtlsCert: localDtlsCert, - peers, - lastProcessedReceivedDataTimestamps, - packageReceivedFromPeers, - stunIceServers, - turnIceServers - } = this - const [localSessionId, , localSymmetric] = localPeerData - - const now = Date.now() - - for (const remotePeerData of remotePeerDatas) { - const [ - remoteSessionId, - remoteClientId, - remoteSymmetric, - remoteDtlsFingerprintBase64, - remoteStartedAtTimestamp, - remoteReflexiveIps, - remoteDataTimestamp - ] = remotePeerData - - // Don't process the same messages twice. This covers disconnect cases where stale data re-creates a peer too early. - if ( - lastProcessedReceivedDataTimestamps.get(remoteSessionId) === - remoteDataTimestamp - ) { - continue - } - - // Peer A is: - // - if both not symmetric or both symmetric, whoever has the most recent data is peer A, since we want Peer B created faster, - // and latency will be lowest with older data. - // - if one is and one isn't, the non symmetric one is the only one who has valid candidates, so the symmetric one is peer A - const isPeerA = - localSymmetric === remoteSymmetric - ? localStartedAtTimestamp === remoteStartedAtTimestamp - ? localSessionId > remoteSessionId - : localStartedAtTimestamp > remoteStartedAtTimestamp - : localSymmetric - - // If either side is symmetric, use TURN and hope we avoid connecting via relays - // We can't just use TURN if both sides are symmetric because one side might be port restricted and hence won't connect without a relay. - const iceServers = - localSymmetric || remoteSymmetric ? turnIceServers : stunIceServers - - // Firefox answer side is very aggressive with ICE timeouts, so always delay answer set until second candidates received. - const delaySetRemoteUntilReceiveCandidates = isFirefox - const remotePackage = remotePackages.find(p => p[1] === remoteSessionId) - - const peerOptions = { ...this.peerOptions, iceServers } - - if (localDtlsCert) { - peerOptions.certificates = [localDtlsCert] - } - - if (isPeerA) { - if (peers.has(remoteSessionId)) continue - if (!remotePackage) continue - - lastProcessedReceivedDataTimestamps.set( - remoteSessionId, - remoteDataTimestamp - ) - - // If we already added the candidates from B, skip. This check is not strictly necessary given the peer will exist. - if (packageReceivedFromPeers.has(remoteSessionId)) continue - packageReceivedFromPeers.add(remoteSessionId) - - // - I create PC - // - I create an answer SDP, and munge the ufrag - // - Set local description with answer - // - Set remote description via the received sdp - // - Add the ice candidates - - const [ - , - , - remoteIceUFrag, - remoteIcePwd, - remoteDtlsFingerprintBase64, - localIceUFrag, - localIcePwd, - , - remoteCandidates - ] = remotePackage - - const peer = new Peer({ - config: peerOptions, - initiator: false, - iceCompleteTimeout: 3000, - proprietaryConstraints: this.peerProprietaryConstraints, - sdpTransform: sdp => { - const lines = [] - - for (const l of sdp.split('\r\n')) { - if (l.startsWith('a=ice-ufrag')) { - lines.push(`a=ice-ufrag:${localIceUFrag}`) - } else if (l.startsWith('a=ice-pwd')) { - lines.push(`a=ice-pwd:${localIcePwd}`) - } else { - lines.push(l) - } - } - - return this.peerSdpTransform(lines.join('\r\n')) - } - }) - - peer.id = remoteSessionId - peer.client_id = remoteClientId - - this._wireUpCommonPeerEvents(peer) - - peers.set(peer.id, peer) - - // Special case if both behind sym NAT or other hole punching isn't working: peer A needs to send its candidates as well. - const pkg = [ - remoteSessionId, - localSessionId, - /* lfrag */ null, - /* lpwd */ null, - /* ldtls */ null, - /* remote ufrag */ null, - /* remote Pwd */ null, - now, - [] - ] - - const pkgCandidates = pkg[pkg.length - 1] - - const initialCandidateSignalling = e => { - if (!e.candidate?.candidate) return - pkgCandidates.push(e.candidate.candidate) - } - - peer.on('signal', initialCandidateSignalling) - - const finishIce = () => { - peer.removeListener('signal', initialCandidateSignalling) - if (localPackages.includes(pkg)) return - if (pkgCandidates.length === 0) return - - localPackages.push(pkg) - } - - peer.once('_iceComplete', finishIce) - - const remoteSdp = createSdp( - true, - remoteIceUFrag, - remoteIcePwd, - remoteDtlsFingerprintBase64 - ) - - for (const candidate of remoteCandidates) { - peer.signal({ candidate: { candidate, sdpMLineIndex: 0 } }) - } - - peer.signal({ type: 'offer', sdp: remoteSdp }) - } else { - // I am peer B, I need to create a peer first if none exists, and send a package. - // - Create PC - // - Create offer - // - Set local description as-is - // - Generate ufrag + pwd - // - Generate remote SDP using the dtls fingerprint for A, and my generated ufrag + pwd - // - Add an srflx candidate for each of the reflexive IPs for A (on a random port) to hole punch - // - Set remote description - // so peer reflexive candidates for it show up. - // - Let trickle run, then once trickle finishes send a package for A to pick up = [my session id, my offer sdp, generated ufrag/pwd, dtls fingerprint, ice candidates] - // - keep the icecandidate listener active, and add the pfrlx candidates when they arrive (but don't send another package) - if (!peers.has(remoteSessionId)) { - lastProcessedReceivedDataTimestamps.set( - remoteSessionId, - remoteDataTimestamp - ) - - const remoteUfrag = randomstring(12) - const remotePwd = randomstring(32) - const peer = new Peer({ - config: peerOptions, - proprietaryConstraints: this.rtcPeerConnectionProprietaryConstraints, - iceCompleteTimeout: 3000, - initiator: true, - sdpTransform: this.peerSdpTransform - }) - - peer.id = remoteSessionId - peer.client_id = remoteClientId - - this._wireUpCommonPeerEvents(peer) - - peers.set(peer.id, peer) - - // This is the 'package' sent to peer A that it needs to start ICE - const pkg = [ - remoteSessionId, - localSessionId, - /* lfrag */ null, - /* lpwd */ null, - /* ldtls */ null, - remoteUfrag, - remotePwd, - now, - [] - ] - - const pkgCandidates = pkg[pkg.length - 1] - - const initialCandidateSignalling = e => { - // Push package onto the given package list, so it will be sent in next polling step. - if (!e.candidate?.candidate) return - pkgCandidates.push(e.candidate.candidate) - } - - peer.on('signal', initialCandidateSignalling) - - const finishIce = () => { - peer.removeListener('signal', initialCandidateSignalling) - - if (localPackages.includes(pkg)) return - if (pkgCandidates.length === 0) return - - localPackages.push(pkg) - } - - peer.once('_iceComplete', finishIce) - - const enqueuePackageFromOffer = e => { - if (e.type !== 'offer') return - peer.removeListener('signal', enqueuePackageFromOffer) - - for (const l of e.sdp.split('\r\n')) { - switch (l.split(':')[0]) { - case 'a=ice-ufrag': - pkg[2] = l.substring(12) - break - case 'a=ice-pwd': - pkg[3] = l.substring(10) - break - case 'a=fingerprint': - pkg[4] = hexToBase64(l.substring(22).replaceAll(':', '')) - break - } - } - - // Peer A posted its reflexive IPs to try to speed up hole punching by B. - let remoteSdp = createSdp( - false, - remoteUfrag, - remotePwd, - remoteDtlsFingerprintBase64 - ) - - for (let i = 0; i < remoteReflexiveIps.length; i++) { - remoteSdp += `a=candidate:0 1 udp ${i + 1} ${ - remoteReflexiveIps[i] - } 30000 typ srflx\r\n` - } - - if (!delaySetRemoteUntilReceiveCandidates) { - peer.signal({ type: 'answer', sdp: remoteSdp }) - } else { - peer._pendingRemoteSdp = remoteSdp - } - } - - peer.once('signal', enqueuePackageFromOffer) - } - - if (!remotePackage) continue - - // Peer B will also receive candidates in the case where hole punch fails. - // If we already added the candidates from A, skip - const [, , , , , , , , remoteCandidates] = remotePackage - if (packageReceivedFromPeers.has(remoteSessionId)) continue - if (!peers.has(remoteSessionId)) continue - - const peer = peers.get(remoteSessionId) - - if ( - delaySetRemoteUntilReceiveCandidates && - !peer._pc.remoteDescription && - peer._pendingRemoteSdp - ) { - if (!peer.connected) { - for (const candidate of remoteCandidates) { - peer.signal({ candidate: { candidate, sdpMLineIndex: 0 } }) - } - } - - peer.signal({ type: 'answer', sdp: peer._pendingRemoteSdp }) - delete peer._pendingRemoteSdp - packageReceivedFromPeers.add(remoteSessionId) - } - - if ( - !delaySetRemoteUntilReceiveCandidates && - peer._pc.remoteDescription && - remoteCandidates.length > 0 - ) { - if (!peer.connected) { - for (const candidate of remoteCandidates) { - peer.signal({ candidate: { candidate, sdpMLineIndex: 0 } }) - } - } - - packageReceivedFromPeers.add(remoteSessionId) - } - } - } - - const remoteSessionIds = remotePeerDatas.map(p => p[0]) - - // Remove all peers no longer in the peer list. - // TODO deal with simple peer - for (const [sessionId, peer] of peers.entries()) { - if (remoteSessionIds.includes(sessionId)) continue - this._removePeer(peer, true) - } - } - - /** - * Connect to network and start discovering peers - */ - async start () { - this.startedAtTimestamp = Date.now() - await this._init() - - const [ - udpEnabled, - isSymmetric, - reflexiveIps, - dtlsFingerprint - ] = await this._getNetworkSettings(this.dtlsCert) - - if (this.finished) return - - this.udpEnabled = udpEnabled - this.isSymmetric = isSymmetric - this.reflexiveIps = reflexiveIps - this.dtlsFingerprint = dtlsFingerprint - - this.networkSettingsInterval = setInterval(async () => { - const [ - newUdpEnabled, - newIsSymmetric, - newReflexiveIps, - newDtlsFingerprint - ] = await this._getNetworkSettings(this.dtlsCert) - - if ( - newUdpEnabled !== this.udpEnabled || - newIsSymmetric !== this.isSymmetric || - newDtlsFingerprint !== this.dtlsFingerprint || - !![...newReflexiveIps].find(ip => ![...this.reflexiveIps].find(ip2 => ip === ip2)) || - !![...reflexiveIps].find(ip => ![...newReflexiveIps].find(ip2 => ip === ip2)) - ) { - // Network changed, force pushing new data - this.dataTimestamp = null - } - - this.udpEnabled = newUdpEnabled - this.isSymmetric = newIsSymmetric - this.reflexiveIps = newReflexiveIps - this.dtlsFingerprint = newDtlsFingerprint - }, this.networkChangePollIntervalMs) - - this._step = this._step.bind(this) - this.stepInterval = setInterval(this._step, 500) - this.destroyOnUnload = () => this.destroy() - - for (const ev of iOSSafari ? ['pagehide'] : ['beforeunload', 'unload']) { - window.addEventListener(ev, this.destroyOnUnload) - } - } - - _removePeer (peer, destroy = false) { - const { packageReceivedFromPeers, packages, peers } = this - if (!peers.has(peer.id)) return - - removeInPlace(packages, pkg => pkg[0] === peer.id) - packageReceivedFromPeers.delete(peer.id) - - peers.delete(peer.id) - - if (destroy) { - peer.destroy() - } - - this.emit('peerclose', peer) - } - - /** - * Send a msg and get response for it - * @param Peer peer simple-peer object to send msg to - * @param string msg Message to send - * @param integer msgID ID of message if it's a response to a previous message - */ - send (peer, msg) { - return new Promise((resolve, reject) => { - // if leading byte is zero - // next two bytes is message id, then remaining bytes - // otherwise its just raw - let dataArrBuffer = null - - let messageId = null - - if (msg instanceof ArrayBuffer) { - dataArrBuffer = msg - } else if (msg instanceof Uint8Array) { - if (msg.buffer.byteLength === msg.length) { - dataArrBuffer = msg.buffer - } else { - dataArrBuffer = msg.buffer.slice(msg.byteOffset, msg.byteOffset + msg.byteLength) - } - } else { - throw new Error('Unsupported send data type', msg) - } - - // If the magic word happens to be the beginning of this message, chunk it - if ( - dataArrBuffer.byteLength > MAX_MESSAGE_LENGTH_BYTES || - new Uint16Array(dataArrBuffer, 0, 1) === CHUNK_MAGIC_WORD - ) { - messageId = Math.floor(Math.random() * 256 * 128) - } - - if (messageId !== null) { - for ( - let offset = 0, chunkId = 0; - offset < dataArrBuffer.byteLength; - offset += CHUNK_MAX_LENGTH_BYTES, chunkId++ - ) { - const chunkSize = Math.min( - CHUNK_MAX_LENGTH_BYTES, - dataArrBuffer.byteLength - offset - ) - let bufSize = CHUNK_HEADER_LENGTH_BYTES + chunkSize - - while (bufSize % 4 !== 0) { - bufSize++ - } - - const buf = new ArrayBuffer(bufSize) - new Uint8Array(buf, CHUNK_HEADER_LENGTH_BYTES).set( - new Uint8Array(dataArrBuffer, offset, chunkSize) - ) - const u16 = new Uint16Array(buf) - const u32 = new Uint32Array(buf) - - u16[0] = CHUNK_MAGIC_WORD - u16[1] = messageId - u16[2] = chunkId - u16[3] = - offset + CHUNK_MAX_LENGTH_BYTES >= dataArrBuffer.byteLength ? 1 : 0 - u32[2] = dataArrBuffer.byteLength - - peer.send(buf) - } - } else { - peer.send(dataArrBuffer) - } - }) - } - - broadcast (msg) { - const ps = [] - - for (const peer of this.peers.values()) { - if (!peer.connected) continue - - ps.push(this.send(peer, msg)) - } - - return Promise.all(ps) - } - - /** - * Destroy object - */ - destroy () { - if (this._step) { - this._step(true) - } - - if (this.networkSettingsInterval) { - clearInterval(this.networkSettingsInterval) - this.networkSettingsInterval = null - } - - if (this.stepInterval) { - clearInterval(this.stepInterval) - this.stepInterval = null - } - - if (this.destroyOnUnload) { - for (const ev of iOSSafari ? ['pagehide'] : ['beforeunload', 'unload']) { - window.removeEventListener(ev, this.destroyOnUnload) - } - - this.destroyOnUnload = null - } - - for (const peer of this.peers.values()) { - peer.destroy() - } - } - - /** - * Handle msg chunks. Returns false until the last chunk is received. Finally returns the entire msg - * @param object data - */ - _chunkHandler (data, messageId, chunkId) { - let target = null - - if (!this.msgChunks.has(messageId)) { - const totalLength = new Uint32Array(data, 0, 3)[2] - target = new Uint8Array(totalLength) - this.msgChunks.set(messageId, target) - } else { - target = this.msgChunks.get(messageId) - } - - const offsetToSet = chunkId * CHUNK_MAX_LENGTH_BYTES - - const numBytesToSet = Math.min( - target.byteLength - offsetToSet, - CHUNK_MAX_LENGTH_BYTES - ) - - target.set( - new Uint8Array(data, CHUNK_HEADER_LENGTH_BYTES, numBytesToSet), - chunkId * CHUNK_MAX_LENGTH_BYTES - ) - - return target.buffer - } - - _updateConnectedSessions () { - this.connectedSessions.length = 0 - - for (const [sessionId, peer] of this.peers) { - if (peer.connected) { - this.connectedSessions.push(sessionId) - continue - } - } - } - - async _getNetworkSettings () { - await this._init() - - let dtlsFingerprint = null - const candidates = [] - const reflexiveIps = new Set() - - const peerOptions = { iceServers: this.stunIceServers } - - if (this.dtlsCert) { - peerOptions.certificates = [this.dtlsCert] - } - - const pc = new this.wrtc.RTCPeerConnection(peerOptions) - pc.createDataChannel('x') - - const p = new Promise(resolve => { - setTimeout(() => resolve(), 5000) - - pc.onicecandidate = e => { - if (!e.candidate) return resolve() - - if (e.candidate.candidate) { - candidates.push(parseCandidate(e.candidate.candidate)) - } - } - }) - - pc.createOffer().then(offer => { - for (const l of offer.sdp.split('\n')) { - if (l.indexOf('a=fingerprint') === -1) continue - dtlsFingerprint = l.split(' ')[1].trim() - } - - pc.setLocalDescription(offer) - }) - - await p - - pc.close() - - let isSymmetric = false - let udpEnabled = false - - // Network is not symmetric if we can find a srflx candidate that has a unique related port - /* eslint-disable no-labels */ - loop: for (const c of candidates) { - /* eslint-enable no-labels */ - if (c[0] !== CANDIDATE_TYPES.srflx) continue - udpEnabled = true - - reflexiveIps.add(c[CANDIDATE_IDX.IP]) - - for (const d of candidates) { - if (d[0] !== CANDIDATE_TYPES.srflx) continue - if (c === d) continue - - if ( - typeof c[CANDIDATE_IDX.RELATED_PORT] === 'number' && - typeof d[CANDIDATE_IDX.RELATED_PORT] === 'number' && - c[CANDIDATE_IDX.RELATED_PORT] === d[CANDIDATE_IDX.RELATED_PORT] && - c[CANDIDATE_IDX.PORT] !== d[CANDIDATE_IDX.PORT] - ) { - // check port and related port - // Symmetric, continue - isSymmetric = true - break - } - } - } - - return [udpEnabled, isSymmetric, reflexiveIps, dtlsFingerprint] - } - - _handlePeerError (peer, err) { - if ( - err.errorDetail === 'sctp-failure' && - err.message.indexOf('User-Initiated Abort') >= 0 - ) { - return // Benign shutdown - } - - console.error(err) - } - - _checkForSignalOrEmitMessage (peer, msg) { - if (msg.byteLength < SIGNAL_MESSAGE_HEADER_WORDS.length * 2) { - this.emit('msg', peer, msg) - return - } - - const u16 = new Uint16Array(msg, 0, SIGNAL_MESSAGE_HEADER_WORDS.length) - - for (let i = 0; i < SIGNAL_MESSAGE_HEADER_WORDS.length; i++) { - if (u16[i] !== SIGNAL_MESSAGE_HEADER_WORDS[i]) { - this.emit('msg', peer, msg) - return - } - } - - const u8 = new Uint8Array(msg, SIGNAL_MESSAGE_HEADER_WORDS.length * 2) - - let payload = arrToText(u8) - - // Might have a trailing byte - if (payload.endsWith('\0')) { - payload = payload.substring(0, payload.length - 1) - } - - peer.signal(payload) - } - - _wireUpCommonPeerEvents (peer) { - peer.on('connect', () => { - this.emit('peerconnect', peer) - - // Remove packages for the peer once connected - removeInPlace(this.packages, pkg => pkg[0] === peer.id) - this._updateConnectedSessions() - }) - - peer.on('data', data => { - let messageId = null - let u16 = null - if (data.byteLength >= CHUNK_HEADER_LENGTH_BYTES) { - u16 = new Uint16Array(data, 0, CHUNK_HEADER_LENGTH_BYTES / 2) - - if (u16[0] === CHUNK_MAGIC_WORD) { - messageId = u16[1] - } - } - if (messageId !== null) { - try { - const chunkId = u16[2] - const last = u16[3] !== 0 - const msg = this._chunkHandler(data, messageId, chunkId, last) - if (last) { - this._checkForSignalOrEmitMessage(peer, msg) - this.msgChunks.delete(messageId) - } - } catch (e) { - console.error(e) - } - } else { - this._checkForSignalOrEmitMessage(peer, data) - } - }) - - peer.on('error', err => { - console.warn(err) - }) - - peer.on('close', () => { - this._removePeer(peer) - this._updateConnectedSessions() - }) - - // Once ICE completes, perform subsequent signalling via the datachannel - peer.once('_iceComplete', () => { - peer.on('signal', signalData => { - const payloadBytes = textToArr( - JSON.stringify(signalData) - ) - - let len = - payloadBytes.byteLength + SIGNAL_MESSAGE_HEADER_WORDS.length * 2 - - if (len % 2 !== 0) { - len++ - } - - // Add signal header - const buf = new ArrayBuffer(len) - const u8 = new Uint8Array(buf) - const u16 = new Uint16Array(buf) - - u8.set(payloadBytes, SIGNAL_MESSAGE_HEADER_WORDS.length * 2) - - for (let i = 0; i < SIGNAL_MESSAGE_HEADER_WORDS.length; i++) { - u16[i] = SIGNAL_MESSAGE_HEADER_WORDS[i] - } - - this.send(peer, buf) - }) - }) - } + constructor(clientId = "", roomId = "", options = {}) { + super(); + + if (!clientId || clientId.length < 4) { + throw new Error("Client ID must be at least four characters"); + } + + if (!roomId || roomId.length < 4) { + throw new Error("Room ID must be at least four characters"); + } + + this._step = this._step.bind(this); + + this.peers = new Map(); + this.msgChunks = new Map(); + this.connectedSessions = []; + this.clientId = clientId; + this.roomId = roomId; + this.sessionId = randomstring(20); + this.packages = []; + this.dataTimestamp = null; + this.lastPackages = null; + this.lastProcessedReceivedDataTimestamps = new Map(); + this.packageReceivedFromPeers = new Set(); + this.startedAtTimestamp = null; + this.peerOptions = options.rtcPeerConnectionOptions || {}; + this.peerProprietaryConstraints = + options.rtcPeerConnectionProprietaryConstraints || {}; + this.peerSdpTransform = options.sdpTransform || ((sdp) => sdp); + + this.workerUrl = + options.workerUrl || "https://p2pcf.minddrop.workers.dev"; + + if (this.workerUrl.endsWith("/")) { + this.workerUrl = this.workerUrl.substring( + 0, + this.workerUrl.length - 1 + ); + } + + this.stunIceServers = options.stunIceServers || DEFAULT_STUN_ICE; + this.turnIceServers = options.turnIceServers || DEFAULT_TURN_ICE; + this.networkChangePollIntervalMs = + options.networkChangePollIntervalMs || 15000; + + this.stateExpirationIntervalMs = + options.stateExpirationIntervalMs || 2 * 60 * 1000; + this.stateHeartbeatWindowMs = options.stateHeartbeatWindowMs || 30000; + + this.fastPollingDurationMs = options.fastPollingDurationMs || 10000; + this.fastPollingRateMs = options.fastPollingRateMs || 750; + this.slowPollingRateMs = options.slowPollingRateMs || 1500; + + this.wrtc = getBrowserRTC(); + this.dtlsCert = null; + this.udpEnabled = null; + this.isSymmetric = null; + this.dtlsFingerprint = null; + this.reflexiveIps = new Set(); + + // step + this.isSending = false; + this.finished = false; + this.nextStepTime = -1; + this.deleteKey = null; + this.sentFirstPoll = false; + this.stopFastPollingAt = -1; + + // ContextID is maintained across page refreshes + if (!window.history.state?._p2pcfContextId) { + window.history.replaceState( + { + ...window.history.state, + _p2pcfContextId: randomstring(20) + }, + window.location.href + ); + } + + this.contextId = window.history.state._p2pcfContextId; + } + + async _init() { + if (this.dtlsCert === null) { + this.dtlsCert = + await this.wrtc.RTCPeerConnection.generateCertificate({ + name: "ECDSA", + namedCurve: "P-256" + }); + } + } + + async _step(finish = false) { + const { + sessionId, + clientId, + roomId, + contextId, + stateExpirationIntervalMs, + stateHeartbeatWindowMs, + packages, + fastPollingDurationMs, + fastPollingRateMs, + slowPollingRateMs + } = this; + + const now = Date.now(); + + if (finish) { + if (this.finished) return; + if (!this.deleteKey) return; + this.finished = true; + } else { + if (this.nextStepTime > now) return; + if (this.isSending) return; + if (this.reflexiveIps.length === 0) return; + } + + this.isSending = true; + + try { + const localDtlsFingerprintBase64 = hexToBase64( + this.dtlsFingerprint.replaceAll(":", "") + ); + + const localPeerInfo = [ + sessionId, + clientId, + this.isSymmetric, + localDtlsFingerprintBase64, + this.startedAtTimestamp, + [...this.reflexiveIps] + ]; + + const payload = { r: roomId, k: contextId }; + + if (finish) { + payload.dk = this.deleteKey; + } + + const expired = + this.dataTimestamp === null || + now - this.dataTimestamp >= + stateExpirationIntervalMs - stateHeartbeatWindowMs; + + const packagesChanged = + this.lastPackages !== JSON.stringify(packages); + let includePackages = false; + + if (expired || packagesChanged || finish) { + // This will force a write + this.dataTimestamp = now; + + // Compact packages, expire any of them sent more than a minute ago. + // (ICE will timeout by then, even if other latency fails us.) + removeInPlace(packages, (pkg) => { + const sentAt = pkg[pkg.length - 2]; + return now - sentAt > 60 * 1000; + }); + + includePackages = true; + } + + if (finish) { + includePackages = false; + } + + // The first poll should just be a read, no writes, to build up packages before we do a write + // to reduce worker I/O. So don't include the data + packages on the first request. + if (this.sentFirstPoll) { + payload.d = localPeerInfo; + payload.t = this.dataTimestamp; + payload.x = this.stateExpirationIntervalMs; + + if (includePackages) { + payload.p = packages; + this.lastPackages = JSON.stringify(packages); + } + } + + const body = JSON.stringify(payload); + const headers = { "Content-Type": "application/json " }; + let keepalive = false; + + if (finish) { + headers["X-Worker-Method"] = "DELETE"; + keepalive = true; + } + + const res = await fetch(this.workerUrl, { + method: "POST", + headers, + body, + keepalive + }); + + const { + ps: remotePeerDatas, + pk: remotePackages, + dk + } = await res.json(); + + if (dk) { + this.deleteKey = dk; + } + + if (finish) return; + + // Slight optimization: if the peers are empty on the first poll, immediately publish data to reduce + // delay before first peers show up. + if (remotePeerDatas.length === 0 && !this.sentFirstPoll) { + payload.d = localPeerInfo; + payload.t = this.dataTimestamp; + payload.x = this.stateExpirationIntervalMs; + payload.p = packages; + this.lastPackages = JSON.stringify(packages); + + const res = await fetch(this.workerUrl, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload) + }); + + const { dk } = await res.json(); + + if (dk) { + this.deleteKey = dk; + } + } + + this.sentFirstPoll = true; + + const previousPeerSessionIds = [...this.peers.keys()]; + + this._handleWorkerResponse( + localPeerInfo, + localDtlsFingerprintBase64, + packages, + remotePeerDatas, + remotePackages + ); + + const activeSessionIds = remotePeerDatas.map((p) => p[0]); + + const peersChanged = + previousPeerSessionIds.length !== activeSessionIds.length || + activeSessionIds.find( + (c) => !previousPeerSessionIds.includes(c) + ) || + previousPeerSessionIds.find( + (c) => !activeSessionIds.includes(c) + ); + + // Rate limit requests when room is empty, or look for new joins + // Go faster when things are changing to avoid ICE timeouts + if (peersChanged) { + this.stopFastPollingAt = now + fastPollingDurationMs; + } + + if (now < this.stopFastPollingAt) { + this.nextStepTime = now + fastPollingRateMs; + } else { + this.nextStepTime = now + slowPollingRateMs; + } + } catch (e) { + console.error(e); + this.nextStepTime = now + slowPollingRateMs; + } finally { + this.isSending = false; + } + } + + _handleWorkerResponse( + localPeerData, + localDtlsFingerprintBase64, + localPackages, + remotePeerDatas, + remotePackages + ) { + const localStartedAtTimestamp = this.startedAtTimestamp; + + const { + dtlsCert: localDtlsCert, + peers, + lastProcessedReceivedDataTimestamps, + packageReceivedFromPeers, + stunIceServers, + turnIceServers + } = this; + const [localSessionId, , localSymmetric] = localPeerData; + + const now = Date.now(); + + for (const remotePeerData of remotePeerDatas) { + const [ + remoteSessionId, + remoteClientId, + remoteSymmetric, + remoteDtlsFingerprintBase64, + remoteStartedAtTimestamp, + remoteReflexiveIps, + remoteDataTimestamp + ] = remotePeerData; + + // Don't process the same messages twice. This covers disconnect cases where stale data re-creates a peer too early. + if ( + lastProcessedReceivedDataTimestamps.get(remoteSessionId) === + remoteDataTimestamp + ) { + continue; + } + + // Peer A is: + // - if both not symmetric or both symmetric, whoever has the most recent data is peer A, since we want Peer B created faster, + // and latency will be lowest with older data. + // - if one is and one isn't, the non symmetric one is the only one who has valid candidates, so the symmetric one is peer A + const isPeerA = + localSymmetric === remoteSymmetric + ? localStartedAtTimestamp === remoteStartedAtTimestamp + ? localSessionId > remoteSessionId + : localStartedAtTimestamp > remoteStartedAtTimestamp + : localSymmetric; + + // If either side is symmetric, use TURN and hope we avoid connecting via relays + // We can't just use TURN if both sides are symmetric because one side might be port restricted and hence won't connect without a relay. + const iceServers = + localSymmetric || remoteSymmetric + ? turnIceServers + : stunIceServers; + + // Firefox answer side is very aggressive with ICE timeouts, so always delay answer set until second candidates received. + const delaySetRemoteUntilReceiveCandidates = isFirefox; + const remotePackage = remotePackages.find( + (p) => p[1] === remoteSessionId + ); + + const peerOptions = { ...this.peerOptions, iceServers }; + + if (localDtlsCert) { + peerOptions.certificates = [localDtlsCert]; + } + + if (isPeerA) { + if (peers.has(remoteSessionId)) continue; + if (!remotePackage) continue; + + lastProcessedReceivedDataTimestamps.set( + remoteSessionId, + remoteDataTimestamp + ); + + // If we already added the candidates from B, skip. This check is not strictly necessary given the peer will exist. + if (packageReceivedFromPeers.has(remoteSessionId)) continue; + packageReceivedFromPeers.add(remoteSessionId); + + // - I create PC + // - I create an answer SDP, and munge the ufrag + // - Set local description with answer + // - Set remote description via the received sdp + // - Add the ice candidates + + const [ + , + , + remoteIceUFrag, + remoteIcePwd, + remoteDtlsFingerprintBase64, + localIceUFrag, + localIcePwd, + , + remoteCandidates + ] = remotePackage; + + const peer = new Peer({ + config: peerOptions, + initiator: false, + iceCompleteTimeout: 3000, + proprietaryConstraints: this.peerProprietaryConstraints, + sdpTransform: (sdp) => { + const lines = []; + + for (const l of sdp.split("\r\n")) { + if (l.startsWith("a=ice-ufrag")) { + lines.push(`a=ice-ufrag:${localIceUFrag}`); + } else if (l.startsWith("a=ice-pwd")) { + lines.push(`a=ice-pwd:${localIcePwd}`); + } else { + lines.push(l); + } + } + + return this.peerSdpTransform(lines.join("\r\n")); + } + }); + + peer.id = remoteSessionId; + peer.client_id = remoteClientId; + + this._wireUpCommonPeerEvents(peer); + + peers.set(peer.id, peer); + + // Special case if both behind sym NAT or other hole punching isn't working: peer A needs to send its candidates as well. + const pkg = [ + remoteSessionId, + localSessionId, + /* lfrag */ null, + /* lpwd */ null, + /* ldtls */ null, + /* remote ufrag */ null, + /* remote Pwd */ null, + now, + [] + ]; + + const pkgCandidates = pkg[pkg.length - 1]; + + const initialCandidateSignalling = (e) => { + if (!e.candidate?.candidate) return; + pkgCandidates.push(e.candidate.candidate); + }; + + peer.on("signal", initialCandidateSignalling); + + const finishIce = () => { + peer.removeListener("signal", initialCandidateSignalling); + if (localPackages.includes(pkg)) return; + if (pkgCandidates.length === 0) return; + + localPackages.push(pkg); + }; + + peer.once("_iceComplete", finishIce); + + const remoteSdp = createSdp( + true, + remoteIceUFrag, + remoteIcePwd, + remoteDtlsFingerprintBase64 + ); + + for (const candidate of remoteCandidates) { + peer.signal({ candidate: { candidate, sdpMLineIndex: 0 } }); + } + + peer.signal({ type: "offer", sdp: remoteSdp }); + } else { + // I am peer B, I need to create a peer first if none exists, and send a package. + // - Create PC + // - Create offer + // - Set local description as-is + // - Generate ufrag + pwd + // - Generate remote SDP using the dtls fingerprint for A, and my generated ufrag + pwd + // - Add an srflx candidate for each of the reflexive IPs for A (on a random port) to hole punch + // - Set remote description + // so peer reflexive candidates for it show up. + // - Let trickle run, then once trickle finishes send a package for A to pick up = [my session id, my offer sdp, generated ufrag/pwd, dtls fingerprint, ice candidates] + // - keep the icecandidate listener active, and add the pfrlx candidates when they arrive (but don't send another package) + if (!peers.has(remoteSessionId)) { + lastProcessedReceivedDataTimestamps.set( + remoteSessionId, + remoteDataTimestamp + ); + + const remoteUfrag = randomstring(12); + const remotePwd = randomstring(32); + const peer = new Peer({ + config: peerOptions, + proprietaryConstraints: + this.rtcPeerConnectionProprietaryConstraints, + iceCompleteTimeout: 3000, + initiator: true, + sdpTransform: this.peerSdpTransform + }); + + peer.id = remoteSessionId; + peer.client_id = remoteClientId; + + this._wireUpCommonPeerEvents(peer); + + peers.set(peer.id, peer); + + // This is the 'package' sent to peer A that it needs to start ICE + const pkg = [ + remoteSessionId, + localSessionId, + /* lfrag */ null, + /* lpwd */ null, + /* ldtls */ null, + remoteUfrag, + remotePwd, + now, + [] + ]; + + const pkgCandidates = pkg[pkg.length - 1]; + + const initialCandidateSignalling = (e) => { + // Push package onto the given package list, so it will be sent in next polling step. + if (!e.candidate?.candidate) return; + pkgCandidates.push(e.candidate.candidate); + }; + + peer.on("signal", initialCandidateSignalling); + + const finishIce = () => { + peer.removeListener( + "signal", + initialCandidateSignalling + ); + + if (localPackages.includes(pkg)) return; + if (pkgCandidates.length === 0) return; + + localPackages.push(pkg); + }; + + peer.once("_iceComplete", finishIce); + + const enqueuePackageFromOffer = (e) => { + if (e.type !== "offer") return; + peer.removeListener("signal", enqueuePackageFromOffer); + + for (const l of e.sdp.split("\r\n")) { + switch (l.split(":")[0]) { + case "a=ice-ufrag": + pkg[2] = l.substring(12); + break; + case "a=ice-pwd": + pkg[3] = l.substring(10); + break; + case "a=fingerprint": + pkg[4] = hexToBase64( + l.substring(22).replaceAll(":", "") + ); + break; + } + } + + // Peer A posted its reflexive IPs to try to speed up hole punching by B. + let remoteSdp = createSdp( + false, + remoteUfrag, + remotePwd, + remoteDtlsFingerprintBase64 + ); + + for (let i = 0; i < remoteReflexiveIps.length; i++) { + remoteSdp += `a=candidate:0 1 udp ${i + 1} ${ + remoteReflexiveIps[i] + } 30000 typ srflx\r\n`; + } + + if (!delaySetRemoteUntilReceiveCandidates) { + peer.signal({ type: "answer", sdp: remoteSdp }); + } else { + peer._pendingRemoteSdp = remoteSdp; + } + }; + + peer.once("signal", enqueuePackageFromOffer); + } + + if (!remotePackage) continue; + + // Peer B will also receive candidates in the case where hole punch fails. + // If we already added the candidates from A, skip + const [, , , , , , , , remoteCandidates] = remotePackage; + if (packageReceivedFromPeers.has(remoteSessionId)) continue; + if (!peers.has(remoteSessionId)) continue; + + const peer = peers.get(remoteSessionId); + + if ( + delaySetRemoteUntilReceiveCandidates && + !peer._pc.remoteDescription && + peer._pendingRemoteSdp + ) { + if (!peer.connected) { + for (const candidate of remoteCandidates) { + peer.signal({ + candidate: { candidate, sdpMLineIndex: 0 } + }); + } + } + + peer.signal({ + type: "answer", + sdp: peer._pendingRemoteSdp + }); + delete peer._pendingRemoteSdp; + packageReceivedFromPeers.add(remoteSessionId); + } + + if ( + !delaySetRemoteUntilReceiveCandidates && + peer._pc.remoteDescription && + remoteCandidates.length > 0 + ) { + if (!peer.connected) { + for (const candidate of remoteCandidates) { + peer.signal({ + candidate: { candidate, sdpMLineIndex: 0 } + }); + } + } + + packageReceivedFromPeers.add(remoteSessionId); + } + } + } + + const remoteSessionIds = remotePeerDatas.map((p) => p[0]); + + // Remove all peers no longer in the peer list. + // TODO deal with simple peer + for (const [sessionId, peer] of peers.entries()) { + if (remoteSessionIds.includes(sessionId)) continue; + this._removePeer(peer, true); + } + } + + /** + * Connect to network and start discovering peers + */ + async start() { + this.startedAtTimestamp = Date.now(); + await this._init(); + + const [udpEnabled, isSymmetric, reflexiveIps, dtlsFingerprint] = + await this._getNetworkSettings(this.dtlsCert); + + if (this.finished) return; + + this.udpEnabled = udpEnabled; + this.isSymmetric = isSymmetric; + this.reflexiveIps = reflexiveIps; + this.dtlsFingerprint = dtlsFingerprint; + + this.networkSettingsInterval = setInterval(async () => { + const [ + newUdpEnabled, + newIsSymmetric, + newReflexiveIps, + newDtlsFingerprint + ] = await this._getNetworkSettings(this.dtlsCert); + + if ( + newUdpEnabled !== this.udpEnabled || + newIsSymmetric !== this.isSymmetric || + newDtlsFingerprint !== this.dtlsFingerprint || + !![...newReflexiveIps].find( + (ip) => ![...this.reflexiveIps].find((ip2) => ip === ip2) + ) || + !![...reflexiveIps].find( + (ip) => ![...newReflexiveIps].find((ip2) => ip === ip2) + ) + ) { + // Network changed, force pushing new data + this.dataTimestamp = null; + } + + this.udpEnabled = newUdpEnabled; + this.isSymmetric = newIsSymmetric; + this.reflexiveIps = newReflexiveIps; + this.dtlsFingerprint = newDtlsFingerprint; + }, this.networkChangePollIntervalMs); + + this._step = this._step.bind(this); + this.stepInterval = setInterval(this._step, 500); + this.destroyOnUnload = () => this.destroy(); + + for (const ev of iOSSafari + ? ["pagehide"] + : ["beforeunload", "unload"]) { + window.addEventListener(ev, this.destroyOnUnload); + } + } + + _removePeer(peer, destroy = false) { + const { packageReceivedFromPeers, packages, peers } = this; + if (!peers.has(peer.id)) return; + + removeInPlace(packages, (pkg) => pkg[0] === peer.id); + packageReceivedFromPeers.delete(peer.id); + + peers.delete(peer.id); + + if (destroy) { + peer.destroy(); + } + + this.emit("peerclose", peer); + } + + /** + * Send a msg and get response for it + * + * @param Peer peer simple-peer object to send msg to + * @param string msg Message to send + * @param integer msgID ID of message if it's a response to a previous message + * @param peer + * @param msg + */ + send(peer, msg) { + return new Promise((resolve, reject) => { + // if leading byte is zero + // next two bytes is message id, then remaining bytes + // otherwise its just raw + let dataArrBuffer = null; + + let messageId = null; + + if (msg instanceof ArrayBuffer) { + dataArrBuffer = msg; + } else if (msg instanceof Uint8Array) { + if (msg.buffer.byteLength === msg.length) { + dataArrBuffer = msg.buffer; + } else { + dataArrBuffer = msg.buffer.slice( + msg.byteOffset, + msg.byteOffset + msg.byteLength + ); + } + } else { + throw new Error("Unsupported send data type", msg); + } + + // If the magic word happens to be the beginning of this message, chunk it + if ( + dataArrBuffer.byteLength > MAX_MESSAGE_LENGTH_BYTES || + new Uint16Array(dataArrBuffer, 0, 1) === CHUNK_MAGIC_WORD + ) { + messageId = Math.floor(Math.random() * 256 * 128); + } + + if (messageId !== null) { + for ( + let offset = 0, chunkId = 0; + offset < dataArrBuffer.byteLength; + offset += CHUNK_MAX_LENGTH_BYTES, chunkId++ + ) { + const chunkSize = Math.min( + CHUNK_MAX_LENGTH_BYTES, + dataArrBuffer.byteLength - offset + ); + let bufSize = CHUNK_HEADER_LENGTH_BYTES + chunkSize; + + while (bufSize % 4 !== 0) { + bufSize++; + } + + const buf = new ArrayBuffer(bufSize); + new Uint8Array(buf, CHUNK_HEADER_LENGTH_BYTES).set( + new Uint8Array(dataArrBuffer, offset, chunkSize) + ); + const u16 = new Uint16Array(buf); + const u32 = new Uint32Array(buf); + + u16[0] = CHUNK_MAGIC_WORD; + u16[1] = messageId; + u16[2] = chunkId; + u16[3] = + offset + CHUNK_MAX_LENGTH_BYTES >= + dataArrBuffer.byteLength + ? 1 + : 0; + u32[2] = dataArrBuffer.byteLength; + + peer.send(buf); + } + } else { + peer.send(dataArrBuffer); + } + }); + } + + broadcast(msg) { + const ps = []; + + for (const peer of this.peers.values()) { + if (!peer.connected) continue; + + ps.push(this.send(peer, msg)); + } + + return Promise.all(ps); + } + + /** + * Destroy object + */ + destroy() { + if (this._step) { + this._step(true); + } + + if (this.networkSettingsInterval) { + clearInterval(this.networkSettingsInterval); + this.networkSettingsInterval = null; + } + + if (this.stepInterval) { + clearInterval(this.stepInterval); + this.stepInterval = null; + } + + if (this.destroyOnUnload) { + for (const ev of iOSSafari + ? ["pagehide"] + : ["beforeunload", "unload"]) { + window.removeEventListener(ev, this.destroyOnUnload); + } + + this.destroyOnUnload = null; + } + + for (const peer of this.peers.values()) { + peer.destroy(); + } + } + + /** + * Handle msg chunks. Returns false until the last chunk is received. Finally returns the entire msg + * + * @param object data + * @param data + * @param messageId + * @param chunkId + */ + _chunkHandler(data, messageId, chunkId) { + let target = null; + + if (!this.msgChunks.has(messageId)) { + const totalLength = new Uint32Array(data, 0, 3)[2]; + target = new Uint8Array(totalLength); + this.msgChunks.set(messageId, target); + } else { + target = this.msgChunks.get(messageId); + } + + const offsetToSet = chunkId * CHUNK_MAX_LENGTH_BYTES; + + const numBytesToSet = Math.min( + target.byteLength - offsetToSet, + CHUNK_MAX_LENGTH_BYTES + ); + + target.set( + new Uint8Array(data, CHUNK_HEADER_LENGTH_BYTES, numBytesToSet), + chunkId * CHUNK_MAX_LENGTH_BYTES + ); + + return target.buffer; + } + + _updateConnectedSessions() { + this.connectedSessions.length = 0; + + for (const [sessionId, peer] of this.peers) { + if (peer.connected) { + this.connectedSessions.push(sessionId); + continue; + } + } + } + + async _getNetworkSettings() { + await this._init(); + + let dtlsFingerprint = null; + const candidates = []; + const reflexiveIps = new Set(); + + const peerOptions = { iceServers: this.stunIceServers }; + + if (this.dtlsCert) { + peerOptions.certificates = [this.dtlsCert]; + } + + const pc = new this.wrtc.RTCPeerConnection(peerOptions); + pc.createDataChannel("x"); + + const p = new Promise((resolve) => { + setTimeout(() => resolve(), 5000); + + pc.onicecandidate = (e) => { + if (!e.candidate) return resolve(); + + if (e.candidate.candidate) { + candidates.push(parseCandidate(e.candidate.candidate)); + } + }; + }); + + pc.createOffer().then((offer) => { + for (const l of offer.sdp.split("\n")) { + if (l.indexOf("a=fingerprint") === -1) continue; + dtlsFingerprint = l.split(" ")[1].trim(); + } + + pc.setLocalDescription(offer); + }); + + await p; + + pc.close(); + + let isSymmetric = false; + let udpEnabled = false; + + // Network is not symmetric if we can find a srflx candidate that has a unique related port + /* eslint-disable no-labels */ + loop: for (const c of candidates) { + /* eslint-enable no-labels */ + if (c[0] !== CANDIDATE_TYPES.srflx) continue; + udpEnabled = true; + + reflexiveIps.add(c[CANDIDATE_IDX.IP]); + + for (const d of candidates) { + if (d[0] !== CANDIDATE_TYPES.srflx) continue; + if (c === d) continue; + + if ( + typeof c[CANDIDATE_IDX.RELATED_PORT] === "number" && + typeof d[CANDIDATE_IDX.RELATED_PORT] === "number" && + c[CANDIDATE_IDX.RELATED_PORT] === + d[CANDIDATE_IDX.RELATED_PORT] && + c[CANDIDATE_IDX.PORT] !== d[CANDIDATE_IDX.PORT] + ) { + // check port and related port + // Symmetric, continue + isSymmetric = true; + break; + } + } + } + + return [udpEnabled, isSymmetric, reflexiveIps, dtlsFingerprint]; + } + + _handlePeerError(peer, err) { + if ( + err.errorDetail === "sctp-failure" && + err.message.indexOf("User-Initiated Abort") >= 0 + ) { + return; // Benign shutdown + } + + console.error(err); + } + + _checkForSignalOrEmitMessage(peer, msg) { + if (msg.byteLength < SIGNAL_MESSAGE_HEADER_WORDS.length * 2) { + this.emit("msg", peer, msg); + return; + } + + const u16 = new Uint16Array(msg, 0, SIGNAL_MESSAGE_HEADER_WORDS.length); + + for (let i = 0; i < SIGNAL_MESSAGE_HEADER_WORDS.length; i++) { + if (u16[i] !== SIGNAL_MESSAGE_HEADER_WORDS[i]) { + this.emit("msg", peer, msg); + return; + } + } + + const u8 = new Uint8Array(msg, SIGNAL_MESSAGE_HEADER_WORDS.length * 2); + + let payload = arrToText(u8); + + // Might have a trailing byte + if (payload.endsWith("\0")) { + payload = payload.substring(0, payload.length - 1); + } + + peer.signal(payload); + } + + _wireUpCommonPeerEvents(peer) { + peer.on("connect", () => { + this.emit("peerconnect", peer); + + // Remove packages for the peer once connected + removeInPlace(this.packages, (pkg) => pkg[0] === peer.id); + this._updateConnectedSessions(); + }); + + peer.on("data", (data) => { + let messageId = null; + let u16 = null; + if (data.byteLength >= CHUNK_HEADER_LENGTH_BYTES) { + u16 = new Uint16Array(data, 0, CHUNK_HEADER_LENGTH_BYTES / 2); + + if (u16[0] === CHUNK_MAGIC_WORD) { + messageId = u16[1]; + } + } + if (messageId !== null) { + try { + const chunkId = u16[2]; + const last = u16[3] !== 0; + const msg = this._chunkHandler( + data, + messageId, + chunkId, + last + ); + if (last) { + this._checkForSignalOrEmitMessage(peer, msg); + this.msgChunks.delete(messageId); + } + } catch (e) { + console.error(e); + } + } else { + this._checkForSignalOrEmitMessage(peer, data); + } + }); + + peer.on("error", (err) => { + console.warn(err); + }); + + peer.on("close", () => { + this._removePeer(peer); + this._updateConnectedSessions(); + }); + + // Once ICE completes, perform subsequent signalling via the datachannel + peer.once("_iceComplete", () => { + peer.on("signal", (signalData) => { + const payloadBytes = textToArr(JSON.stringify(signalData)); + + let len = + payloadBytes.byteLength + + SIGNAL_MESSAGE_HEADER_WORDS.length * 2; + + if (len % 2 !== 0) { + len++; + } + + // Add signal header + const buf = new ArrayBuffer(len); + const u8 = new Uint8Array(buf); + const u16 = new Uint16Array(buf); + + u8.set(payloadBytes, SIGNAL_MESSAGE_HEADER_WORDS.length * 2); + + for (let i = 0; i < SIGNAL_MESSAGE_HEADER_WORDS.length; i++) { + u16[i] = SIGNAL_MESSAGE_HEADER_WORDS[i]; + } + + this.send(peer, buf); + }); + }); + } } diff --git a/blocks/environment/frontend.js b/blocks/environment/frontend.js index e1f8597..ea5fcb4 100644 --- a/blocks/environment/frontend.js +++ b/blocks/environment/frontend.js @@ -1,58 +1,88 @@ const { Component, render } = wp.element; -import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; +import React, { Suspense, useRef, useState, useEffect, useMemo } from "react"; -import EnvironmentFront from './components/EnvironmentFront'; -import Networking from './components/Networking'; +import EnvironmentFront from "./components/EnvironmentFront"; +import Networking from "./components/Networking"; -const threeApp = document.querySelectorAll( '.three-object-three-app-environment' ); -const modelsToAdd = document.querySelectorAll( '.three-object-three-app-model-block' ); -const htmlToAdd = document.querySelectorAll( '.three-object-three-app-three-html-block' ); -const portalsToAdd = document.querySelectorAll( '.three-object-three-app-three-portal-block' ); -const sky = document.querySelectorAll( '.three-object-three-app-sky-block' ); -const imagesToAdd = document.querySelectorAll( '.three-object-three-app-image-block' ); -const spawnToAdd = document.querySelectorAll( '.three-object-three-app-spawn-point-block' ); -const videosToAdd = document.querySelectorAll( '.three-object-three-app-video-block' ); -threeApp.forEach( ( threeApp ) => { - if ( threeApp ) { - const spawnPoint = [spawnToAdd[0].querySelector( 'p.spawn-point-block-positionX' ).innerText, spawnToAdd[0].querySelector( 'p.spawn-point-block-positionY' ).innerText, spawnToAdd[0].querySelector( 'p.spawn-point-block-positionZ' ).innerText ] - const threeUrl = threeApp.querySelector( 'p.three-object-block-url' ) - ? threeApp.querySelector( 'p.three-object-block-url' ).innerText - : ''; - const threePreviewImage = threeApp.querySelector( 'p.three-object-preview-image' ) - ? threeApp.querySelector( 'p.three-object-preview-image' ).innerText - : ''; +const threeApp = document.querySelectorAll( + ".three-object-three-app-environment" +); +const modelsToAdd = document.querySelectorAll( + ".three-object-three-app-model-block" +); +const htmlToAdd = document.querySelectorAll( + ".three-object-three-app-three-html-block" +); +const portalsToAdd = document.querySelectorAll( + ".three-object-three-app-three-portal-block" +); +const sky = document.querySelectorAll(".three-object-three-app-sky-block"); +const imagesToAdd = document.querySelectorAll( + ".three-object-three-app-image-block" +); +const spawnToAdd = document.querySelectorAll( + ".three-object-three-app-spawn-point-block" +); +const videosToAdd = document.querySelectorAll( + ".three-object-three-app-video-block" +); +threeApp.forEach((threeApp) => { + if (threeApp) { + const spawnPoint = + spawnToAdd.length !== 0 + ? [ + spawnToAdd[0].querySelector( + "p.spawn-point-block-positionX" + ).innerText, + spawnToAdd[0].querySelector( + "p.spawn-point-block-positionY" + ).innerText, + spawnToAdd[0].querySelector( + "p.spawn-point-block-positionZ" + ).innerText + ] + : [0, 0, 0]; + const threeUrl = threeApp.querySelector("p.three-object-block-url") + ? threeApp.querySelector("p.three-object-block-url").innerText + : ""; + const threePreviewImage = threeApp.querySelector( + "p.three-object-preview-image" + ) + ? threeApp.querySelector("p.three-object-preview-image").innerText + : ""; const deviceTarget = threeApp.querySelector( - 'p.three-object-block-device-target' + "p.three-object-block-device-target" ) - ? threeApp.querySelector( 'p.three-object-block-device-target' ) + ? threeApp.querySelector("p.three-object-block-device-target") .innerText - : '2D'; + : "2D"; const backgroundColor = threeApp.querySelector( - 'p.three-object-background-color' + "p.three-object-background-color" ) - ? threeApp.querySelector( 'p.three-object-background-color' ).innerText - : '#ffffff'; - const zoom = threeApp.querySelector( 'p.three-object-zoom' ) - ? threeApp.querySelector( 'p.three-object-zoom' ).innerText + ? threeApp.querySelector("p.three-object-background-color") + .innerText + : "#ffffff"; + const zoom = threeApp.querySelector("p.three-object-zoom") + ? threeApp.querySelector("p.three-object-zoom").innerText : 90; - const scale = threeApp.querySelector( 'p.three-object-scale' ) - ? threeApp.querySelector( 'p.three-object-scale' ).innerText + const scale = threeApp.querySelector("p.three-object-scale") + ? threeApp.querySelector("p.three-object-scale").innerText : 1; - const hasZoom = threeApp.querySelector( 'p.three-object-has-zoom' ) - ? threeApp.querySelector( 'p.three-object-has-zoom' ).innerText + const hasZoom = threeApp.querySelector("p.three-object-has-zoom") + ? threeApp.querySelector("p.three-object-has-zoom").innerText : false; - const hasTip = threeApp.querySelector( 'p.three-object-has-tip' ) - ? threeApp.querySelector( 'p.three-object-has-tip' ).innerText + const hasTip = threeApp.querySelector("p.three-object-has-tip") + ? threeApp.querySelector("p.three-object-has-tip").innerText : true; - const positionY = threeApp.querySelector( 'p.three-object-position-y' ) - ? threeApp.querySelector( 'p.three-object-position-y' ).innerText + const positionY = threeApp.querySelector("p.three-object-position-y") + ? threeApp.querySelector("p.three-object-position-y").innerText : 0; - const rotationY = threeApp.querySelector( 'p.three-object-rotation-y' ) - ? threeApp.querySelector( 'p.three-object-rotation-y' ).innerText + const rotationY = threeApp.querySelector("p.three-object-rotation-y") + ? threeApp.querySelector("p.three-object-rotation-y").innerText : 0; - const animations = threeApp.querySelector( 'p.three-object-animations' ) - ? threeApp.querySelector( 'p.three-object-animations' ).innerText - : ''; + const animations = threeApp.querySelector("p.three-object-animations") + ? threeApp.querySelector("p.three-object-animations").innerText + : ""; render( <> @@ -71,31 +101,29 @@ threeApp.forEach( ( threeApp ) => { userData={userData} /> */} , threeApp ); } -} ); - - +}); diff --git a/blocks/environment/index.js b/blocks/environment/index.js index 22b14b6..0b83de5 100644 --- a/blocks/environment/index.js +++ b/blocks/environment/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); diff --git a/blocks/model-block/Edit.js b/blocks/model-block/Edit.js index 4d535e2..a9cbc0b 100644 --- a/blocks/model-block/Edit.js +++ b/blocks/model-block/Edit.js @@ -1,13 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import { DropZone } from "@wordpress/components"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, - MediaUpload, -} from '@wordpress/block-editor'; + MediaUpload +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -16,119 +16,115 @@ import { ToggleControl, SelectControl, TextControl, - TextareaControl, -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; + TextareaControl +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -import ModelEdit from './components/ModelEdit'; +import ModelEdit from "./components/ModelEdit"; -export default function Edit( { attributes, setAttributes, isSelected } ) { - - const onChangePositionX = ( positionX ) => { - setAttributes( { positionX: positionX } ); +export default function Edit({ attributes, setAttributes, isSelected }) { + const onChangePositionX = (positionX) => { + setAttributes({ positionX }); }; - const onChangePositionY = ( positionY ) => { - setAttributes( { positionY: positionY } ); + const onChangePositionY = (positionY) => { + setAttributes({ positionY }); }; - const onChangePositionZ = ( positionZ ) => { - setAttributes( { positionZ: positionZ } ); + const onChangePositionZ = (positionZ) => { + setAttributes({ positionZ }); }; - const onChangeAlt = ( altValue ) => { - setAttributes( { alt: altValue } ); + const onChangeAlt = (altValue) => { + setAttributes({ alt: altValue }); }; - const onChangeRotationX = ( rotationX ) => { - setAttributes( { rotationX: rotationX } ); + const onChangeRotationX = (rotationX) => { + setAttributes({ rotationX }); }; - const onChangeRotationY = ( rotationY ) => { - setAttributes( { rotationY: rotationY } ); + const onChangeRotationY = (rotationY) => { + setAttributes({ rotationY }); }; - const onChangeRotationZ = ( rotationZ ) => { - setAttributes( { rotationZ: rotationZ } ); + const onChangeRotationZ = (rotationZ) => { + setAttributes({ rotationZ }); }; - const onChangeScaleX = ( scaleX ) => { - setAttributes( { scaleX: scaleX } ); + const onChangeScaleX = (scaleX) => { + setAttributes({ scaleX }); }; - const onChangeScaleY = ( scaleY ) => { - setAttributes( { scaleY: scaleY } ); + const onChangeScaleY = (scaleY) => { + setAttributes({ scaleY }); }; - const onChangeScaleZ = ( scaleZ ) => { - setAttributes( { scaleZ: scaleZ } ); + const onChangeScaleZ = (scaleZ) => { + setAttributes({ scaleZ }); }; - const onChangeAnimations = ( animations ) => { - setAttributes( { animations: animations } ); + const onChangeAnimations = (animations) => { + setAttributes({ animations }); }; - const onChangeName = ( name ) => { - setAttributes( { name: name } ); + const onChangeName = (name) => { + setAttributes({ name }); }; - const onImageSelect = ( imageObject ) => { - setAttributes( { threeObjectUrl: null } ); - setAttributes( { threeObjectUrl: imageObject.url } ); + const onImageSelect = (imageObject) => { + setAttributes({ threeObjectUrl: null }); + setAttributes({ threeObjectUrl: imageObject.url }); }; - const onChangeCollidable = ( collidableSetting ) => { - setAttributes( { collidable: collidableSetting } ); + const onChangeCollidable = (collidableSetting) => { + setAttributes({ collidable: collidableSetting }); }; - const [ enteredURL, setEnteredURL ] = useState( "" ); + const [enteredURL, setEnteredURL] = useState(""); const { mediaUpload } = wp.editor; const ALLOWED_MEDIA_TYPES = [ - 'model/gltf-binary', - 'application/octet-stream', + "model/gltf-binary", + "application/octet-stream" ]; - + const MyDropZone = () => { - const [ hasDropped, setHasDropped ] = useState( false ); + const [hasDropped, setHasDropped] = useState(false); return (
- { hasDropped ? 'Dropped!' : 'Drop a glb here or' } + {hasDropped ? "Dropped!" : "Drop a glb here or"} - mediaUpload( { + onFilesDrop={(files) => + mediaUpload({ allowedTypes: ALLOWED_MEDIA_TYPES, filesList: files, - onFileChange: ( [ images ] ) => { - onImageSelect( images ); - }, - } ) + onFileChange: ([images]) => { + onImageSelect(images); + } + }) } />
); }; - - function handleClick(objectURL){ - if(objectURL){ + + function handleClick(objectURL) { + if (objectURL) { onImageSelect(objectURL); } console.log("fail", objectURL); } - return ( -
+
- onChangeName( value ) - } + value={attributes.name} + onChange={(value) => onChangeName(value)} /> @@ -139,176 +135,176 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { - onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="image" label="GLB File" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } + )} /> { - onChangeCollidable( e ); - } } + checked={attributes.collidable} + onChange={(e) => { + onChangeCollidable(e); + }} /> - onChangeAnimations( value ) - } + value={attributes.animations} + onChange={(value) => onChangeAnimations(value)} /> - onChangeAlt( value ) - } + value={attributes.alt} + onChange={(value) => onChangeAlt(value)} /> - + - { __( 'Position', 'three-object-viewer' ) } - + {__("Position", "three-object-viewer")} + - onChangePositionX( value ) - } + value={attributes.positionX} + onChange={(value) => onChangePositionX(value)} /> - onChangePositionY( value ) - } + value={attributes.positionY} + onChange={(value) => onChangePositionY(value)} /> - onChangePositionZ( value ) - } + value={attributes.positionZ} + onChange={(value) => onChangePositionZ(value)} /> - + - { __( 'Rotation', 'three-object-viewer' ) } - + {__("Rotation", "three-object-viewer")} + - onChangeRotationX( value ) - } + value={attributes.rotationX} + onChange={(value) => onChangeRotationX(value)} /> - onChangeRotationY( value ) - } + value={attributes.rotationY} + onChange={(value) => onChangeRotationY(value)} /> - onChangeRotationZ( value ) - } + value={attributes.rotationZ} + onChange={(value) => onChangeRotationZ(value)} /> - + - { __( 'Scale', 'three-object-viewer' ) } - + {__("Scale", "three-object-viewer")} + - onChangeScaleX( value ) - } + value={attributes.scaleX} + onChange={(value) => onChangeScaleX(value)} /> - onChangeScaleY( value ) - } + value={attributes.scaleY} + onChange={(value) => onChangeScaleY(value)} /> - onChangeScaleZ( value ) - } + value={attributes.scaleZ} + onChange={(value) => onChangeScaleZ(value)} /> - { isSelected ? ( + {isSelected ? ( <> - { attributes.threeObjectUrl ? ( + {attributes.threeObjectUrl ? ( //Not selected -
+
+ + + + + +

+ Model block +

+
+

+ {attributes.name} +

+
+
+ ) : ( +
+
-

Model block

-
-

{attributes.name}

+ + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.threeObjectUrl} + render={({ open }) => ( + + )} + />
-
- ) : ( -
-
- - - - - - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } - /> -
-
- ) } +
+ )} ) : ( <> - { attributes.threeObjectUrl ? ( -
+ {attributes.threeObjectUrl ? ( +
-

Model block

+

+ Model block +

-

{attributes.name}

+

+ {attributes.name} +

) : (
-
- - - - - - - onImageSelect( imageObject ) +
+ + + + + + + onImageSelect(imageObject) } type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } - /> + )} + /> +
-
- ) } + )} - ) } + )}
); } diff --git a/blocks/model-block/Edit.test.js b/blocks/model-block/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/model-block/Edit.test.js +++ b/blocks/model-block/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/model-block/Save.js b/blocks/model-block/Save.js index 6ad1f23..e6a7ec6 100644 --- a/blocks/model-block/Save.js +++ b/blocks/model-block/Save.js @@ -1,32 +1,42 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>

- { attributes.threeObjectUrl } -

-

{ attributes.scaleX }

-

{ attributes.scaleY }

-

{ attributes.scaleZ }

-

{ attributes.positionX }

-

{ attributes.positionY }

-

{ attributes.positionZ }

-

{ attributes.rotationX }

-

{ attributes.rotationY }

-

{ attributes.rotationZ }

+ {attributes.threeObjectUrl} +

+

{attributes.scaleX}

+

{attributes.scaleY}

+

{attributes.scaleZ}

+

+ {attributes.positionX} +

+

+ {attributes.positionY} +

+

+ {attributes.positionZ} +

+

+ {attributes.rotationX} +

+

+ {attributes.rotationY} +

+

+ {attributes.rotationZ} +

- { attributes.animations } + {attributes.animations}

- { attributes.collidable ? 1 : 0 } -

-

- { attributes.alt } + {attributes.collidable ? 1 : 0}

+

{attributes.alt}

diff --git a/blocks/model-block/components/ModelEdit.js b/blocks/model-block/components/ModelEdit.js index 2dd5e1f..cee8fe5 100644 --- a/blocks/model-block/components/ModelEdit.js +++ b/blocks/model-block/components/ModelEdit.js @@ -1,105 +1,106 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import * as THREE from "three"; +import React, { Suspense, useRef, useState, useEffect } from "react"; +import { Canvas, useLoader, useFrame, useThree } from "@react-three/fiber"; +import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; import { OrthographicCamera, PerspectiveCamera, OrbitControls, - useAnimations, -} from '@react-three/drei'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; + useAnimations +} from "@react-three/drei"; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from "@pixiv/three-vrm"; +import { GLTFAudioEmitterExtension } from "three-omi"; +function ThreeObject(props) { + const [url, set] = useState(props.url); + useEffect(() => { + setTimeout(() => set(props.url), 2000); + }, []); + const [listener] = useState(() => new THREE.AudioListener()); -function ThreeObject( props ) { - const [ url, set ] = useState( props.url ); - useEffect( () => { - setTimeout( () => set( props.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); + useThree(({ camera }) => { + camera.add(listener); + }); - useThree( ( { camera } ) => { - camera.add( listener ); - } ); - - const gltf = useLoader( GLTFLoader, url, ( loader ) => { + const gltf = useLoader(GLTFLoader, url, (loader) => { loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + (parser) => new GLTFAudioEmitterExtension(parser, listener) ); - loader.register( ( parser ) => { - - return new VRMLoaderPlugin( parser ); - - } ); - - } ); + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); - const { actions } = useAnimations( gltf.animations, gltf.scene ); + const { actions } = useAnimations(gltf.animations, gltf.scene); - const animationList = props.animations ? props.animations.split( ',' ) : ''; + const animationList = props.animations ? props.animations.split(",") : ""; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); + useEffect(() => { + if (animationList) { + animationList.forEach((name) => { + if (Object.keys(actions).includes(name)) { + actions[name].play(); } - } ); + }); } - }, [] ); + }, []); - if(gltf?.userData?.gltfExtensions?.VRM){ - const vrm = gltf.userData.vrm; - vrm.scene.position.set( 0, props.positionY, 0 ); - VRMUtils.rotateVRM0( vrm ); - const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - vrm.scene.rotation.set( 0, rotationVRM, 0 ); - // vrm.scene.scale.set( props.scaleX, props.scaleY, props.scaleZ ); - return ; - } - gltf.scene.position.set( 0, 0, 0 ); - gltf.scene.rotation.set( 0, 0, 0 ); - gltf.scene.scale.set( 1, 1, 1 ); - return ; + if (gltf?.userData?.gltfExtensions?.VRM) { + const vrm = gltf.userData.vrm; + vrm.scene.position.set(0, props.positionY, 0); + VRMUtils.rotateVRM0(vrm); + const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); + vrm.scene.rotation.set(0, rotationVRM, 0); + // vrm.scene.scale.set( props.scaleX, props.scaleY, props.scaleZ ); + return ; + } + gltf.scene.position.set(0, 0, 0); + gltf.scene.rotation.set(0, 0, 0); + gltf.scene.scale.set(1, 1, 1); + return ; } -export default function ModelEdit( props ) { +export default function ModelEdit(props) { return ( <> - - + + - { props.url && ( - - - - ) } - + {props.url && ( + + + + )} + - { props.hasTip && ( + {props.hasTip && (

Click and drag ^

- ) } + )} ); } diff --git a/blocks/model-block/index.js b/blocks/model-block/index.js index 22b14b6..0b83de5 100644 --- a/blocks/model-block/index.js +++ b/blocks/model-block/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); diff --git a/blocks/sky-block/Edit.js b/blocks/sky-block/Edit.js index aa40a98..6ffb8a2 100644 --- a/blocks/sky-block/Edit.js +++ b/blocks/sky-block/Edit.js @@ -1,13 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import { DropZone } from "@wordpress/components"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, - MediaUpload, -} from '@wordpress/block-editor'; + MediaUpload +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -15,101 +15,97 @@ import { RangeControl, ToggleControl, SelectControl, - TextControl, -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; + TextControl +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -import SkyEdit from './components/SkyEdit'; +import SkyEdit from "./components/SkyEdit"; -export default function Edit( { attributes, setAttributes, isSelected } ) { - - const onImageSelect = ( imageObject ) => { - setAttributes( { skyUrl: null } ); - setAttributes( { skyUrl: imageObject.url } ); +export default function Edit({ attributes, setAttributes, isSelected }) { + const onImageSelect = (imageObject) => { + setAttributes({ skyUrl: null }); + setAttributes({ skyUrl: imageObject.url }); }; - const onChangeCollidable = ( zoomSetting ) => { - setAttributes( { hasZoom: zoomSetting } ); + const onChangeCollidable = (zoomSetting) => { + setAttributes({ hasZoom: zoomSetting }); }; - const { mediaUpload } = wp.editor; - const ALLOWED_MEDIA_TYPES = [ - 'image' - ]; + const ALLOWED_MEDIA_TYPES = ["image"]; const MyDropZone = () => { - const [ hasDropped, setHasDropped ] = useState( false ); + const [hasDropped, setHasDropped] = useState(false); return (
- { hasDropped ? 'Dropped!' : 'Drop an image here or' } + {hasDropped ? "Dropped!" : "Drop an image here or"} - mediaUpload( { + onFilesDrop={(files) => + mediaUpload({ allowedTypes: ALLOWED_MEDIA_TYPES, filesList: files, - onFileChange: ( [ images ] ) => { - onImageSelect( images ); - }, - } ) + onFileChange: ([images]) => { + onImageSelect(images); + } + }) } />
); }; - - function handleClick(objectURL){ - if(objectURL){ + + function handleClick(objectURL) { + if (objectURL) { onImageSelect(objectURL); } console.log("fail", objectURL); - } + } - return ( -
+
- Select an image to be used as your skybox. 360 spherical panoramics recommended: + Select an image to be used as your skybox. 360 + spherical panoramics recommended: - onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="image" label="Sky File" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.skyUrl } - render={ ( { open } ) => ( - - ) } + )} /> - { isSelected ? ( + {isSelected ? ( <> - { attributes.skyUrl ? ( + {attributes.skyUrl ? ( <>
-

Sky block

+

+ Sky block +

{/*

URL: {attributes.skyUrl}

*/}
-
- ) : ( -
-
- - - - - - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.skyUrl } - render={ ( { open } ) => ( - - ) } - /> -
+
+ + ) : ( +
+
+ + + + + + + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.skyUrl} + render={({ open }) => ( + + )} + /> +
- ) } + )} ) : ( <> - { attributes.skyUrl ? ( - <> + {attributes.skyUrl ? ( + <> +
+
+ + + + + +

+ Sky block +

+ {/*

URL: {attributes.skyUrl}

*/} +
+
+ + ) : (
-

Sky block

- {/*

URL: {attributes.skyUrl}

*/} + + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.skyUrl} + render={({ open }) => ( + + )} + />
-
- ) : ( -
-
- - - - - - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.skyUrl } - render={ ( { open } ) => ( - - ) } - /> -
- ) } + )} - ) } + )}
); } diff --git a/blocks/sky-block/Edit.test.js b/blocks/sky-block/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/sky-block/Edit.test.js +++ b/blocks/sky-block/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/sky-block/Save.js b/blocks/sky-block/Save.js index ee57703..1e38284 100644 --- a/blocks/sky-block/Save.js +++ b/blocks/sky-block/Save.js @@ -1,14 +1,12 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>
-

- { attributes.skyUrl } -

+

{attributes.skyUrl}

diff --git a/blocks/sky-block/index.js b/blocks/sky-block/index.js index 22b14b6..0b83de5 100644 --- a/blocks/sky-block/index.js +++ b/blocks/sky-block/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); diff --git a/blocks/spawn-point-block/Edit.js b/blocks/spawn-point-block/Edit.js index b6eb73a..3f19501 100644 --- a/blocks/spawn-point-block/Edit.js +++ b/blocks/spawn-point-block/Edit.js @@ -1,13 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import { DropZone } from "@wordpress/components"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, - MediaUpload, -} from '@wordpress/block-editor'; + MediaUpload +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -15,123 +15,112 @@ import { RangeControl, ToggleControl, SelectControl, - TextControl, -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; + TextControl +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -export default function Edit( { attributes, setAttributes, isSelected } ) { - - const onChangePositionX = ( positionX ) => { - setAttributes( { positionX: positionX } ); +export default function Edit({ attributes, setAttributes, isSelected }) { + const onChangePositionX = (positionX) => { + setAttributes({ positionX }); }; - const onChangePositionY = ( positionY ) => { - setAttributes( { positionY: positionY } ); + const onChangePositionY = (positionY) => { + setAttributes({ positionY }); }; - const onChangePositionZ = ( positionZ ) => { - setAttributes( { positionZ: positionZ } ); + const onChangePositionZ = (positionZ) => { + setAttributes({ positionZ }); }; - const onChangeRotationX = ( rotationX ) => { - setAttributes( { rotationX: rotationX } ); + const onChangeRotationX = (rotationX) => { + setAttributes({ rotationX }); }; - const onChangeRotationY = ( rotationY ) => { - setAttributes( { rotationY: rotationY } ); + const onChangeRotationY = (rotationY) => { + setAttributes({ rotationY }); }; - const onChangeRotationZ = ( rotationZ ) => { - setAttributes( { rotationZ: rotationZ } ); + const onChangeRotationZ = (rotationZ) => { + setAttributes({ rotationZ }); }; - + return ( -
+
- onChangePositionX( value ) - } + value={attributes.positionX} + onChange={(value) => onChangePositionX(value)} /> - onChangePositionY( value ) - } + value={attributes.positionY} + onChange={(value) => onChangePositionY(value)} /> - onChangePositionZ( value ) - } + value={attributes.positionZ} + onChange={(value) => onChangePositionZ(value)} /> - + - { __( 'Rotation', 'three-object-viewer' ) } - + {__("Rotation", "three-object-viewer")} + - onChangeRotationX( value ) - } + value={attributes.rotationX} + onChange={(value) => onChangeRotationX(value)} /> - onChangeRotationY( value ) - } + value={attributes.rotationY} + onChange={(value) => onChangeRotationY(value)} /> - onChangeRotationZ( value ) - } + value={attributes.rotationZ} + onChange={(value) => onChangeRotationZ(value)} /> - <> + <>
-
- - - - - -

Spawn Point

-
+
+ + + + + +

+ Spawn Point +

+
- +
); } diff --git a/blocks/spawn-point-block/Edit.test.js b/blocks/spawn-point-block/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/spawn-point-block/Edit.test.js +++ b/blocks/spawn-point-block/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/spawn-point-block/Save.js b/blocks/spawn-point-block/Save.js index 0af3e90..9ef1449 100644 --- a/blocks/spawn-point-block/Save.js +++ b/blocks/spawn-point-block/Save.js @@ -1,28 +1,28 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>

- { attributes.positionX } + {attributes.positionX}

- { attributes.positionY } + {attributes.positionY}

- { attributes.positionZ } + {attributes.positionZ}

- { attributes.rotationX } + {attributes.rotationX}

- { attributes.rotationY } + {attributes.rotationY}

- { attributes.rotationZ } + {attributes.rotationZ}

diff --git a/blocks/spawn-point-block/index.js b/blocks/spawn-point-block/index.js index 22b14b6..0b83de5 100644 --- a/blocks/spawn-point-block/index.js +++ b/blocks/spawn-point-block/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); diff --git a/blocks/three-audio-block/Edit.js b/blocks/three-audio-block/Edit.js index 492b17f..8684792 100644 --- a/blocks/three-audio-block/Edit.js +++ b/blocks/three-audio-block/Edit.js @@ -1,13 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import { DropZone } from "@wordpress/components"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, - MediaUpload, -} from '@wordpress/block-editor'; + MediaUpload +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -15,209 +15,196 @@ import { RangeControl, ToggleControl, SelectControl, - TextControl, -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; + TextControl +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -import VideoEdit from './components/ImageEdit'; +import VideoEdit from "./components/ImageEdit"; -export default function Edit( { attributes, setAttributes, isSelected } ) { - - const onImageSelect = ( imageObject ) => { +export default function Edit({ attributes, setAttributes, isSelected }) { + const onImageSelect = (imageObject) => { console.log(imageObject); - setAttributes( { videoUrl: null } ); - setAttributes( { videoUrl: imageObject.url, aspectHeight: imageObject.height, aspectWidth: imageObject.width } ); + setAttributes({ videoUrl: null }); + setAttributes({ + videoUrl: imageObject.url, + aspectHeight: imageObject.height, + aspectWidth: imageObject.width + }); }; - const onChangePositionX = ( positionX ) => { - setAttributes( { positionX: positionX } ); + const onChangePositionX = (positionX) => { + setAttributes({ positionX }); }; - const onChangePositionY = ( positionY ) => { - setAttributes( { positionY: positionY } ); + const onChangePositionY = (positionY) => { + setAttributes({ positionY }); }; - const onChangePositionZ = ( positionZ ) => { - setAttributes( { positionZ: positionZ } ); + const onChangePositionZ = (positionZ) => { + setAttributes({ positionZ }); }; - const onChangeRotationX = ( rotationX ) => { - setAttributes( { rotationX: rotationX } ); + const onChangeRotationX = (rotationX) => { + setAttributes({ rotationX }); }; - const onChangeRotationY = ( rotationY ) => { - setAttributes( { rotationY: rotationY } ); + const onChangeRotationY = (rotationY) => { + setAttributes({ rotationY }); }; - const onChangeRotationZ = ( rotationZ ) => { - setAttributes( { rotationZ: rotationZ } ); + const onChangeRotationZ = (rotationZ) => { + setAttributes({ rotationZ }); }; - const onChangeAutoPlay = ( autoPlaySetting ) => { - setAttributes( { autoPlay: autoPlaySetting } ); + const onChangeAutoPlay = (autoPlaySetting) => { + setAttributes({ autoPlay: autoPlaySetting }); }; - const onChangeLoop = ( loopSetting ) => { - setAttributes( { loop: loopSetting } ); + const onChangeLoop = (loopSetting) => { + setAttributes({ loop: loopSetting }); }; - const onChangePositional = ( positionalSetting ) => { - setAttributes( { positional: positionalSetting } ); + const onChangePositional = (positionalSetting) => { + setAttributes({ positional: positionalSetting }); }; - const onChangeVolume = ( volumeSetting ) => { - setAttributes( { volume: volumeSetting } ); + const onChangeVolume = (volumeSetting) => { + setAttributes({ volume: volumeSetting }); }; - const onChangeConeInnerAngle = ( coneInnerAngleSetting ) => { - setAttributes( { coneInnerAngle: coneInnerAngleSetting } ); + const onChangeConeInnerAngle = (coneInnerAngleSetting) => { + setAttributes({ coneInnerAngle: coneInnerAngleSetting }); }; - const onChangeConeOuterAngle = ( coneOuterAngleSetting ) => { - setAttributes( { coneOuterAngle: coneOuterAngleSetting } ); + const onChangeConeOuterAngle = (coneOuterAngleSetting) => { + setAttributes({ coneOuterAngle: coneOuterAngleSetting }); }; - const onChangeConeOuterGain = ( coneOuterGainSetting ) => { - setAttributes( { coneOuterGain: coneOuterGainSetting } ); + const onChangeConeOuterGain = (coneOuterGainSetting) => { + setAttributes({ coneOuterGain: coneOuterGainSetting }); }; - const onChangeDistanceModel = ( distanceModelSetting ) => { - setAttributes( { distanceModel: distanceModelSetting } ); + const onChangeDistanceModel = (distanceModelSetting) => { + setAttributes({ distanceModel: distanceModelSetting }); }; - const onChangeMaxDistance = ( maxDistanceSetting ) => { - setAttributes( { maxDistance: maxDistanceSetting } ); + const onChangeMaxDistance = (maxDistanceSetting) => { + setAttributes({ maxDistance: maxDistanceSetting }); }; - const onChangeRefDistance = ( refDistanceSetting ) => { - setAttributes( { refDistance: refDistanceSetting } ); + const onChangeRefDistance = (refDistanceSetting) => { + setAttributes({ refDistance: refDistanceSetting }); }; - - const onChangeRolloffFactor = ( rolloffFactorSetting ) => { - setAttributes( { rolloffFactor: rolloffFactorSetting } ); + + const onChangeRolloffFactor = (rolloffFactorSetting) => { + setAttributes({ rolloffFactor: rolloffFactorSetting }); }; - - - + const { mediaUpload } = wp.editor; - const ALLOWED_MEDIA_TYPES = [ - 'audio' - ]; + const ALLOWED_MEDIA_TYPES = ["audio"]; const MyDropZone = () => { - const [ hasDropped, setHasDropped ] = useState( false ); + const [hasDropped, setHasDropped] = useState(false); return (
- { hasDropped ? 'Dropped!' : 'Drop an image here or' } + {hasDropped ? "Dropped!" : "Drop an image here or"} - mediaUpload( { + onFilesDrop={(files) => + mediaUpload({ allowedTypes: ALLOWED_MEDIA_TYPES, filesList: files, - onFileChange: ( [ images ] ) => { - onImageSelect( images ); - }, - } ) + onFileChange: ([images]) => { + onImageSelect(images); + } + }) } />
); }; - - function handleClick(objectURL){ - if(objectURL){ + + function handleClick(objectURL) { + if (objectURL) { console.log("success good job", objectURL); onImageSelect(objectURL); } console.log("fail", objectURL); - } + } - return ( -
+
- Select an image or object to attach to your audio. Leave blank for no mesh. + Select an image or object to attach to your + audio. Leave blank for no mesh. - onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="audio" label="Audio File" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.audioUrl } - render={ ( { open } ) => ( - - ) } + )} /> - + - { __( 'Position', 'three-object-viewer' ) } - + {__("Position", "three-object-viewer")} + - onChangePositionX( value ) - } + value={attributes.positionX} + onChange={(value) => onChangePositionX(value)} /> - onChangePositionY( value ) - } + value={attributes.positionY} + onChange={(value) => onChangePositionY(value)} /> - onChangePositionZ( value ) - } + value={attributes.positionZ} + onChange={(value) => onChangePositionZ(value)} /> - + - { __( 'Rotation', 'three-object-viewer' ) } - + {__("Rotation", "three-object-viewer")} + - onChangeRotationX( value ) - } + value={attributes.rotationX} + onChange={(value) => onChangeRotationX(value)} /> - onChangeRotationY( value ) - } + value={attributes.rotationY} + onChange={(value) => onChangeRotationY(value)} /> - onChangeRotationZ( value ) - } + value={attributes.rotationZ} + onChange={(value) => onChangeRotationZ(value)} /> @@ -225,13 +212,13 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { label="AutoPlay" help={ attributes.autoPlay - ? 'Item will autoplay.' - : 'Item will not autoplay.' + ? "Item will autoplay." + : "Item will not autoplay." } - checked={ attributes.autoPlay } - onChange={ ( e ) => { - onChangeAutoPlay( e ); - } } + checked={attributes.autoPlay} + onChange={(e) => { + onChangeAutoPlay(e); + }} /> @@ -239,13 +226,13 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { label="Loop" help={ attributes.loop - ? 'Item will loop.' - : 'Item will not loop.' + ? "Item will loop." + : "Item will not loop." } - checked={ attributes.loop } - onChange={ ( e ) => { - onChangeLoop( e ); - } } + checked={attributes.loop} + onChange={(e) => { + onChangeLoop(e); + }} /> @@ -253,13 +240,13 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { label="Positional" help={ attributes.positional - ? 'Item will be spatial audio.' - : 'Item will be global audio.' + ? "Item will be spatial audio." + : "Item will be global audio." } - checked={ attributes.positional } - onChange={ ( e ) => { - onChangePositional( e ); - } } + checked={attributes.positional} + onChange={(e) => { + onChangePositional(e); + }} /> @@ -271,204 +258,213 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { min={0} step={0.01} // help="position x" - value={ attributes.volume } - onChange={ ( value ) => - onChangeVolume( value ) - } + value={attributes.volume} + onChange={(value) => onChangeVolume(value)} /> - { attributes.positional && ( - - - - onChangeConeInnerAngle( value ) - } - /> - - - - onChangeConeOuterAngle( value ) - } - /> - - - - onChangeConeOuterGain( value ) - } - /> - - - - onChangeDistanceModel( target ) - } - /> - - - - onChangeMaxDistance( value ) - } - /> - - - - onChangeRefDistance( value ) - } - /> - - - - onChangeRolloffFactor( value ) - } - /> - - + {attributes.positional && ( + + + + onChangeConeInnerAngle(value) + } + /> + + + + onChangeConeOuterAngle(value) + } + /> + + + + onChangeConeOuterGain(value) + } + /> + + + + onChangeDistanceModel(target) + } + /> + + + + onChangeMaxDistance(value) + } + /> + + + + onChangeRefDistance(value) + } + /> + + + + onChangeRolloffFactor(value) + } + /> + + )} - { isSelected ? ( + {isSelected ? ( <> - { attributes.videoUrl ? ( + {attributes.videoUrl ? ( <> - - ) : ( -
-
- - - - - - - onImageSelect( imageObject ) - } - type="video" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.videoUrl } - render={ ( { open } ) => ( - - ) } /> + + ) : ( +
+
+ + + + + + + onImageSelect(imageObject) + } + type="video" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.videoUrl} + render={({ open }) => ( + + )} + /> +
-
- ) } + )} ) : ( <> - { attributes.videoUrl ? ( - <> - - ) : ( -
-
- - - - - - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.videoUrl } - render={ ( { open } ) => ( - - ) } + {attributes.videoUrl ? ( + <> + + + ) : ( +
+
+ + + + + + + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.videoUrl} + render={({ open }) => ( + + )} + /> +
-
- ) } + )} - ) } + )}
); } diff --git a/blocks/three-audio-block/Edit.test.js b/blocks/three-audio-block/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/three-audio-block/Edit.test.js +++ b/blocks/three-audio-block/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/three-audio-block/Save.js b/blocks/three-audio-block/Save.js index 90f194b..074702c 100644 --- a/blocks/three-audio-block/Save.js +++ b/blocks/three-audio-block/Save.js @@ -1,48 +1,39 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>
-

- { attributes.audioUrl } -

-

- { attributes.scaleX } -

-

- { attributes.scaleY } -

-

- { attributes.scaleZ } -

+

{attributes.audioUrl}

+

{attributes.scaleX}

+

{attributes.scaleY}

+

{attributes.scaleZ}

- { attributes.positionX } + {attributes.positionX}

- { attributes.positionY } + {attributes.positionY}

- { attributes.positionZ } + {attributes.positionZ}

- { attributes.rotationX } + {attributes.rotationX}

- { attributes.rotationY } + {attributes.rotationY}

- { attributes.rotationZ } + {attributes.rotationZ}

- { attributes.aspectHeight } + {attributes.aspectHeight}

- { attributes.aspectWidth } + {attributes.aspectWidth}

-
diff --git a/blocks/three-audio-block/index.js b/blocks/three-audio-block/index.js index 22b14b6..0b83de5 100644 --- a/blocks/three-audio-block/index.js +++ b/blocks/three-audio-block/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); diff --git a/blocks/three-html-block/Edit.js b/blocks/three-html-block/Edit.js index 39d2521..f34fe05 100644 --- a/blocks/three-html-block/Edit.js +++ b/blocks/three-html-block/Edit.js @@ -1,13 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import { DropZone } from "@wordpress/components"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, - MediaUpload, -} from '@wordpress/block-editor'; + MediaUpload +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -17,110 +17,108 @@ import { SelectControl, TextControl, TextareaControl -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -import ModelEdit from './components/ModelEdit'; +import ModelEdit from "./components/ModelEdit"; -export default function Edit( { attributes, setAttributes, isSelected } ) { - - const onChangePositionX = ( positionX ) => { - setAttributes( { positionX: positionX } ); +export default function Edit({ attributes, setAttributes, isSelected }) { + const onChangePositionX = (positionX) => { + setAttributes({ positionX }); }; - const onChangePositionY = ( positionY ) => { - setAttributes( { positionY: positionY } ); + const onChangePositionY = (positionY) => { + setAttributes({ positionY }); }; - const onChangePositionZ = ( positionZ ) => { - setAttributes( { positionZ: positionZ } ); + const onChangePositionZ = (positionZ) => { + setAttributes({ positionZ }); }; - const onChangeRotationX = ( rotationX ) => { - setAttributes( { rotationX: rotationX } ); + const onChangeRotationX = (rotationX) => { + setAttributes({ rotationX }); }; - const onChangeRotationY = ( rotationY ) => { - setAttributes( { rotationY: rotationY } ); + const onChangeRotationY = (rotationY) => { + setAttributes({ rotationY }); }; - const onChangeRotationZ = ( rotationZ ) => { - setAttributes( { rotationZ: rotationZ } ); + const onChangeRotationZ = (rotationZ) => { + setAttributes({ rotationZ }); }; - const onChangeScaleX = ( scaleX ) => { - setAttributes( { scaleX: scaleX } ); + const onChangeScaleX = (scaleX) => { + setAttributes({ scaleX }); }; - const onChangeScaleY = ( scaleY ) => { - setAttributes( { scaleY: scaleY } ); + const onChangeScaleY = (scaleY) => { + setAttributes({ scaleY }); }; - const onChangeScaleZ = ( scaleZ ) => { - setAttributes( { scaleZ: scaleZ } ); + const onChangeScaleZ = (scaleZ) => { + setAttributes({ scaleZ }); }; - const onChangeAnimations = ( animations ) => { - setAttributes( { animations: animations } ); + const onChangeAnimations = (animations) => { + setAttributes({ animations }); }; - const onChangeMarkup = ( html ) => { - setAttributes( { markup: html } ); + const onChangeMarkup = (html) => { + setAttributes({ markup: html }); }; - const onChangeDestinationUrl = ( destination ) => { - setAttributes( { destinationUrl: destination } ); + const onChangeDestinationUrl = (destination) => { + setAttributes({ destinationUrl: destination }); }; - const onImageSelect = ( imageObject ) => { - setAttributes( { threeObjectUrl: null } ); - setAttributes( { threeObjectUrl: imageObject.url } ); + const onImageSelect = (imageObject) => { + setAttributes({ threeObjectUrl: null }); + setAttributes({ threeObjectUrl: imageObject.url }); }; - const onChangeCollidable = ( collidableSetting ) => { - setAttributes( { collidable: collidableSetting } ); + const onChangeCollidable = (collidableSetting) => { + setAttributes({ collidable: collidableSetting }); }; - const [ enteredURL, setEnteredURL ] = useState( "" ); + const [enteredURL, setEnteredURL] = useState(""); const { mediaUpload } = wp.editor; const ALLOWED_MEDIA_TYPES = [ - 'model/gltf-binary', - 'application/octet-stream', + "model/gltf-binary", + "application/octet-stream" ]; const MyDropZone = () => { - const [ hasDropped, setHasDropped ] = useState( false ); + const [hasDropped, setHasDropped] = useState(false); return (
- { hasDropped ? 'Dropped!' : 'Drop a glb here or' } + {hasDropped ? "Dropped!" : "Drop a glb here or"} - mediaUpload( { + onFilesDrop={(files) => + mediaUpload({ allowedTypes: ALLOWED_MEDIA_TYPES, filesList: files, - onFileChange: ( [ images ] ) => { - onImageSelect( images ); - }, - } ) + onFileChange: ([images]) => { + onImageSelect(images); + } + }) } />
); }; - - function handleClick(objectURL){ - if(objectURL){ + + function handleClick(objectURL) { + if (objectURL) { console.log("success good job", objectURL); onImageSelect(objectURL); } console.log("fail", objectURL); } - return ( -
+
@@ -130,36 +128,34 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { - onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="image" label="GLB File" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } + )} /> - onChangeMarkup( value ) - } + value={attributes.markup} + onChange={(value) => onChangeMarkup(value)} /> @@ -167,207 +163,195 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { label="Collidable" help={ attributes.collidable - ? 'Item is currently collidable.' - : 'Item is not collidable. Users will walk through it.' + ? "Item is currently collidable." + : "Item is not collidable. Users will walk through it." } - checked={ attributes.collidable } - onChange={ ( e ) => { - onChangeCollidable( e ); - } } + checked={attributes.collidable} + onChange={(e) => { + onChangeCollidable(e); + }} /> - onChangeAnimations( value ) - } + value={attributes.animations} + onChange={(value) => onChangeAnimations(value)} /> - + - { __( 'Position', 'three-object-viewer' ) } - + {__("Position", "three-object-viewer")} + - onChangePositionX( value ) - } + value={attributes.positionX} + onChange={(value) => onChangePositionX(value)} /> - onChangePositionY( value ) - } + value={attributes.positionY} + onChange={(value) => onChangePositionY(value)} /> - onChangePositionZ( value ) - } + value={attributes.positionZ} + onChange={(value) => onChangePositionZ(value)} /> - + - { __( 'Rotation', 'three-object-viewer' ) } - + {__("Rotation", "three-object-viewer")} + - onChangeRotationX( value ) - } + value={attributes.rotationX} + onChange={(value) => onChangeRotationX(value)} /> - onChangeRotationY( value ) - } + value={attributes.rotationY} + onChange={(value) => onChangeRotationY(value)} /> - onChangeRotationZ( value ) - } + value={attributes.rotationZ} + onChange={(value) => onChangeRotationZ(value)} /> - + - { __( 'Scale', 'three-object-viewer' ) } - + {__("Scale", "three-object-viewer")} + - onChangeScaleX( value ) - } + value={attributes.scaleX} + onChange={(value) => onChangeScaleX(value)} /> - onChangeScaleY( value ) - } + value={attributes.scaleY} + onChange={(value) => onChangeScaleY(value)} /> - onChangeScaleZ( value ) - } + value={attributes.scaleZ} + onChange={(value) => onChangeScaleZ(value)} /> - { isSelected ? ( + {isSelected ? ( <> - { attributes.threeObjectUrl ? ( + {attributes.threeObjectUrl ? (
-
- - - - - -

HTML block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

+ HTML block +

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
-
- ) : ( -
-
- - - - - -

HTML block

- {/*

URL: {attributes.threeObjectUrl}

*/} -
-
- ) } + ) : ( +
+
+ + + + + +

+ HTML block +

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+
+ )} ) : ( <> - { attributes.threeObjectUrl ? ( + {attributes.threeObjectUrl ? (
-
- - - - - -

HTML block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

+ HTML block +

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
-
- ) : ( -
-
- - - - - -

HTML block

- {/*

URL: {attributes.threeObjectUrl}

*/} -
-
- ) } + ) : ( +
+
+ + + + + +

+ HTML block +

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+
+ )} - ) } + )}
); } diff --git a/blocks/three-html-block/Edit.test.js b/blocks/three-html-block/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/three-html-block/Edit.test.js +++ b/blocks/three-html-block/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/three-html-block/Save.js b/blocks/three-html-block/Save.js index 8719ce7..0168269 100644 --- a/blocks/three-html-block/Save.js +++ b/blocks/three-html-block/Save.js @@ -1,31 +1,29 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>
-

- { attributes.markup } -

+

{attributes.markup}

- { attributes.positionX } + {attributes.positionX}

- { attributes.positionY } + {attributes.positionY}

- { attributes.positionZ } + {attributes.positionZ}

- { attributes.rotationX } + {attributes.rotationX}

- { attributes.rotationY } + {attributes.rotationY}

- { attributes.rotationZ } + {attributes.rotationZ}

diff --git a/blocks/three-html-block/components/ModelEdit.js b/blocks/three-html-block/components/ModelEdit.js index c71bd1b..8345f2c 100644 --- a/blocks/three-html-block/components/ModelEdit.js +++ b/blocks/three-html-block/components/ModelEdit.js @@ -1,105 +1,106 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import * as THREE from "three"; +import React, { Suspense, useRef, useState, useEffect } from "react"; +import { Canvas, useLoader, useFrame, useThree } from "@react-three/fiber"; +import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; import { OrthographicCamera, PerspectiveCamera, OrbitControls, - useAnimations, -} from '@react-three/drei'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; + useAnimations +} from "@react-three/drei"; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from "@pixiv/three-vrm"; +import { GLTFAudioEmitterExtension } from "three-omi"; +function ThreeObject(props) { + const [url, set] = useState(props.url); + useEffect(() => { + setTimeout(() => set(props.url), 2000); + }, []); + const [listener] = useState(() => new THREE.AudioListener()); -function ThreeObject( props ) { - const [ url, set ] = useState( props.url ); - useEffect( () => { - setTimeout( () => set( props.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); + useThree(({ camera }) => { + camera.add(listener); + }); - useThree( ( { camera } ) => { - camera.add( listener ); - } ); - - const gltf = useLoader( GLTFLoader, url, ( loader ) => { + const gltf = useLoader(GLTFLoader, url, (loader) => { loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) + (parser) => new GLTFAudioEmitterExtension(parser, listener) ); - loader.register( ( parser ) => { - - return new VRMLoaderPlugin( parser ); - - } ); - - } ); + loader.register((parser) => { + return new VRMLoaderPlugin(parser); + }); + }); - const { actions } = useAnimations( gltf.animations, gltf.scene ); + const { actions } = useAnimations(gltf.animations, gltf.scene); - const animationList = props.animations ? props.animations.split( ',' ) : ''; + const animationList = props.animations ? props.animations.split(",") : ""; - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); + useEffect(() => { + if (animationList) { + animationList.forEach((name) => { + if (Object.keys(actions).includes(name)) { + actions[name].play(); } - } ); + }); } - }, [] ); + }, []); - if(gltf?.userData?.gltfExtensions?.VRM){ - const vrm = gltf.userData.vrm; - vrm.scene.position.set( 0, props.positionY, 0 ); - VRMUtils.rotateVRM0( vrm ); - const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - vrm.scene.rotation.set( 0, rotationVRM, 0 ); - vrm.scene.scale.set( props.scale, props.scale, props.scale ); - return ; - } - gltf.scene.position.set( 0, 0, 0 ); - gltf.scene.rotation.set( 0, 0, 0 ); - gltf.scene.scale.set( 1, 1, 1 ); - return ; + if (gltf?.userData?.gltfExtensions?.VRM) { + const vrm = gltf.userData.vrm; + vrm.scene.position.set(0, props.positionY, 0); + VRMUtils.rotateVRM0(vrm); + const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); + vrm.scene.rotation.set(0, rotationVRM, 0); + vrm.scene.scale.set(props.scale, props.scale, props.scale); + return ; + } + gltf.scene.position.set(0, 0, 0); + gltf.scene.rotation.set(0, 0, 0); + gltf.scene.scale.set(1, 1, 1); + return ; } -export default function ModelEdit( props ) { +export default function ModelEdit(props) { return ( <> - - + + - { props.url && ( - - - - ) } - + {props.url && ( + + + + )} + - { props.hasTip && ( + {props.hasTip && (

Click and drag ^

- ) } + )} ); } diff --git a/blocks/three-html-block/index.js b/blocks/three-html-block/index.js index 22b14b6..0b83de5 100644 --- a/blocks/three-html-block/index.js +++ b/blocks/three-html-block/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); diff --git a/blocks/three-image-block/Edit.js b/blocks/three-image-block/Edit.js index 1835afd..93cd70b 100644 --- a/blocks/three-image-block/Edit.js +++ b/blocks/three-image-block/Edit.js @@ -1,13 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import { DropZone } from "@wordpress/components"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, - MediaUpload, -} from '@wordpress/block-editor'; + MediaUpload +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -15,101 +15,100 @@ import { RangeControl, ToggleControl, SelectControl, - TextControl, -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; + TextControl +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -import ImageEdit from './components/ImageEdit'; +import ImageEdit from "./components/ImageEdit"; -export default function Edit( { attributes, setAttributes, isSelected } ) { - - const onImageSelect = ( imageObject ) => { +export default function Edit({ attributes, setAttributes, isSelected }) { + const onImageSelect = (imageObject) => { console.log(imageObject); - setAttributes( { imageUrl: null } ); - setAttributes( { imageUrl: imageObject.url, aspectHeight: imageObject.height, aspectWidth: imageObject.width } ); + setAttributes({ imageUrl: null }); + setAttributes({ + imageUrl: imageObject.url, + aspectHeight: imageObject.height, + aspectWidth: imageObject.width + }); }; - const onChangePositionX = ( positionX ) => { - setAttributes( { positionX: positionX } ); + const onChangePositionX = (positionX) => { + setAttributes({ positionX }); }; - const onChangePositionY = ( positionY ) => { - setAttributes( { positionY: positionY } ); + const onChangePositionY = (positionY) => { + setAttributes({ positionY }); }; - const onChangePositionZ = ( positionZ ) => { - setAttributes( { positionZ: positionZ } ); + const onChangePositionZ = (positionZ) => { + setAttributes({ positionZ }); }; - const onChangeRotationX = ( rotationX ) => { - setAttributes( { rotationX: rotationX } ); + const onChangeRotationX = (rotationX) => { + setAttributes({ rotationX }); }; - const onChangeRotationY = ( rotationY ) => { - setAttributes( { rotationY: rotationY } ); + const onChangeRotationY = (rotationY) => { + setAttributes({ rotationY }); }; - const onChangeRotationZ = ( rotationZ ) => { - setAttributes( { rotationZ: rotationZ } ); + const onChangeRotationZ = (rotationZ) => { + setAttributes({ rotationZ }); }; - const onChangeScaleX = ( scaleX ) => { - setAttributes( { scaleX: scaleX } ); + const onChangeScaleX = (scaleX) => { + setAttributes({ scaleX }); }; - const onChangeScaleY = ( scaleY ) => { - setAttributes( { scaleY: scaleY } ); + const onChangeScaleY = (scaleY) => { + setAttributes({ scaleY }); }; - const onChangeScaleZ = ( scaleZ ) => { - setAttributes( { scaleZ: scaleZ } ); + const onChangeScaleZ = (scaleZ) => { + setAttributes({ scaleZ }); }; - const onChangeCollidable = ( setting ) => { - setAttributes( { collidable: setting } ); + const onChangeCollidable = (setting) => { + setAttributes({ collidable: setting }); }; - const onChangeTransparent = ( transparent ) => { - setAttributes( { transparent: transparent } ); + const onChangeTransparent = (transparent) => { + setAttributes({ transparent }); }; - const { mediaUpload } = wp.editor; - const ALLOWED_MEDIA_TYPES = [ - 'image' - ]; + const ALLOWED_MEDIA_TYPES = ["image"]; const MyDropZone = () => { - const [ hasDropped, setHasDropped ] = useState( false ); + const [hasDropped, setHasDropped] = useState(false); return (
- { hasDropped ? 'Dropped!' : 'Drop an image here or' } + {hasDropped ? "Dropped!" : "Drop an image here or"} - mediaUpload( { + onFilesDrop={(files) => + mediaUpload({ allowedTypes: ALLOWED_MEDIA_TYPES, filesList: files, - onFileChange: ( [ images ] ) => { - onImageSelect( images ); - }, - } ) + onFileChange: ([images]) => { + onImageSelect(images); + } + }) } />
); }; - - function handleClick(objectURL){ - if(objectURL){ + + function handleClick(objectURL) { + if (objectURL) { console.log("success good job", objectURL); onImageSelect(objectURL); } console.log("fail", objectURL); - } + } - return ( -
+
@@ -118,194 +117,181 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { - onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="image" label="Image File" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.imageUrl } - render={ ( { open } ) => ( - - ) } + )} /> - - { - onChangeTransparent( e ); - } } - /> - + + { + onChangeTransparent(e); + }} + /> + - onChangePositionX( value ) - } + value={attributes.positionX} + onChange={(value) => onChangePositionX(value)} /> - onChangePositionY( value ) - } + value={attributes.positionY} + onChange={(value) => onChangePositionY(value)} /> - onChangePositionZ( value ) - } + value={attributes.positionZ} + onChange={(value) => onChangePositionZ(value)} /> - + - { __( 'Rotation', 'three-object-viewer' ) } - + {__("Rotation", "three-object-viewer")} + - onChangeRotationX( value ) - } + value={attributes.rotationX} + onChange={(value) => onChangeRotationX(value)} /> - onChangeRotationY( value ) - } + value={attributes.rotationY} + onChange={(value) => onChangeRotationY(value)} /> - onChangeRotationZ( value ) - } + value={attributes.rotationZ} + onChange={(value) => onChangeRotationZ(value)} /> - + - { __( 'Scale', 'three-object-viewer' ) } - + {__("Scale", "three-object-viewer")} + - onChangeScaleX( value ) - } + value={attributes.scaleX} + onChange={(value) => onChangeScaleX(value)} /> - onChangeScaleY( value ) - } + value={attributes.scaleY} + onChange={(value) => onChangeScaleY(value)} /> - onChangeScaleZ( value ) - } + value={attributes.scaleZ} + onChange={(value) => onChangeScaleZ(value)} /> - { isSelected ? ( + {isSelected ? ( <> - { attributes.imageUrl ? ( -
-
- - - - - -

Image block

- {/*

URL: {attributes.threeObjectUrl}

*/} -
-
- ) : ( -
+ {attributes.imageUrl ? ( +
- - - - - - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.imageUrl } - render={ ( { open } ) => ( - - ) } - /> + + + + + +

+ Image block +

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : ( +
+
+ + + + + + + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.imageUrl} + render={({ open }) => ( + + )} + /> +
- ) } + )} ) : ( <> - { attributes.imageUrl ? ( + {attributes.imageUrl ? (
-

Image block

+

+ Image block +

{/*

URL: {attributes.threeObjectUrl}

*/}
-
+
) : (
-
- - - - - - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.imageUrl } - render={ ( { open } ) => ( - - ) } - /> -
+
+ + + + + + + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.imageUrl} + render={({ open }) => ( + + )} + /> +
- ) } + )} - ) } + )}
); } diff --git a/blocks/three-image-block/Edit.test.js b/blocks/three-image-block/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/three-image-block/Edit.test.js +++ b/blocks/three-image-block/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/three-image-block/Save.js b/blocks/three-image-block/Save.js index 6c7a9ad..8b1ec5b 100644 --- a/blocks/three-image-block/Save.js +++ b/blocks/three-image-block/Save.js @@ -1,48 +1,39 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>
-

- { attributes.imageUrl } -

-

- { attributes.scaleX } -

-

- { attributes.scaleY } -

-

- { attributes.scaleZ } -

+

{attributes.imageUrl}

+

{attributes.scaleX}

+

{attributes.scaleY}

+

{attributes.scaleZ}

- { attributes.positionX } + {attributes.positionX}

- { attributes.positionY } + {attributes.positionY}

- { attributes.positionZ } + {attributes.positionZ}

- { attributes.rotationX } + {attributes.rotationX}

- { attributes.rotationY } + {attributes.rotationY}

- { attributes.rotationZ } + {attributes.rotationZ}

- { attributes.aspectHeight } + {attributes.aspectHeight}

- { attributes.aspectWidth } + {attributes.aspectWidth}

-
diff --git a/blocks/three-image-block/components/ImageEdit.js b/blocks/three-image-block/components/ImageEdit.js index 2688816..f7c7e24 100644 --- a/blocks/three-image-block/components/ImageEdit.js +++ b/blocks/three-image-block/components/ImageEdit.js @@ -1,68 +1,70 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; +import * as THREE from "three"; +import React, { Suspense, useRef, useState, useEffect } from "react"; +import { Canvas, useLoader, useFrame, useThree } from "@react-three/fiber"; +import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; import { OrthographicCamera, PerspectiveCamera, OrbitControls, - useAnimations, -} from '@react-three/drei'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; -import { useAspect } from '@react-three/drei' + useAnimations +} from "@react-three/drei"; +import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from "@pixiv/three-vrm"; +import { GLTFAudioEmitterExtension } from "three-omi"; +import { useAspect } from "@react-three/drei"; - // Geometry +// Geometry function Plane(props) { const texture_1 = useLoader(THREE.TextureLoader, props.url); return ( - - - - + + + + ); } -function ThreeObject( props ) { - const [ url, set ] = useState( props.src ); - useEffect( () => { - setTimeout( () => set( props.src ), 2000 ); - }, [] ); +function ThreeObject(props) { + const [url, set] = useState(props.src); + useEffect(() => { + setTimeout(() => set(props.src), 2000); + }, []); return Plane(props); } -export default function ImageEdit( props ) { +export default function ImageEdit(props) { return ( <> - + - { props.src && ( - - - - ) } - + {props.src && ( + + + + )} + ); diff --git a/blocks/three-image-block/index.js b/blocks/three-image-block/index.js index 22b14b6..0b83de5 100644 --- a/blocks/three-image-block/index.js +++ b/blocks/three-image-block/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); diff --git a/blocks/three-portal-block/Edit.js b/blocks/three-portal-block/Edit.js index 6c45d89..5eb02ac 100644 --- a/blocks/three-portal-block/Edit.js +++ b/blocks/three-portal-block/Edit.js @@ -1,13 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import { DropZone } from "@wordpress/components"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, - MediaUpload, -} from '@wordpress/block-editor'; + MediaUpload +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -15,130 +15,128 @@ import { RangeControl, ToggleControl, SelectControl, - TextControl, -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; + TextControl +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -import ModelEdit from './components/ModelEdit'; +import ModelEdit from "./components/ModelEdit"; -export default function Edit( { attributes, setAttributes, isSelected } ) { - - const onChangePositionX = ( positionX ) => { - setAttributes( { positionX: positionX } ); +export default function Edit({ attributes, setAttributes, isSelected }) { + const onChangePositionX = (positionX) => { + setAttributes({ positionX }); }; - const onChangePositionY = ( positionY ) => { - setAttributes( { positionY: positionY } ); + const onChangePositionY = (positionY) => { + setAttributes({ positionY }); }; - const onChangePositionZ = ( positionZ ) => { - setAttributes( { positionZ: positionZ } ); + const onChangePositionZ = (positionZ) => { + setAttributes({ positionZ }); }; - const onChangeRotationX = ( rotationX ) => { - setAttributes( { rotationX: rotationX } ); + const onChangeRotationX = (rotationX) => { + setAttributes({ rotationX }); }; - const onChangeRotationY = ( rotationY ) => { - setAttributes( { rotationY: rotationY } ); + const onChangeRotationY = (rotationY) => { + setAttributes({ rotationY }); }; - const onChangeRotationZ = ( rotationZ ) => { - setAttributes( { rotationZ: rotationZ } ); + const onChangeRotationZ = (rotationZ) => { + setAttributes({ rotationZ }); }; - const onChangeScaleX = ( scaleX ) => { - setAttributes( { scaleX: scaleX } ); + const onChangeScaleX = (scaleX) => { + setAttributes({ scaleX }); }; - const onChangeScaleY = ( scaleY ) => { - setAttributes( { scaleY: scaleY } ); + const onChangeScaleY = (scaleY) => { + setAttributes({ scaleY }); }; - const onChangeScaleZ = ( scaleZ ) => { - setAttributes( { scaleZ: scaleZ } ); + const onChangeScaleZ = (scaleZ) => { + setAttributes({ scaleZ }); }; - const onChangeAnimations = ( animations ) => { - setAttributes( { animations: animations } ); + const onChangeAnimations = (animations) => { + setAttributes({ animations }); }; - const onChangeLabel = ( label ) => { - setAttributes( { label: label } ); + const onChangeLabel = (label) => { + setAttributes({ label }); }; - const onChangeLabelX = ( labelX ) => { - setAttributes( { labelOffsetX: labelX } ); + const onChangeLabelX = (labelX) => { + setAttributes({ labelOffsetX: labelX }); }; - const onChangeLabelY = ( labelY ) => { - setAttributes( { labelOffsetY: labelY } ); + const onChangeLabelY = (labelY) => { + setAttributes({ labelOffsetY: labelY }); }; - const onChangeLabelZ = ( labelZ ) => { - setAttributes( { labelOffsetZ: labelZ } ); + const onChangeLabelZ = (labelZ) => { + setAttributes({ labelOffsetZ: labelZ }); }; - const onChangeLabelTextcolor = ( labelColor ) => { - setAttributes({ labelTextColor: labelColor } ); + const onChangeLabelTextcolor = (labelColor) => { + setAttributes({ labelTextColor: labelColor }); }; - const onChangeDestinationUrl = ( destination ) => { - setAttributes( { destinationUrl: destination } ); + const onChangeDestinationUrl = (destination) => { + setAttributes({ destinationUrl: destination }); }; - const onImageSelect = ( imageObject ) => { - setAttributes( { threeObjectUrl: null } ); - setAttributes( { threeObjectUrl: imageObject.url } ); + const onImageSelect = (imageObject) => { + setAttributes({ threeObjectUrl: null }); + setAttributes({ threeObjectUrl: imageObject.url }); }; - const onChangeCollidable = ( collidableSetting ) => { - setAttributes( { collidable: collidableSetting } ); + const onChangeCollidable = (collidableSetting) => { + setAttributes({ collidable: collidableSetting }); }; - const [ enteredURL, setEnteredURL ] = useState( "" ); + const [enteredURL, setEnteredURL] = useState(""); const { mediaUpload } = wp.editor; const ALLOWED_MEDIA_TYPES = [ - 'model/gltf-binary', - 'application/octet-stream', + "model/gltf-binary", + "application/octet-stream" ]; const MyDropZone = () => { - const [ hasDropped, setHasDropped ] = useState( false ); + const [hasDropped, setHasDropped] = useState(false); return (
- { hasDropped ? 'Dropped!' : 'Drop a glb here or' } + {hasDropped ? "Dropped!" : "Drop a glb here or"} - mediaUpload( { + onFilesDrop={(files) => + mediaUpload({ allowedTypes: ALLOWED_MEDIA_TYPES, filesList: files, - onFileChange: ( [ images ] ) => { - onImageSelect( images ); - }, - } ) + onFileChange: ([images]) => { + onImageSelect(images); + } + }) } />
); }; - - function handleClick(objectURL){ - if(objectURL){ + + function handleClick(objectURL) { + if (objectURL) { console.log("success good job", objectURL); onImageSelect(objectURL); } console.log("fail", objectURL); } - return ( -
+
@@ -148,59 +146,57 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { - onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="image" label="GLB File" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } + )} /> { - onChangeCollidable( e ); - } } + checked={attributes.collidable} + onChange={(e) => { + onChangeCollidable(e); + }} /> - onChangeAnimations( value ) - } + value={attributes.animations} + onChange={(value) => onChangeAnimations(value)} /> - onChangeDestinationUrl( value ) + value={attributes.destinationUrl} + onChange={(value) => + onChangeDestinationUrl(value) } /> @@ -208,51 +204,43 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { - onChangeLabel( value ) - } + value={attributes.label} + onChange={(value) => onChangeLabel(value)} /> - + - { __( 'Label Offset', 'three-object-viewer' ) } + {__("Label Offset", "three-object-viewer")} - + - onChangeLabelX( value ) - } + value={attributes.labelOffsetX} + onChange={(value) => onChangeLabelX(value)} /> - onChangeLabelY( value ) - } + value={attributes.labelOffsetY} + onChange={(value) => onChangeLabelY(value)} /> - onChangeLabelZ( value ) - } + value={attributes.labelOffsetZ} + onChange={(value) => onChangeLabelZ(value)} /> @@ -260,202 +248,194 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { className="position-inputs" label="X" // help="position x" - value={ attributes.positionX } - onChange={ ( value ) => - onChangePositionX( value ) - } + value={attributes.positionX} + onChange={(value) => onChangePositionX(value)} /> - onChangePositionY( value ) - } + value={attributes.positionY} + onChange={(value) => onChangePositionY(value)} /> - onChangePositionZ( value ) - } + value={attributes.positionZ} + onChange={(value) => onChangePositionZ(value)} /> - + - { __( 'Rotation', 'three-object-viewer' ) } - + {__("Rotation", "three-object-viewer")} + - onChangeRotationX( value ) - } + value={attributes.rotationX} + onChange={(value) => onChangeRotationX(value)} /> - onChangeRotationY( value ) - } + value={attributes.rotationY} + onChange={(value) => onChangeRotationY(value)} /> - onChangeRotationZ( value ) - } + value={attributes.rotationZ} + onChange={(value) => onChangeRotationZ(value)} /> - + - { __( 'Scale', 'three-object-viewer' ) } - + {__("Scale", "three-object-viewer")} + - onChangeScaleX( value ) - } + value={attributes.scaleX} + onChange={(value) => onChangeScaleX(value)} /> - onChangeScaleY( value ) - } + value={attributes.scaleY} + onChange={(value) => onChangeScaleY(value)} /> - onChangeScaleZ( value ) - } + value={attributes.scaleZ} + onChange={(value) => onChangeScaleZ(value)} /> - { isSelected ? ( + {isSelected ? ( <> - { attributes.threeObjectUrl ? ( + {attributes.threeObjectUrl ? (
-
- - - - - -

Portal block

- {/*

URL: {attributes.threeObjectUrl}

*/} +
+ + + + + +

+ Portal block +

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
-
- ) : ( + ) : (
-
- - - - - - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } - /> +
+ + + + + + + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.threeObjectUrl} + render={({ open }) => ( + + )} + /> +
-
- ) } + )} ) : ( <> - { attributes.threeObjectUrl ? ( + {attributes.threeObjectUrl ? (
-
- - - - - -

Portal block

- {/*

URL: {attributes.threeObjectUrl}

*/} -
-
- ) : ( -
-
- - - - - - - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.threeObjectUrl } - render={ ( { open } ) => ( - - ) } - /> +
+ + + + + +

+ Portal block +

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : ( +
+
+ + + + + + + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.threeObjectUrl} + render={({ open }) => ( + + )} + /> +
- ) } + )} - ) } + )}
); } diff --git a/blocks/three-portal-block/Edit.test.js b/blocks/three-portal-block/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/three-portal-block/Edit.test.js +++ b/blocks/three-portal-block/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/three-portal-block/Save.js b/blocks/three-portal-block/Save.js index fea4569..61d4ff1 100644 --- a/blocks/three-portal-block/Save.js +++ b/blocks/three-portal-block/Save.js @@ -1,43 +1,61 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>
-

- { attributes.threeObjectUrl } +

+ {attributes.threeObjectUrl}

- { attributes.destinationUrl } -

-

{ attributes.scaleX }

-

{ attributes.scaleY }

-

{ attributes.scaleZ }

-

{ attributes.positionX }

-

{ attributes.positionY }

-

{ attributes.positionZ }

-

{ attributes.rotationX }

-

{ attributes.rotationY }

-

{ attributes.rotationZ }

+ {attributes.destinationUrl} +

+

+ {attributes.scaleX} +

+

+ {attributes.scaleY} +

+

+ {attributes.scaleZ} +

+

+ {attributes.positionX} +

+

+ {attributes.positionY} +

+

+ {attributes.positionZ} +

+

+ {attributes.rotationX} +

+

+ {attributes.rotationY} +

+

+ {attributes.rotationZ} +

- { attributes.animations } + {attributes.animations}

- { attributes.label } + {attributes.label}

- { attributes.labelOffsetX } + {attributes.labelOffsetX}

- { attributes.labelOffsetY } + {attributes.labelOffsetY}

- { attributes.labelOffsetZ } + {attributes.labelOffsetZ}

- { attributes.labelTextColor } + {attributes.labelTextColor}

diff --git a/blocks/three-portal-block/index.js b/blocks/three-portal-block/index.js index 22b14b6..0b83de5 100644 --- a/blocks/three-portal-block/index.js +++ b/blocks/three-portal-block/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); diff --git a/blocks/three-video-block/Edit.js b/blocks/three-video-block/Edit.js index 805b758..073e7d3 100644 --- a/blocks/three-video-block/Edit.js +++ b/blocks/three-video-block/Edit.js @@ -1,13 +1,13 @@ -import { __ } from '@wordpress/i18n'; -import React, { useState } from 'react'; -import { DropZone } from '@wordpress/components'; -import './editor.scss'; +import { __ } from "@wordpress/i18n"; +import React, { useState } from "react"; +import { DropZone } from "@wordpress/components"; +import "./editor.scss"; import { useBlockProps, ColorPalette, InspectorControls, - MediaUpload, -} from '@wordpress/block-editor'; + MediaUpload +} from "@wordpress/block-editor"; import { Panel, PanelBody, @@ -15,97 +15,96 @@ import { RangeControl, ToggleControl, SelectControl, - TextControl, -} from '@wordpress/components'; -import { more } from '@wordpress/icons'; + TextControl +} from "@wordpress/components"; +import { more } from "@wordpress/icons"; -import VideoEdit from './components/VideoEdit'; +import VideoEdit from "./components/VideoEdit"; -export default function Edit( { attributes, setAttributes, isSelected } ) { - - const onImageSelect = ( imageObject ) => { +export default function Edit({ attributes, setAttributes, isSelected }) { + const onImageSelect = (imageObject) => { console.log(imageObject); - setAttributes( { videoUrl: null } ); - setAttributes( { videoUrl: imageObject.url, aspectHeight: imageObject.height, aspectWidth: imageObject.width } ); + setAttributes({ videoUrl: null }); + setAttributes({ + videoUrl: imageObject.url, + aspectHeight: imageObject.height, + aspectWidth: imageObject.width + }); }; - const onChangePositionX = ( positionX ) => { - setAttributes( { positionX: positionX } ); + const onChangePositionX = (positionX) => { + setAttributes({ positionX }); }; - const onChangePositionY = ( positionY ) => { - setAttributes( { positionY: positionY } ); + const onChangePositionY = (positionY) => { + setAttributes({ positionY }); }; - const onChangePositionZ = ( positionZ ) => { - setAttributes( { positionZ: positionZ } ); + const onChangePositionZ = (positionZ) => { + setAttributes({ positionZ }); }; - const onChangeRotationX = ( rotationX ) => { - setAttributes( { rotationX: rotationX } ); + const onChangeRotationX = (rotationX) => { + setAttributes({ rotationX }); }; - const onChangeRotationY = ( rotationY ) => { - setAttributes( { rotationY: rotationY } ); + const onChangeRotationY = (rotationY) => { + setAttributes({ rotationY }); }; - const onChangeRotationZ = ( rotationZ ) => { - setAttributes( { rotationZ: rotationZ } ); + const onChangeRotationZ = (rotationZ) => { + setAttributes({ rotationZ }); }; - const onChangeScaleX = ( scaleX ) => { - setAttributes( { scaleX: scaleX } ); + const onChangeScaleX = (scaleX) => { + setAttributes({ scaleX }); }; - const onChangeScaleY = ( scaleY ) => { - setAttributes( { scaleY: scaleY } ); + const onChangeScaleY = (scaleY) => { + setAttributes({ scaleY }); }; - const onChangeScaleZ = ( scaleZ ) => { - setAttributes( { scaleZ: scaleZ } ); + const onChangeScaleZ = (scaleZ) => { + setAttributes({ scaleZ }); }; - const onChangeAutoPlay = ( autoPlaySetting ) => { - setAttributes( { autoPlay: autoPlaySetting } ); + const onChangeAutoPlay = (autoPlaySetting) => { + setAttributes({ autoPlay: autoPlaySetting }); }; - const { mediaUpload } = wp.editor; - const ALLOWED_MEDIA_TYPES = [ - 'video' - ]; + const ALLOWED_MEDIA_TYPES = ["video"]; const MyDropZone = () => { - const [ hasDropped, setHasDropped ] = useState( false ); + const [hasDropped, setHasDropped] = useState(false); return (
- { hasDropped ? 'Dropped!' : 'Drop an image here or' } + {hasDropped ? "Dropped!" : "Drop an image here or"} - mediaUpload( { + onFilesDrop={(files) => + mediaUpload({ allowedTypes: ALLOWED_MEDIA_TYPES, filesList: files, - onFileChange: ( [ images ] ) => { - onImageSelect( images ); - }, - } ) + onFileChange: ([images]) => { + onImageSelect(images); + } + }) } />
); }; - - function handleClick(objectURL){ - if(objectURL){ + + function handleClick(objectURL) { + if (objectURL) { console.log("success good job", objectURL); onImageSelect(objectURL); } console.log("fail", objectURL); - } + } - return ( -
+
@@ -114,20 +113,20 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { - onImageSelect( imageObject ) + onSelect={(imageObject) => + onImageSelect(imageObject) } type="image" label="Image File" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.videoUrl } - render={ ( { open } ) => ( - - ) } + )} /> @@ -135,13 +134,13 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { label="AutoPlay" help={ attributes.autoPlay - ? 'Item will autoplay.' - : 'Item will not autoplay.' + ? "Item will autoplay." + : "Item will not autoplay." } - checked={ attributes.autoPlay } - onChange={ ( e ) => { - onChangeAutoPlay( e ); - } } + checked={attributes.autoPlay} + onChange={(e) => { + onChangeAutoPlay(e); + }} /> @@ -149,159 +148,146 @@ export default function Edit( { attributes, setAttributes, isSelected } ) { className="position-inputs" label="X" // help="position x" - value={ attributes.positionX } - onChange={ ( value ) => - onChangePositionX( value ) - } + value={attributes.positionX} + onChange={(value) => onChangePositionX(value)} /> - onChangePositionY( value ) - } + value={attributes.positionY} + onChange={(value) => onChangePositionY(value)} /> - onChangePositionZ( value ) - } + value={attributes.positionZ} + onChange={(value) => onChangePositionZ(value)} /> - + - { __( 'Rotation', 'three-object-viewer' ) } - + {__("Rotation", "three-object-viewer")} + - onChangeRotationX( value ) - } + value={attributes.rotationX} + onChange={(value) => onChangeRotationX(value)} /> - onChangeRotationY( value ) - } + value={attributes.rotationY} + onChange={(value) => onChangeRotationY(value)} /> - onChangeRotationZ( value ) - } + value={attributes.rotationZ} + onChange={(value) => onChangeRotationZ(value)} /> - + - { __( 'Scale', 'three-object-viewer' ) } - + {__("Scale", "three-object-viewer")} + - onChangeScaleX( value ) - } + value={attributes.scaleX} + onChange={(value) => onChangeScaleX(value)} /> - onChangeScaleY( value ) - } + value={attributes.scaleY} + onChange={(value) => onChangeScaleY(value)} /> - onChangeScaleZ( value ) - } + value={attributes.scaleZ} + onChange={(value) => onChangeScaleZ(value)} /> - { isSelected ? ( + {isSelected ? ( <> - { attributes.videoUrl ? ( -
-
- - - - - -

Video block

- {/*

URL: {attributes.threeObjectUrl}

*/} -
-
- ) : ( -
+ {attributes.videoUrl ? ( +
- - - - - - - onImageSelect( imageObject ) - } - type="video" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.videoUrl } - render={ ( { open } ) => ( - - ) } - /> + + + + + +

+ Video block +

+ {/*

URL: {attributes.threeObjectUrl}

*/} +
+ ) : ( +
+
+ + + + + + + onImageSelect(imageObject) + } + type="video" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.videoUrl} + render={({ open }) => ( + + )} + /> +
- ) } + )} ) : ( <> - { attributes.videoUrl ? ( + {attributes.videoUrl ? (
-

Video block

+

+ Video block +

{/*

URL: {attributes.threeObjectUrl}

*/}
-
+
) : (
-
- - - - - +
+ + + + + - onImageSelect( imageObject ) - } - type="image" - allowedTypes={ ALLOWED_MEDIA_TYPES } - value={ attributes.videoUrl } - render={ ( { open } ) => ( - - ) } - /> -
+ onSelect={(imageObject) => + onImageSelect(imageObject) + } + type="image" + allowedTypes={ALLOWED_MEDIA_TYPES} + value={attributes.videoUrl} + render={({ open }) => ( + + )} + /> +
- ) } + )} - ) } + )}
); } diff --git a/blocks/three-video-block/Edit.test.js b/blocks/three-video-block/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/three-video-block/Edit.test.js +++ b/blocks/three-video-block/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/three-video-block/Save.js b/blocks/three-video-block/Save.js index 30ed6f5..ab52d43 100644 --- a/blocks/three-video-block/Save.js +++ b/blocks/three-video-block/Save.js @@ -1,48 +1,39 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; +import { __ } from "@wordpress/i18n"; +import { useBlockProps } from "@wordpress/block-editor"; -export default function save( { attributes } ) { +export default function save({ attributes }) { return ( -
+
<>
-
- { attributes.videoUrl } -
-

- { attributes.scaleX } -

-

- { attributes.scaleY } -

-

- { attributes.scaleZ } -

+
{attributes.videoUrl}
+

{attributes.scaleX}

+

{attributes.scaleY}

+

{attributes.scaleZ}

- { attributes.positionX } + {attributes.positionX}

- { attributes.positionY } + {attributes.positionY}

- { attributes.positionZ } + {attributes.positionZ}

- { attributes.rotationX } + {attributes.rotationX}

- { attributes.rotationY } + {attributes.rotationY}

- { attributes.rotationZ } + {attributes.rotationZ}

- { attributes.aspectHeight } + {attributes.aspectHeight}

- { attributes.aspectWidth } + {attributes.aspectWidth}

-
diff --git a/blocks/three-video-block/index.js b/blocks/three-video-block/index.js index 22b14b6..0b83de5 100644 --- a/blocks/three-video-block/index.js +++ b/blocks/three-video-block/index.js @@ -1,11 +1,11 @@ -import { registerBlockType } from '@wordpress/blocks'; -import Edit from './Edit'; -import Save from './Save'; -import { useBlockProps } from '@wordpress/block-editor'; +import { registerBlockType } from "@wordpress/blocks"; +import Edit from "./Edit"; +import Save from "./Save"; +import { useBlockProps } from "@wordpress/block-editor"; const icon = ( ); -const blockConfig = require( './block.json' ); -registerBlockType( blockConfig.name, { +const blockConfig = require("./block.json"); +registerBlockType(blockConfig.name, { ...blockConfig, - icon: icon, + icon, apiVersion: 2, edit: Edit, save: Save, @@ -27,171 +27,177 @@ registerBlockType( blockConfig.name, { { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', - }, + type: "string", + default: "2d" + } }, - save( props ) { + save(props) { return ( -
+
<>

- { props.attributes.deviceTarget } + {props.attributes.deviceTarget}

- { props.attributes.threeObjectUrl } + {props.attributes.threeObjectUrl}

- { props.attributes.scale } + {props.attributes.scale}

- { props.attributes.bg_color } + {props.attributes.bg_color}

- { props.attributes.zoom } + {props.attributes.zoom}

- { props.attributes.hasZoom ? 1 : 0 } + {props.attributes.hasZoom ? 1 : 0}

- { props.attributes.hasTip ? 1 : 0 } + {props.attributes.hasTip ? 1 : 0}

- { props.attributes.positionY } + {props.attributes.positionY}

- { props.attributes.rotationY } + {props.attributes.rotationY}

- { props.attributes.scale } + {props.attributes.scale}

); - }, + } }, { attributes: { bg_color: { - type: 'string', - default: '#FFFFFF', + type: "string", + default: "#FFFFFF" }, zoom: { - type: 'integer', - default: 90, + type: "integer", + default: 90 }, scale: { - type: 'integer', - default: 1, + type: "integer", + default: 1 }, positionX: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, positionY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, rotationY: { - type: 'integer', - default: 0, + type: "integer", + default: 0 }, threeObjectUrl: { - type: 'string', - default: null, + type: "string", + default: null }, hasZoom: { - type: 'bool', - default: false, + type: "bool", + default: false }, hasTip: { - type: 'bool', - default: true, + type: "bool", + default: true }, deviceTarget: { - type: 'string', - default: '2d', + type: "string", + default: "2d" }, animations: { - type: 'string', - default: '', + type: "string", + default: "" } }, - save( props ) { + save(props) { return ( -
- <> -
-

- { props.attributes.deviceTarget } -

-

- { props.attributes.threeObjectUrl } -

-

{ props.attributes.scale }

-

- { props.attributes.bg_color } -

-

{ props.attributes.zoom }

-

- { props.attributes.hasZoom ? 1 : 0 } -

-

- { props.attributes.hasTip ? 1 : 0 } -

-

- { props.attributes.positionY } -

-

- { props.attributes.rotationY } -

-

{ props.attributes.scale }

-

- { props.attributes.animations } -

-
- -
- ); - }, - }, - ], -} ); +
+ <> +
+

+ {props.attributes.deviceTarget} +

+

+ {props.attributes.threeObjectUrl} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.bg_color} +

+

+ {props.attributes.zoom} +

+

+ {props.attributes.hasZoom ? 1 : 0} +

+

+ {props.attributes.hasTip ? 1 : 0} +

+

+ {props.attributes.positionY} +

+

+ {props.attributes.rotationY} +

+

+ {props.attributes.scale} +

+

+ {props.attributes.animations} +

+
+ +
+ ); + } + } + ] +}); From 0ec711b33143eb70ce84daa9d019257628c8b3f6 Mon Sep 17 00:00:00 2001 From: antpb Date: Sat, 5 Nov 2022 23:22:05 -0500 Subject: [PATCH 45/48] cleanup --- blocks/environment/Edit.test.js | 88 ++++++++----------- blocks/environment/components/Controls.js | 28 ++++-- .../components/EnvironmentFront.js | 2 +- blocks/npc-block/Edit.js | 26 ------ blocks/npc-block/Edit.test.js | 57 ------------ blocks/npc-block/Save.js | 6 -- blocks/npc-block/block.json | 20 ----- blocks/npc-block/editor.scss | 4 - blocks/npc-block/index.js | 12 --- blocks/npc-block/init.php | 10 --- blocks/npc-block/style.scss | 5 -- 11 files changed, 62 insertions(+), 196 deletions(-) delete mode 100644 blocks/npc-block/Edit.js delete mode 100644 blocks/npc-block/Edit.test.js delete mode 100644 blocks/npc-block/Save.js delete mode 100644 blocks/npc-block/block.json delete mode 100644 blocks/npc-block/editor.scss delete mode 100644 blocks/npc-block/index.js delete mode 100644 blocks/npc-block/init.php delete mode 100644 blocks/npc-block/style.scss diff --git a/blocks/environment/Edit.test.js b/blocks/environment/Edit.test.js index ab10afe..ab22d96 100644 --- a/blocks/environment/Edit.test.js +++ b/blocks/environment/Edit.test.js @@ -1,57 +1,47 @@ - //Import React -import React from 'react'; +import React from "react"; //Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; +import { render, fireEvent, cleanup } from "@testing-library/react"; //Import component to test -import { Editor } from './Edit'; - +import { Editor } from "./Edit"; describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + afterEach(cleanup); + it("matches snapshot when selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); + it("matches snapshot when not selected", () => { + const onChange = jest.fn(); + const { container } = render( + + ); + expect(container).toMatchSnapshot(); + }); - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); + it("Calls the onchange function", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Salad"), { + target: { value: "New Value" } + }); + expect(onChange).toHaveBeenCalledTimes(1); + }); - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file + it("Passes updated value, not event to onChange callback", () => { + const onChange = jest.fn(); + const { getByDisplayValue } = render( + + ); + fireEvent.change(getByDisplayValue("Seltzer"), { + target: { value: "Boring Water" } + }); + expect(onChange).toHaveBeenCalledWith("Boring Water"); + }); +}); diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index 5def499..bc368fd 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -37,6 +37,15 @@ const Controls = (props) => { useEffect(() => { setSpawnPos(props.spawnPoint); + // if (controlsRef.current !== null && props.spawnPoint) { + // controlsRef.current + // .getObject() + // .parent.position.set( + // props.spawnPoint[0], + // props.spawnPoint[1], + // props.spawnPoint[2] + // ); + // } }, []); useFrame(() => { @@ -268,13 +277,20 @@ const Controls = (props) => { setMoveRight(true); setLock(false); break; + // case "KeyR": + // if (controlsRef.current) { + // console.log(controlsRef.current.getObject()); + // controlsRef.current + // .getObject() + // .parent.position.set( + // props.spawnPoint[0], + // props.spawnPoint[1], + // props.spawnPoint[2] + // ); + // } + // setLock(false); + // break; case "Space": - // camera.position.set(spawnPos[0], spawnPos[1], spawnPos[2]); - controlsRef.current.camera.position.set( - spawnPos[0], - spawnPos[1], - spawnPos[2] - ); setLock(false); window.addEventListener("keydown", (e) => { if (e.keyCode === 32 && e.target === document.body) { diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index c51914b..c8327f1 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -805,7 +805,7 @@ export default function EnvironmentFront(props) { {/* Debug physics */} - {/* */} + {props.threeUrl && ( <> diff --git a/blocks/npc-block/Edit.js b/blocks/npc-block/Edit.js deleted file mode 100644 index a06a08d..0000000 --- a/blocks/npc-block/Edit.js +++ /dev/null @@ -1,26 +0,0 @@ -import { TextControl } from "@wordpress/components"; -import { __ } from "@wordpress/i18n"; -import { useBlockProps } from "@wordpress/block-editor"; -import './editor.scss'; - -export const Editor = ({ value, onChange, isSelected }) => ( - <> - {isSelected ? ( - - ) : ( -

{value}

- )} - -); - -export default function Edit({ attributes, setAttributes, isSelected }) { - return ( -
- setAttributes({ content })} - /> -
- ); -} diff --git a/blocks/npc-block/Edit.test.js b/blocks/npc-block/Edit.test.js deleted file mode 100644 index ab10afe..0000000 --- a/blocks/npc-block/Edit.test.js +++ /dev/null @@ -1,57 +0,0 @@ - -//Import React -import React from 'react'; -//Import test renderer -import { render, fireEvent, cleanup } from '@testing-library/react'; -//Import component to test -import { Editor } from './Edit'; - - -describe("Editor componet", () => { - afterEach(cleanup); - it('matches snapshot when selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); - - it('matches snapshot when not selected', () => { - const onChange = jest.fn(); - const { container } = render(); - expect(container).toMatchSnapshot(); - }); - - it("Calls the onchange function", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Salad"), { - target: { value: "New Value" } - }); - expect(onChange).toHaveBeenCalledTimes(1); - }); - - it("Passes updated value, not event to onChange callback", () => { - const onChange = jest.fn(); - const { getByDisplayValue } = render(); - fireEvent.change(getByDisplayValue("Seltzer"), { - target: { value: "Boring Water" } - }); - expect(onChange).toHaveBeenCalledWith("Boring Water"); - }); -}); \ No newline at end of file diff --git a/blocks/npc-block/Save.js b/blocks/npc-block/Save.js deleted file mode 100644 index 3a499f1..0000000 --- a/blocks/npc-block/Save.js +++ /dev/null @@ -1,6 +0,0 @@ -import { __ } from '@wordpress/i18n'; -import { useBlockProps } from '@wordpress/block-editor'; - -export default function save({ attributes }) { - return
{attributes.content}
; -} \ No newline at end of file diff --git a/blocks/npc-block/block.json b/blocks/npc-block/block.json deleted file mode 100644 index a37d5fd..0000000 --- a/blocks/npc-block/block.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "three-object-viewer/npc-block", - "title": "3D NPC", - "description": "A NPC Block to make your experience a bit more personal.", - "attributes": { - "content": { - "type": "string", - "default": "Hi Roy" - } - }, - "category": "theme", - "apiVersion": 2, - "icon": "smiley", - "supports": { - "html": false - }, - "editorScript": "file:../../build/block-npc-block.js", - "editorStyle": "file:../../build/block-npc-block.css", - "style": "file:../../build/block-npc-block.css" -} diff --git a/blocks/npc-block/editor.scss b/blocks/npc-block/editor.scss deleted file mode 100644 index 318f617..0000000 --- a/blocks/npc-block/editor.scss +++ /dev/null @@ -1,4 +0,0 @@ - - .wp-block-npc-block { - border: 1px dotted #f00; -} diff --git a/blocks/npc-block/index.js b/blocks/npc-block/index.js deleted file mode 100644 index 3539797..0000000 --- a/blocks/npc-block/index.js +++ /dev/null @@ -1,12 +0,0 @@ - -import { registerBlockType } from "@wordpress/blocks"; -import Edit from './Edit'; -import Save from './Save'; - -const blockConfig = require('./block.json'); -registerBlockType(blockConfig.name, { - ...blockConfig, - apiVersion: 2, - edit: Edit, - save: Save -}); diff --git a/blocks/npc-block/init.php b/blocks/npc-block/init.php deleted file mode 100644 index 93dd084..0000000 --- a/blocks/npc-block/init.php +++ /dev/null @@ -1,10 +0,0 @@ - Date: Sun, 6 Nov 2022 01:22:03 -0500 Subject: [PATCH 46/48] fixes controls and cleanup --- blocks/environment/components/Controls.js | 62 ++++++++++++------- .../components/EnvironmentFront.js | 4 ++ 2 files changed, 45 insertions(+), 21 deletions(-) diff --git a/blocks/environment/components/Controls.js b/blocks/environment/components/Controls.js index bc368fd..ce933e5 100644 --- a/blocks/environment/components/Controls.js +++ b/blocks/environment/components/Controls.js @@ -37,15 +37,22 @@ const Controls = (props) => { useEffect(() => { setSpawnPos(props.spawnPoint); - // if (controlsRef.current !== null && props.spawnPoint) { - // controlsRef.current - // .getObject() - // .parent.position.set( - // props.spawnPoint[0], - // props.spawnPoint[1], - // props.spawnPoint[2] - // ); + const playerThing = world.getRigidBody(props.something.current.handle); + // if (playerThing) { + // playerThing.setTranslation({ + // x: props.spawnPoint[0], + // y: props.spawnPoint[1], + // z: props.spawnPoint[2] + // }); // } + + // controlsRef.current + // .getObject() + // .parent.position.set( + // props.spawnPoint[0], + // props.spawnPoint[1], + // props.spawnPoint[2] + // ); }, []); useFrame(() => { @@ -277,19 +284,32 @@ const Controls = (props) => { setMoveRight(true); setLock(false); break; - // case "KeyR": - // if (controlsRef.current) { - // console.log(controlsRef.current.getObject()); - // controlsRef.current - // .getObject() - // .parent.position.set( - // props.spawnPoint[0], - // props.spawnPoint[1], - // props.spawnPoint[2] - // ); - // } - // setLock(false); - // break; + case "KeyR": + console.log(props); + if (props.something.current) { + const playerThing = world.getRigidBody( + props.something.current.handle + ); + if (playerThing) { + playerThing.setTranslation({ + x: props.spawnPoint[0], + y: props.spawnPoint[1], + z: props.spawnPoint[2] + }); + if (controlsRef.current) { + console.log(controlsRef.current.getObject()); + controlsRef.current + .getObject() + .parent.position.set( + props.spawnPoint[0], + props.spawnPoint[1], + props.spawnPoint[2] + ); + } + } + } + setLock(false); + break; case "Space": setLock(false); window.addEventListener("keydown", (e) => { diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index c8327f1..808267b 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -659,6 +659,10 @@ function SavedObject(props) { }); } }, []); + console.log(gltf); + // const loader = new THREE.ObjectLoader(); + // const object = await loader.loadAsync("models/json/lightmap/lightmap.json"); + // scene.add(object); return ( <> From c183a9f857f9f49bcba6bc9aae206c6b6efcb2a0 Mon Sep 17 00:00:00 2001 From: antpb Date: Sun, 6 Nov 2022 14:02:59 -0600 Subject: [PATCH 47/48] removes old component structure --- .../environment/components/ThreeObjectEdit.js | 60 +++++----- blocks/model-block/Edit.js | 2 - blocks/model-block/components/ModelEdit.js | 106 ------------------ blocks/sky-block/Edit.js | 2 - blocks/sky-block/components/SkyEdit.js | 66 ----------- .../spawn-point-block/components/ImageEdit.js | 69 ------------ blocks/three-audio-block/Edit.js | 2 - .../three-audio-block/components/ImageEdit.js | 75 ------------- blocks/three-html-block/Edit.js | 2 - .../three-html-block/components/ModelEdit.js | 106 ------------------ blocks/three-image-block/Edit.js | 2 - .../three-image-block/components/ImageEdit.js | 71 ------------ blocks/three-portal-block/Edit.js | 2 - .../components/ModelEdit.js | 105 ----------------- blocks/three-video-block/Edit.js | 6 +- .../three-video-block/components/VideoEdit.js | 75 ------------- 16 files changed, 32 insertions(+), 719 deletions(-) delete mode 100644 blocks/model-block/components/ModelEdit.js delete mode 100644 blocks/sky-block/components/SkyEdit.js delete mode 100644 blocks/spawn-point-block/components/ImageEdit.js delete mode 100644 blocks/three-audio-block/components/ImageEdit.js delete mode 100644 blocks/three-html-block/components/ModelEdit.js delete mode 100644 blocks/three-image-block/components/ImageEdit.js delete mode 100644 blocks/three-portal-block/components/ModelEdit.js delete mode 100644 blocks/three-video-block/components/VideoEdit.js diff --git a/blocks/environment/components/ThreeObjectEdit.js b/blocks/environment/components/ThreeObjectEdit.js index 102b1d3..cc5a564 100644 --- a/blocks/environment/components/ThreeObjectEdit.js +++ b/blocks/environment/components/ThreeObjectEdit.js @@ -357,14 +357,14 @@ function VideoObject(threeVideo) { .getBlockAttributes(threeVideo.videoID) ); - if (threeVideo.shouldFocus) { - setFocusPosition([ - e?.target.worldPosition.x, - e?.target.worldPosition.y, - e?.target.worldPosition.z - ]); - camera.position.set(threeVideo.focusPosition); - } + // if (threeVideo.shouldFocus) { + // setFocusPosition([ + // e?.target.worldPosition.x, + // e?.target.worldPosition.y, + // e?.target.worldPosition.z + // ]); + // camera.position.set(threeVideo.focusPosition); + // } }} > {children} @@ -518,14 +518,14 @@ function ModelObject(model) { .getBlockAttributes(model.modelId) ); - if (model.shouldFocus) { - setFocusPosition([ - e?.target.worldPosition.x, - e?.target.worldPosition.y, - e?.target.worldPosition.z - ]); - camera.position.set(model.focusPosition); - } + // if (model.shouldFocus) { + // setFocusPosition([ + // e?.target.worldPosition.x, + // e?.target.worldPosition.y, + // e?.target.worldPosition.z + // ]); + // camera.position.set(model.focusPosition); + // } }} > {children} @@ -669,14 +669,14 @@ function PortalObject(model) { .getBlockAttributes(model.portalID) ); - if (model.shouldFocus) { - setFocusPosition([ - e?.target.worldPosition.x, - e?.target.worldPosition.y, - e?.target.worldPosition.z - ]); - camera.position.set(model.focusPosition); - } + // if (model.shouldFocus) { + // setFocusPosition([ + // e?.target.worldPosition.x, + // e?.target.worldPosition.y, + // e?.target.worldPosition.z + // ]); + // camera.position.set(model.focusPosition); + // } }} > {children} @@ -882,7 +882,7 @@ function ThreeObject(props) { positionY={spawnpoint.positionY} positionZ={spawnpoint.positionZ} transformMode={props.transformMode} - setFocusPosition={props.setFocusPosition} + // setFocusPosition={props.setFocusPosition} shouldFocus={props.shouldFocus} /> )} @@ -905,7 +905,7 @@ function ThreeObject(props) { selected={props.selected} modelId={model.modelID} transformMode={props.transformMode} - setFocusPosition={props.setFocusPosition} + // setFocusPosition={props.setFocusPosition} shouldFocus={props.shouldFocus} /> ); @@ -930,7 +930,7 @@ function ThreeObject(props) { selected={props.selected} portalID={model.portalID} transformMode={props.transformMode} - setFocusPosition={props.setFocusPosition} + // setFocusPosition={props.setFocusPosition} shouldFocus={props.shouldFocus} /> ); @@ -957,7 +957,7 @@ function ThreeObject(props) { aspectHeight={model.imageobject.aspectHeight} aspectWidth={model.imageobject.aspectWidth} transformMode={props.transformMode} - setFocusPosition={props.setFocusPosition} + // setFocusPosition={props.setFocusPosition} shouldFocus={props.shouldFocus} /> ); @@ -982,7 +982,7 @@ function ThreeObject(props) { aspectHeight={model.videoobject.aspectHeight} aspectWidth={model.videoobject.aspectWidth} transformMode={props.transformMode} - setFocusPosition={props.setFocusPosition} + // setFocusPosition={props.setFocusPosition} shouldFocus={props.shouldFocus} /> ); @@ -1112,7 +1112,7 @@ export default function ThreeObjectEdit(props) { scale={props.scale} animations={props.animations} transformMode={transformMode} - setFocusPosition={setFocusPosition} + // setFocusPosition={setFocusPosition} shouldFocus={shouldFocus} /> diff --git a/blocks/model-block/Edit.js b/blocks/model-block/Edit.js index a9cbc0b..5fe95a2 100644 --- a/blocks/model-block/Edit.js +++ b/blocks/model-block/Edit.js @@ -20,8 +20,6 @@ import { } from "@wordpress/components"; import { more } from "@wordpress/icons"; -import ModelEdit from "./components/ModelEdit"; - export default function Edit({ attributes, setAttributes, isSelected }) { const onChangePositionX = (positionX) => { setAttributes({ positionX }); diff --git a/blocks/model-block/components/ModelEdit.js b/blocks/model-block/components/ModelEdit.js deleted file mode 100644 index cee8fe5..0000000 --- a/blocks/model-block/components/ModelEdit.js +++ /dev/null @@ -1,106 +0,0 @@ -import * as THREE from "three"; -import React, { Suspense, useRef, useState, useEffect } from "react"; -import { Canvas, useLoader, useFrame, useThree } from "@react-three/fiber"; -import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; -import { - OrthographicCamera, - PerspectiveCamera, - OrbitControls, - useAnimations -} from "@react-three/drei"; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from "@pixiv/three-vrm"; -import { GLTFAudioEmitterExtension } from "three-omi"; - -function ThreeObject(props) { - const [url, set] = useState(props.url); - useEffect(() => { - setTimeout(() => set(props.url), 2000); - }, []); - const [listener] = useState(() => new THREE.AudioListener()); - - useThree(({ camera }) => { - camera.add(listener); - }); - - const gltf = useLoader(GLTFLoader, url, (loader) => { - loader.register( - (parser) => new GLTFAudioEmitterExtension(parser, listener) - ); - loader.register((parser) => { - return new VRMLoaderPlugin(parser); - }); - }); - - const { actions } = useAnimations(gltf.animations, gltf.scene); - - const animationList = props.animations ? props.animations.split(",") : ""; - - useEffect(() => { - if (animationList) { - animationList.forEach((name) => { - if (Object.keys(actions).includes(name)) { - actions[name].play(); - } - }); - } - }, []); - - if (gltf?.userData?.gltfExtensions?.VRM) { - const vrm = gltf.userData.vrm; - vrm.scene.position.set(0, props.positionY, 0); - VRMUtils.rotateVRM0(vrm); - const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - vrm.scene.rotation.set(0, rotationVRM, 0); - // vrm.scene.scale.set( props.scaleX, props.scaleY, props.scaleZ ); - return ; - } - gltf.scene.position.set(0, 0, 0); - gltf.scene.rotation.set(0, 0, 0); - gltf.scene.scale.set(1, 1, 1); - return ; -} - -export default function ModelEdit(props) { - return ( - <> - - - - - {props.url && ( - - - - )} - - - {props.hasTip && ( -

Click and drag ^

- )} - - ); -} diff --git a/blocks/sky-block/Edit.js b/blocks/sky-block/Edit.js index 6ffb8a2..69aef45 100644 --- a/blocks/sky-block/Edit.js +++ b/blocks/sky-block/Edit.js @@ -19,8 +19,6 @@ import { } from "@wordpress/components"; import { more } from "@wordpress/icons"; -import SkyEdit from "./components/SkyEdit"; - export default function Edit({ attributes, setAttributes, isSelected }) { const onImageSelect = (imageObject) => { setAttributes({ skyUrl: null }); diff --git a/blocks/sky-block/components/SkyEdit.js b/blocks/sky-block/components/SkyEdit.js deleted file mode 100644 index eb2cde8..0000000 --- a/blocks/sky-block/components/SkyEdit.js +++ /dev/null @@ -1,66 +0,0 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { - OrthographicCamera, - PerspectiveCamera, - OrbitControls, - useAnimations, -} from '@react-three/drei'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; - - // Geometry -function Sphere(props) { - const texture_1 = useLoader(THREE.TextureLoader, props.url); - - return ( - - - - - ); -} - -function ThreeObject( props ) { - const [ url, set ] = useState( props.src ); - useEffect( () => { - setTimeout( () => set( props.src ), 2000 ); - }, [] ); - - return Sphere(props); -} - -export default function SkyEdit( props ) { - return ( - <> - - - - { props.src && ( - - - - ) } - - - - ); -} diff --git a/blocks/spawn-point-block/components/ImageEdit.js b/blocks/spawn-point-block/components/ImageEdit.js deleted file mode 100644 index 2688816..0000000 --- a/blocks/spawn-point-block/components/ImageEdit.js +++ /dev/null @@ -1,69 +0,0 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { - OrthographicCamera, - PerspectiveCamera, - OrbitControls, - useAnimations, -} from '@react-three/drei'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; -import { useAspect } from '@react-three/drei' - - // Geometry -function Plane(props) { - const texture_1 = useLoader(THREE.TextureLoader, props.url); - - return ( - - - - - ); -} - -function ThreeObject( props ) { - const [ url, set ] = useState( props.src ); - useEffect( () => { - setTimeout( () => set( props.src ), 2000 ); - }, [] ); - - return Plane(props); -} - -export default function ImageEdit( props ) { - return ( - <> - - - - { props.src && ( - - - - ) } - - - - ); -} diff --git a/blocks/three-audio-block/Edit.js b/blocks/three-audio-block/Edit.js index 8684792..50d682a 100644 --- a/blocks/three-audio-block/Edit.js +++ b/blocks/three-audio-block/Edit.js @@ -19,8 +19,6 @@ import { } from "@wordpress/components"; import { more } from "@wordpress/icons"; -import VideoEdit from "./components/ImageEdit"; - export default function Edit({ attributes, setAttributes, isSelected }) { const onImageSelect = (imageObject) => { console.log(imageObject); diff --git a/blocks/three-audio-block/components/ImageEdit.js b/blocks/three-audio-block/components/ImageEdit.js deleted file mode 100644 index 4445be0..0000000 --- a/blocks/three-audio-block/components/ImageEdit.js +++ /dev/null @@ -1,75 +0,0 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { - OrthographicCamera, - PerspectiveCamera, - OrbitControls, - useAnimations, -} from '@react-three/drei'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; -import { useAspect } from '@react-three/drei'; - -// Geometry -function Plane(props) { - console.log(props); - const clicked = true; - const [video] = useState(() => Object.assign(document.createElement('video'), { src: props.url, crossOrigin: 'Anonymous', loop: true, muted: true })); - - useEffect(() => void (clicked && video.play()), [video, clicked]); - - return ( - - - - - - - ); -} - -function ThreeObject( props ) { - const [ url, set ] = useState( props.src ); - useEffect( () => { - setTimeout( () => set( props.src ), 2000 ); - }, [] ); - - return Plane(props); -} - -export default function ImageEdit( props ) { - return ( - <> - - - - { props.src && ( - - - - ) } - - - - ); -} diff --git a/blocks/three-html-block/Edit.js b/blocks/three-html-block/Edit.js index f34fe05..2d2087a 100644 --- a/blocks/three-html-block/Edit.js +++ b/blocks/three-html-block/Edit.js @@ -20,8 +20,6 @@ import { } from "@wordpress/components"; import { more } from "@wordpress/icons"; -import ModelEdit from "./components/ModelEdit"; - export default function Edit({ attributes, setAttributes, isSelected }) { const onChangePositionX = (positionX) => { setAttributes({ positionX }); diff --git a/blocks/three-html-block/components/ModelEdit.js b/blocks/three-html-block/components/ModelEdit.js deleted file mode 100644 index 8345f2c..0000000 --- a/blocks/three-html-block/components/ModelEdit.js +++ /dev/null @@ -1,106 +0,0 @@ -import * as THREE from "three"; -import React, { Suspense, useRef, useState, useEffect } from "react"; -import { Canvas, useLoader, useFrame, useThree } from "@react-three/fiber"; -import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; -import { - OrthographicCamera, - PerspectiveCamera, - OrbitControls, - useAnimations -} from "@react-three/drei"; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from "@pixiv/three-vrm"; -import { GLTFAudioEmitterExtension } from "three-omi"; - -function ThreeObject(props) { - const [url, set] = useState(props.url); - useEffect(() => { - setTimeout(() => set(props.url), 2000); - }, []); - const [listener] = useState(() => new THREE.AudioListener()); - - useThree(({ camera }) => { - camera.add(listener); - }); - - const gltf = useLoader(GLTFLoader, url, (loader) => { - loader.register( - (parser) => new GLTFAudioEmitterExtension(parser, listener) - ); - loader.register((parser) => { - return new VRMLoaderPlugin(parser); - }); - }); - - const { actions } = useAnimations(gltf.animations, gltf.scene); - - const animationList = props.animations ? props.animations.split(",") : ""; - - useEffect(() => { - if (animationList) { - animationList.forEach((name) => { - if (Object.keys(actions).includes(name)) { - actions[name].play(); - } - }); - } - }, []); - - if (gltf?.userData?.gltfExtensions?.VRM) { - const vrm = gltf.userData.vrm; - vrm.scene.position.set(0, props.positionY, 0); - VRMUtils.rotateVRM0(vrm); - const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - vrm.scene.rotation.set(0, rotationVRM, 0); - vrm.scene.scale.set(props.scale, props.scale, props.scale); - return ; - } - gltf.scene.position.set(0, 0, 0); - gltf.scene.rotation.set(0, 0, 0); - gltf.scene.scale.set(1, 1, 1); - return ; -} - -export default function ModelEdit(props) { - return ( - <> - - - - - {props.url && ( - - - - )} - - - {props.hasTip && ( -

Click and drag ^

- )} - - ); -} diff --git a/blocks/three-image-block/Edit.js b/blocks/three-image-block/Edit.js index 93cd70b..e0635a3 100644 --- a/blocks/three-image-block/Edit.js +++ b/blocks/three-image-block/Edit.js @@ -19,8 +19,6 @@ import { } from "@wordpress/components"; import { more } from "@wordpress/icons"; -import ImageEdit from "./components/ImageEdit"; - export default function Edit({ attributes, setAttributes, isSelected }) { const onImageSelect = (imageObject) => { console.log(imageObject); diff --git a/blocks/three-image-block/components/ImageEdit.js b/blocks/three-image-block/components/ImageEdit.js deleted file mode 100644 index f7c7e24..0000000 --- a/blocks/three-image-block/components/ImageEdit.js +++ /dev/null @@ -1,71 +0,0 @@ -import * as THREE from "three"; -import React, { Suspense, useRef, useState, useEffect } from "react"; -import { Canvas, useLoader, useFrame, useThree } from "@react-three/fiber"; -import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; -import { - OrthographicCamera, - PerspectiveCamera, - OrbitControls, - useAnimations -} from "@react-three/drei"; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from "@pixiv/three-vrm"; -import { GLTFAudioEmitterExtension } from "three-omi"; -import { useAspect } from "@react-three/drei"; - -// Geometry -function Plane(props) { - const texture_1 = useLoader(THREE.TextureLoader, props.url); - - return ( - - - - - ); -} - -function ThreeObject(props) { - const [url, set] = useState(props.src); - useEffect(() => { - setTimeout(() => set(props.src), 2000); - }, []); - - return Plane(props); -} - -export default function ImageEdit(props) { - return ( - <> - - - - {props.src && ( - - - - )} - - - - ); -} diff --git a/blocks/three-portal-block/Edit.js b/blocks/three-portal-block/Edit.js index 5eb02ac..12a0dfa 100644 --- a/blocks/three-portal-block/Edit.js +++ b/blocks/three-portal-block/Edit.js @@ -19,8 +19,6 @@ import { } from "@wordpress/components"; import { more } from "@wordpress/icons"; -import ModelEdit from "./components/ModelEdit"; - export default function Edit({ attributes, setAttributes, isSelected }) { const onChangePositionX = (positionX) => { setAttributes({ positionX }); diff --git a/blocks/three-portal-block/components/ModelEdit.js b/blocks/three-portal-block/components/ModelEdit.js deleted file mode 100644 index c71bd1b..0000000 --- a/blocks/three-portal-block/components/ModelEdit.js +++ /dev/null @@ -1,105 +0,0 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { - OrthographicCamera, - PerspectiveCamera, - OrbitControls, - useAnimations, -} from '@react-three/drei'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; - - -function ThreeObject( props ) { - const [ url, set ] = useState( props.url ); - useEffect( () => { - setTimeout( () => set( props.url ), 2000 ); - }, [] ); - const [ listener ] = useState( () => new THREE.AudioListener() ); - - useThree( ( { camera } ) => { - camera.add( listener ); - } ); - - const gltf = useLoader( GLTFLoader, url, ( loader ) => { - loader.register( - ( parser ) => new GLTFAudioEmitterExtension( parser, listener ) - ); - loader.register( ( parser ) => { - - return new VRMLoaderPlugin( parser ); - - } ); - - } ); - - const { actions } = useAnimations( gltf.animations, gltf.scene ); - - const animationList = props.animations ? props.animations.split( ',' ) : ''; - - useEffect( () => { - if ( animationList ) { - animationList.forEach( ( name ) => { - if ( Object.keys( actions ).includes( name ) ) { - actions[ name ].play(); - } - } ); - } - }, [] ); - - if(gltf?.userData?.gltfExtensions?.VRM){ - const vrm = gltf.userData.vrm; - vrm.scene.position.set( 0, props.positionY, 0 ); - VRMUtils.rotateVRM0( vrm ); - const rotationVRM = vrm.scene.rotation.y + parseFloat(props.rotationY); - vrm.scene.rotation.set( 0, rotationVRM, 0 ); - vrm.scene.scale.set( props.scale, props.scale, props.scale ); - return ; - } - gltf.scene.position.set( 0, 0, 0 ); - gltf.scene.rotation.set( 0, 0, 0 ); - gltf.scene.scale.set( 1, 1, 1 ); - return ; -} - -export default function ModelEdit( props ) { - return ( - <> - - - - - { props.url && ( - - - - ) } - - - { props.hasTip && ( -

Click and drag ^

- ) } - - ); -} diff --git a/blocks/three-video-block/Edit.js b/blocks/three-video-block/Edit.js index 073e7d3..319fe5c 100644 --- a/blocks/three-video-block/Edit.js +++ b/blocks/three-video-block/Edit.js @@ -1,6 +1,5 @@ import { __ } from "@wordpress/i18n"; import React, { useState } from "react"; -import { DropZone } from "@wordpress/components"; import "./editor.scss"; import { useBlockProps, @@ -15,12 +14,11 @@ import { RangeControl, ToggleControl, SelectControl, - TextControl + TextControl, + DropZone } from "@wordpress/components"; import { more } from "@wordpress/icons"; -import VideoEdit from "./components/VideoEdit"; - export default function Edit({ attributes, setAttributes, isSelected }) { const onImageSelect = (imageObject) => { console.log(imageObject); diff --git a/blocks/three-video-block/components/VideoEdit.js b/blocks/three-video-block/components/VideoEdit.js deleted file mode 100644 index 9765a04..0000000 --- a/blocks/three-video-block/components/VideoEdit.js +++ /dev/null @@ -1,75 +0,0 @@ -import * as THREE from 'three'; -import React, { Suspense, useRef, useState, useEffect, useMemo } from 'react'; -import { Canvas, useLoader, useFrame, useThree } from '@react-three/fiber'; -import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'; -import { - OrthographicCamera, - PerspectiveCamera, - OrbitControls, - useAnimations, -} from '@react-three/drei'; -import { VRM, VRMUtils, VRMSchema, VRMLoaderPlugin } from '@pixiv/three-vrm' -import { GLTFAudioEmitterExtension } from 'three-omi'; -import { useAspect } from '@react-three/drei'; - -// Geometry -function Plane(props) { - console.log(props); - const clicked = true; - const [video] = useState(() => Object.assign(document.createElement('video'), { src: props.url, crossOrigin: 'Anonymous', loop: true, muted: true })); - - useEffect(() => void (clicked && video.play()), [video, clicked]); - - return ( - - - - - - - ); -} - -function ThreeObject( props ) { - const [ url, set ] = useState( props.src ); - useEffect( () => { - setTimeout( () => set( props.src ), 2000 ); - }, [] ); - - return Plane(props); -} - -export default function VideoEdit( props ) { - return ( - <> - - - - { props.src && ( - - - - ) } - - - - ); -} From 5ce78f9c486825cdfe369eec5f9634079616485d Mon Sep 17 00:00:00 2001 From: antpb Date: Sun, 6 Nov 2022 21:50:08 -0600 Subject: [PATCH 48/48] scaffold shadows need to fix this mess --- .../components/EnvironmentFront.js | 45 ++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/blocks/environment/components/EnvironmentFront.js b/blocks/environment/components/EnvironmentFront.js index 808267b..96434e7 100644 --- a/blocks/environment/components/EnvironmentFront.js +++ b/blocks/environment/components/EnvironmentFront.js @@ -223,8 +223,18 @@ function ModelObject(model) { // ); } + // gltf.scene.castShadow = true; + // enable shadows @todo figure this out + // gltf.scene.traverse(function (node) { + // if (node.isMesh) { + // node.castShadow = true; + // node.receiveShadow = true; + // } + // }); + const copyGltf = useMemo(() => gltf.scene.clone(), [gltf.scene]); const modelClone = SkeletonUtils.clone(gltf.scene); + // modelClone.scene.castShadow = true; if (model.collidable === "1") { return ( <> @@ -249,6 +259,8 @@ function ModelObject(model) { > { + // @todo figure out shadows + // if (child.isMesh) { + // child.castShadow = true; + // child.receiveShadow = true; + // } + if (child.userData.gltfExtensions?.OMI_collider) { childrenToParse.push(child); // child.parent.remove(child.name); @@ -681,6 +701,8 @@ function SavedObject(props) { return ( @@ -784,7 +806,9 @@ export default function EnvironmentFront(props) { far: 2000, position: [0, 0, 20] }} - shadowMap + // shadowMap + // linear={true} + // shadows={{ type: "PCFSoftShadowMap" }} style={{ backgroundColor: props.backgroundColor, margin: "0", @@ -801,15 +825,24 @@ export default function EnvironmentFront(props) { {/* Debug physics */} - + {/* */} {props.threeUrl && ( <>