From ab72ef5e56005d4a0d1de56fc24e74088dbb86c2 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 7 Apr 2025 14:24:29 +0900 Subject: [PATCH 01/12] ver1 --- images/hw_lite/wizwingcontrollerlite.png | Bin 0 -> 8149 bytes .../block_wizwing_controller_lite.js | 1324 ++ .../metadata_wizwing_controller_lite.json | 9 + yarn.lock | 11026 ++++++++++++++++ 4 files changed, 12359 insertions(+) create mode 100644 images/hw_lite/wizwingcontrollerlite.png create mode 100644 src/playground/blocks/hardwareLite/block_wizwing_controller_lite.js create mode 100644 src/playground/blocks/hardwareLite/metadata_wizwing_controller_lite.json create mode 100644 yarn.lock diff --git a/images/hw_lite/wizwingcontrollerlite.png b/images/hw_lite/wizwingcontrollerlite.png new file mode 100644 index 0000000000000000000000000000000000000000..df96a2b9b665abae4a5b12d42a9f1be2e901b64f GIT binary patch literal 8149 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 L%96F>rlJ1>WcSP@ literal 0 HcmV?d00001 diff --git a/src/playground/blocks/hardwareLite/block_wizwing_controller_lite.js b/src/playground/blocks/hardwareLite/block_wizwing_controller_lite.js new file mode 100644 index 0000000000..db19539f1a --- /dev/null +++ b/src/playground/blocks/hardwareLite/block_wizwing_controller_lite.js @@ -0,0 +1,1324 @@ +'use strict'; + +import _range from 'lodash/range'; + +(function() { + Entry.wizwingcontrollerlite = new (class wizwingcontrollerlite { + constructor() { + this.id = '69.1'; + this.name = 'wizwingcontrollerlite'; + this.url = 'http://www.wizwing.co.kr/'; + this.imageName = 'wizwingcontrollerlite.png'; + this.title = { + ko: '위즈윙 코딩드론 R4 조종기', + en: 'wizwing coding drone R4 controller', + }; + this.duration = 32; + this.blockMenuBlocks = [ + 'Wizwing_Drone_Controller_connect', + 'Wizwing_Drone_Controller_takeoff', + 'Wizwing_Drone_Controller_land', + 'Wizwing_Drone_Controller_throttle', + 'Wizwing_Drone_Controller_elevator', + 'Wizwing_Drone_Controller_aileron', + 'Wizwing_Drone_Controller_rudder', + 'Wizwing_Drone_Controller_funled', + 'Wizwing_Drone_Controller_flip', + 'Wizwing_Drone_Controller_speed', + 'Wizwing_Drone_Controller_emergency', + 'Wizwing_Drone_Controller_opt', + 'Wizwing_Drone_Controller_gyroreset', + 'Wizwing_Drone_Controller_headless', + 'Wizwing_Drone_Controller_diagonal', + 'Wizwing_Drone_Controller_circularflight', + 'Wizwing_Drone_Controller_photoflight', + + ]; + this.portData = { + baudRate: 9600, + duration: 32, + dataBits: 8, + parity: 'none', + stopBits: 1, + bufferSize: 512, + constantServing: false, + }; + this.readablePorts = []; + this.remainValue = null; + this.setZero(); + } + + setZero() { + this.port = new Array(14).fill(0); + this.digitalValue = new Array(14).fill(0); + this.remoteDigitalValue = new Array(14).fill(0); + this.analogValue = new Array(6).fill(0); + this.readablePorts = _range(0, 19); + + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + } + console.log('Entry.hwLite:', Entry.hwLite); + } + + handleLocalData(data) { + for (let i = 0; i < 32; i++) { + let chunk; + if (!this.remainValue) { + chunk = data[i]; + } else { + chunk = this.remainValue; + i--; + } + + if (chunk === SOME_EXPECTED_RESPONSE) { + console.log('Takeoff command acknowledged by drone.'); + } else { + console.log('Unexpected response from drone:', chunk); + } + + if (chunk >> 7) { + if ((chunk >> 6) & 1) { + const nextChunk = data[i + 1]; + if (!nextChunk && nextChunk !== 0) { + this.remainValue = chunk; + } else { + this.remainValue = null; + + const port = (chunk >> 3) & 7; + this.analogValue[port] = ((chunk & 7) << 7) + (nextChunk & 127); + } + i++; + } else { + const port = (chunk >> 2) & 15; + this.digitalValue[port] = chunk & 1; + } + } + } + } + + requestLocalData() { + const queryString = []; + const readablePorts = this.readablePorts; + + const commandStr = Entry.hw.sendQueue['COMMAND']; + if (commandStr) { + for (let i = 0; i < commandStr.length; i++) { + queryString.push(commandStr.charCodeAt(i)); + } + delete Entry.hw.sendQueue['COMMAND']; + } + + if (readablePorts) { + for (const i in readablePorts) { + const query = (5 << 5) + (readablePorts[i] << 1); + queryString.push(query); + } + } + const readablePortsValues = (readablePorts && Object.values(readablePorts)) || []; + for (let port = 0; port < 14; port++) { + if (readablePortsValues.indexOf(port) > -1) { + continue; + } + const value = this.remoteDigitalValue[port]; + if (value === 255 || value === 0) { + const query = (7 << 5) + (port << 1) + (value == 255 ? 1 : 0); + queryString.push(query); + } else if (value > 0 && value < 255) { + let query = (6 << 5) + (port << 1) + (value >> 7); + queryString.push(query); + query = value & 127; + queryString.push(query); + } + } + return queryString; + } + + addReadablePort(port) { + const idx = Entry.ArduinoLite.readablePorts.indexOf(port); + if (idx === -1) { + Entry.ArduinoLite.readablePorts.push(port); + } + } + + removeReadablePort(port) { + const idx = Entry.ArduinoLite.readablePorts.indexOf(port); + if (idx >= 0) { + Entry.ArduinoLite.readablePorts.splice(idx, 1); + } + } + + setLanguage() { + return { + ko: { + Blocks:{ + Wizwing_Drone_Controller_flip_f: '앞으로 ', + Wizwing_Drone_Controller_flip_b: '뒤로 ', + Wizwing_Drone_Controller_flip_l: '왼쪽으로 ', + Wizwing_Drone_Controller_flip_r: '오른쪽으로 ', + }, + template: { + Wizwing_Drone_Controller_connect: '페어링(바인딩) ', + Wizwing_Drone_Controller_takeoff: '자동이륙 ', + Wizwing_Drone_Controller_land: '자동착륙 ', + Wizwing_Drone_Controller_throttle: '스로틀 %1만큼 %2ms ', + Wizwing_Drone_Controller_elevator: '엘리베이터 %1만큼 %2ms ', + Wizwing_Drone_Controller_aileron: '에일러론 %1만큼 %2ms ', + Wizwing_Drone_Controller_rudder: '러더 %1만큼 %2 ms ', + Wizwing_Drone_Controller_funled: '7색 LED 색 변경 ', + Wizwing_Drone_Controller_flip: '360도회전 %1 ', + Wizwing_Drone_Controller_speed: '속도조절 %1 단 ', + Wizwing_Drone_Controller_emergency: '모터긴급정지 ', + Wizwing_Drone_Controller_opt: '비전센서 on/off ', + Wizwing_Drone_Controller_gyroreset: '자이로 초기화 ', + Wizwing_Drone_Controller_headless: '헤드리스 모드 on/off ', + Wizwing_Drone_Controller_diagonal: '엘리베이터%1 에일러론%2 %3ms ', + Wizwing_Drone_Controller_circularflight: '엘리베이터%1 러더%2 %3ms ', + Wizwing_Drone_Controller_photoflight: '에일러론%1 러더%2 %3ms ', + }, + Device: { + Wizwing_Drone_Controller: '위즈윙 코딩드론 R4 조종기', + }, + Menus: { + Wizwing_Drone_Controller: '위즈윙 코딩드론 R4 조종기', + }, + Helper: { + Wizwing_Drone_Controller_connect: '페어링(바인딩) ', + Wizwing_Drone_Controller_takeoff: '자동 이륙 ', + Wizwing_Drone_Controller_land: '자동 착륙 ', + Wizwing_Drone_Controller_throttle: '드론이 상승/ 하강합니다 ', + Wizwing_Drone_Controller_elevator: '드론이 앞/뒤로 이동합니다 ', + Wizwing_Drone_Controller_aileron: '드론이 좌/우로 이동합니다 ', + Wizwing_Drone_Controller_rudder: '드론이 좌/우로 회전합니다. ', + Wizwing_Drone_Controller_funled: '7색 LED 색 변경 ', + Wizwing_Drone_Controller_flip: '360도회전 %1 ', + Wizwing_Drone_Controller_speed: '속도 %1 단 ', + Wizwing_Drone_Controller_emergency: '모터긴급정지 ', + Wizwing_Drone_Controller_opt: '비전센서 on/off ', + Wizwing_Drone_Controller_gyroreset: '자이로 초기화 ', + Wizwing_Drone_Controller_headless: '헤드리스 모드 ', + Wizwing_Drone_Controller_diagonal: '대각선으로 이동 ', + Wizwing_Drone_Controller_circularflight: '선회비행 ', + Wizwing_Drone_Controller_photoflight: '촬영비행 ', + }, + }, + en: { + template: { + Wizwing_Drone_Controller_connect: 'Fairing(Binding)', + Wizwing_Drone_Controller_takeoff: 'Auto Takeoff ', + Wizwing_Drone_Controller_land: 'Auto Landing ', + Wizwing_Drone_Controller_throttle: 'thottle %1 time %2ms ', + Wizwing_Drone_Controller_elevator: 'elevator %1 time %2ms ', + Wizwing_Drone_Controller_aileron: 'aileron %1 time %2ms ', + Wizwing_Drone_Controller_rudder: 'rudder %1 time %2ms ', + Wizwing_Drone_Controller_funled: '7-color LED color change ', + Wizwing_Drone_Controller_flip: '%1 360 flip ', + Wizwing_Drone_Controller_speed: 'Speed adjustment %1', + Wizwing_Drone_Controller_emergency: 'Emergency Stop ', + Wizwing_Drone_Controller_opt: 'vision sensor on/off ', + Wizwing_Drone_Controller_gyroreset: 'Gyro Reset ', + Wizwing_Drone_Controller_headless: 'Headless Mode ', + Wizwing_Drone_Controller_diagonal: 'diagonal Mode ', + Wizwing_Drone_Controller_circularflight: 'circularflight Mode ', + Wizwing_Drone_Controller_photoflight: 'photoflight Mode ', + }, + Device: { + Wizwing_Drone_Controller: 'wizwingdroncontroller', + }, + Menus: { + Wizwing_Drone_Controller: 'WizwingDronController', + + }, + }, + }; + } + + initializeBlocks() { + Entry.hwLite.connect().then(() => { + if (!Entry.hwLite.serial) { + console.error('Serial object is not defined. Please check the connection.'); + return; + } + + Entry.getMainGenerator().getBlocks = this.getBlocks.bind(this); + + Entry.addEventListener('blockCompleted', () => { + Entry.getMainGenerator().nextBlock(); + }); + }).catch((error) => { + console.error('Failed to connect to hardware:', error); + }); + } + + getBlocks() { + return { + Wizwing_Drone_Controller_connect: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + params: [], + def: { params: [], type: 'Wizwing_Drone_Controller_connect' }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const command = 'mapping_start'; + const commandBuffer = Buffer.from(encodeURIComponent(command)+"\r", 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 1100); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + Wizwing_Drone_Controller_takeoff: { + color: EntryStatic.colorSet.block.default.HARDWARE, + + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + params: [], + def: { params: [], type: 'Wizwing_Drone_Controller_takeoff' }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const command = 'takeoff'; + const commandBuffer = Buffer.from(encodeURIComponent(command)+"\r", 'utf8'); + console.log(`Sending command: ${command}`); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 4000); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + Wizwing_Drone_Controller_land: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + params: [], + def: { params: [], type: 'Wizwing_Drone_Controller_land' }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const command = 'land'; + const commandBuffer = Buffer.from(encodeURIComponent(command)+"\r", 'utf8'); + console.log(`Sending command: ${command}`); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 3000); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + Wizwing_Drone_Controller_throttle: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + params: [ + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + ], + def: { + params: [null, null], + type: 'Wizwing_Drone_Controller_throttle', + }, + paramsKeyMap: { + STICK: 0, + TIME: 1, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + let stick = script.getNumberValue('STICK', script)*5; + let time = script.getNumberValue('TIME', script); + + if (stick > 500) { + stick = 500; + } + else if (stick < -500) { + stick = -500; + } + + if (stick >= 0) { + const command1 = `up ${stick} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer = Buffer.from(command1, 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + } + else { + stick = stick * -1; + const command2 = `down ${stick} ${time}\r`; + console.log('Constructed command:', command2); + const commandBuffer = Buffer.from(command2, 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command2); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + } + + return script.callReturn(); + }, + }, + + Wizwing_Drone_Controller_elevator: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + params: [ + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + ], + def: { + params: [null, null], + type: 'Wizwing_Drone_Controller_elevator', + }, + paramsKeyMap: { + STICK: 0, + TIME: 1, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + let stick = script.getNumberValue('STICK', script)*5; + let time = script.getNumberValue('TIME', script); + + if (stick > 500) { + stick = 500; + } + else if (stick < -500) { + stick = -500; + } + + if (stick >= 0) { + const command1 = `forward ${stick} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer = Buffer.from(command1, 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + } + else { + stick = stick * -1; + const command2 = `back ${stick} ${time}\r`; + console.log('Constructed command:', command2); + const commandBuffer = Buffer.from(command2, 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command2); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + } + + return script.callReturn(); + }, + }, + + Wizwing_Drone_Controller_aileron: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + params: [ + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + ], + def: { + params: [null, null], + type: 'Wizwing_Drone_Controller_aileron', + }, + paramsKeyMap: { + STICK: 0, + TIME: 1, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + let stick = script.getNumberValue('STICK', script)*5; + let time = script.getNumberValue('TIME', script); + + if (stick > 500) { + stick = 500; + } + else if (stick < -500) { + stick = -500; + } + + if (stick >= 0) { + const command1 = `right ${stick} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer = Buffer.from(command1, 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + } + else { + stick = stick * -1; + const command2 = `left ${stick} ${time}\r`; + console.log('Constructed command:', command2); + const commandBuffer = Buffer.from(command2, 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command2); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + } + + return script.callReturn(); + }, + }, + Wizwing_Drone_Controller_rudder: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + params: [ + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + ], + def: { + params: [null, null], + type: 'Wizwing_Drone_Controller_rudder', + }, + paramsKeyMap: { + STICK: 0, + TIME: 1, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + let stick = script.getNumberValue('STICK', script)*5; + let time = script.getNumberValue('TIME', script); + + if (stick > 500) { + stick = 500; + } + else if (stick < -500) { + stick = -500; + } + + if (stick >= 0) { + const command1 = `cw ${stick} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer = Buffer.from(command1, 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + } + else { + stick = stick * -1; + const command2 = `ccw ${stick} ${time}\r`; + console.log('Constructed command:', command2); + const commandBuffer = Buffer.from(command2, 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command2); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + } + + return script.callReturn(); + }, + }, + Wizwing_Drone_Controller_funled: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + params: [], + def: { params: [], type: 'Wizwing_Drone_Controller_funled' }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const command = 'funled'; + const commandBuffer = Buffer.from(encodeURIComponent(command)+'\r', 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 1100); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + + Wizwing_Drone_Controller_flip: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.Blocks.Wizwing_Drone_Controller_flip_f, 'f'], + [Lang.Blocks.Wizwing_Drone_Controller_flip_b, 'b'], + [Lang.Blocks.Wizwing_Drone_Controller_flip_l, 'l'], + [Lang.Blocks.Wizwing_Drone_Controller_flip_r, 'r'], + ], + value: 'f', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [null], + type: 'Wizwing_Drone_Controller_flip', + }, + paramsKeyMap: { + DIRECTION: 0, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const direction = script.getField('DIRECTION'); + const command = `flip ${direction}\r`; + const commandBuffer = Buffer.from(command, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 4100); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + + Wizwing_Drone_Controller_speed: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [null], + type: 'Wizwing_Drone_Controller_speed', + }, + paramsKeyMap: { + DIRECTION: 0, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const direction = script.getField('DIRECTION'); + const command = `speed ${direction}\r`; + const commandBuffer = Buffer.from(command, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 1100); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + Wizwing_Drone_Controller_emergency: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + params: [], + def: { params: [], type: 'Wizwing_Drone_Controller_emergency' }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const command = 'emergency'; + const commandBuffer = Buffer.from(encodeURIComponent(command)+'\r', 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 1100); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + Wizwing_Drone_Controller_opt: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + params: [], + def: { params: [], type: 'Wizwing_Drone_Controller_opt' }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const command = 'opt'; + const commandBuffer = Buffer.from(encodeURIComponent(command)+"\r", 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 1100); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + + Wizwing_Drone_Controller_gyroreset: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + params: [], + def: { params: [], type: 'Wizwing_Drone_Controller_gyroreset' }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const command = 'gyroreset'; + const commandBuffer = Buffer.from(encodeURIComponent(command)+"\r", 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 1100); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + + + Wizwing_Drone_Controller_headless: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + params: [], + def: { params: [null], type: 'Wizwing_Drone_Controller_headless' }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + const command = 'headless'; + const commandBuffer = Buffer.from(encodeURIComponent(command)+'\r', 'utf8'); + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer, false); + console.log('Command sent using sendAsyncWithThrottle:', command); + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, 1100); + }); + } else { + console.log('Serial writer not found.'); + } + return script.callReturn(); + }, + }, + + + Wizwing_Drone_Controller_diagonal: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + params: [ + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + ], + def: { + params: [null, null, null], + type: 'Wizwing_Drone_Controller_diagonal', + }, + paramsKeyMap: { + STICK1: 0, + STICK2: 1, + TIME: 2, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + let stick1 = script.getNumberValue('STICK1', script)*5; + let stick2 = script.getNumberValue('STICK2', script)*5; + let time = script.getNumberValue('TIME', script); + + if (stick1 > 500) { + stick1 = 500; + } + else if (stick1 < -500) { + stick1 = -500; + } + + if (stick2 > 500) { + stick2 = 500; + } + else if (stick2 < -500) { + stick2 = -500; + } + + if (stick1 >= 0 && stick2 >= 0) { + const command1 = `forward ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `right ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + else if (stick1 >= 0 && stick2 < 0) { + stick2 = stick2 * -1; + + const command1 = `forward ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `left ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + else if (stick1 < 0 && stick2 >= 0) { + stick1 = stick1 * -1; + const command1 = `back ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `right ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + else { + stick1 = stick1 * -1; + stick2 = stick2 * -1; + const command1 = `back ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `left ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + return script.callReturn(); + }, + }, + + Wizwing_Drone_Controller_circularflight: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + params: [ + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + ], + def: { + params: [null, null, null], + type: 'Wizwing_Drone_Controller_circularflight', + }, + paramsKeyMap: { + STICK1: 0, + STICK2: 1, + TIME: 2, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + let stick1 = script.getNumberValue('STICK1', script)*5; + let stick2 = script.getNumberValue('STICK2', script)*5; + let time = script.getNumberValue('TIME', script); + + if (stick1 > 500) { + stick1 = 500; + } + else if (stick1 < -500) { + stick1 = -500; + } + + if (stick2 > 500) { + stick2 = 500; + } + else if (stick2 < -500) { + stick2 = -500; + } + + if (stick1 >= 0 && stick2 >= 0) { + + const command1 = `forward ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `cw ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + + else if (stick1 >= 0 && stick2 < 0) { + stick2 = stick2 * -1; + + const command1 = `forward ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `ccw ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + + } else { + console.log('Serial writer not found.'); + } + + } + + else if (stick1 < 0 && stick2 >= 0) { + stick1 = stick1 * -1; + const command1 = `back ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `cw ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + + } else { + console.log('Serial writer not found.'); + } + + } + + else { + stick1 = stick1 * -1; + stick2 = stick2 * -1; + const command1 = `back ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `ccw ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + return script.callReturn(); + }, + }, + + Wizwing_Drone_Controller_photoflight: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic', + fontColor: '#fff', + statements: [], + params: [ + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + { type: 'Block', accept: 'string' }, + ], + def: { + params: [null, null, null], + type: 'Wizwing_Drone_Controller_photoflight', + }, + paramsKeyMap: { + STICK1: 0, + STICK2: 1, + TIME: 2, + }, + class: 'wizwing', + isNotFor: ['wizwingcontrollerlite'], + func(sprite, script) { + let stick1 = script.getNumberValue('STICK1', script)*5; + let stick2 = script.getNumberValue('STICK2', script)*5; + let time = script.getNumberValue('TIME', script); + + if (stick1 > 500) { + stick1 = 500; + } + else if (stick1 < -500) { + stick1 = -500; + } + + if (stick2 > 500) { + stick2 = 500; + } + else if (stick2 < -500) { + stick2 = -500; + } + + if (stick1 >= 0 && stick2 >= 0) { + const command1 = `right ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `cw ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + else if (stick1 >= 0 && stick2 < 0) { + stick2 = stick2 * -1; + + const command1 = `right ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `ccw ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + else if (stick1 < 0 && stick2 >= 0) { + stick1 = stick1 * -1; + const command1 = `left ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `cw ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + else { + stick1 = stick1 * -1; + stick2 = stick2 * -1; + const command1 = `left ${stick1} ${time}\r`; + console.log('Constructed command:', command1); + const commandBuffer1 = Buffer.from(command1, 'utf8'); + + const command11 = `ccw ${stick2} ${time}\r`; + console.log('Constructed command:', command11); + const commandBuffer11 = Buffer.from(command11, 'utf8'); + + if (Entry.hwLite && Entry.hwLite.serial && Entry.hwLite.serial.writer) { + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer1, false); + console.log('Command sent using sendAsyncWithThrottle:', command1); + + Entry.hwLite.serial.sendAsyncWithThrottle(commandBuffer11, false); + console.log('Command sent using sendAsyncWithThrottle:', command11); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(script.callReturn()); + }, time + 1100); + }); + } else { + console.log('Serial writer not found.'); + } + + } + + return script.callReturn(); + }, + }, + + } + } + })(); +})(); + +module.exports = Entry.wizwingcontrollerlite; diff --git a/src/playground/blocks/hardwareLite/metadata_wizwing_controller_lite.json b/src/playground/blocks/hardwareLite/metadata_wizwing_controller_lite.json new file mode 100644 index 0000000000..2c6c29d4df --- /dev/null +++ b/src/playground/blocks/hardwareLite/metadata_wizwing_controller_lite.json @@ -0,0 +1,9 @@ +{ + "name": "wizwingcontrollerlite", + "version": "1.0.0", + "type": "hardware", + "title": "위즈윙 코딩드론 R4 조종기", + "description": "wizwing", + "imageName": "wizwingcontrollerlite", + "moduleId": "69.1" +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..ef4539ddd3 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,11026 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@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.0.0", "@babel/code-frame@^7.26.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" + integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== + +"@babel/core@^7.1.0", "@babel/core@^7.22.1": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/eslint-parser@^7.11.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.27.0.tgz#d55e52a5ef3b164139a799dc522c338faba3507c" + integrity sha512-dtnzmSjXfgL/HDgMcmsLSzyGbEosi4DrGWoCNfuI+W4IkVJw6izpTe7LtOdwAXnkDqw5yweboYCTkM2rQizCng== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" + +"@babel/eslint-plugin@^7.11.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.27.0.tgz#b8b7bf27e68d65df05b06048668d488047ea2fd1" + integrity sha512-b8YXz2RX72kf2mOsmvtRdk4GMmpp4bUsvaI0cLJrUsvltMXvELiJPYsy6ikoHqzx40kKdw/3DEBgA8wqCLzJxA== + dependencies: + eslint-rule-composer "^0.3.0" + +"@babel/generator@^7.26.10", "@babel/generator@^7.27.0", "@babel/generator@^7.4.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" + integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== + dependencies: + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" + integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== + dependencies: + "@babel/types" "^7.25.9" + +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9", "@babel/helper-compilation-targets@^7.26.5": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz#de0c753b1cd1d9ab55d473c5a5cf7170f0a81880" + integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA== + dependencies: + "@babel/compat-data" "^7.26.8" + "@babel/helper-validator-option" "^7.25.9" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.25.9": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz#518fad6a307c6a96f44af14912b2c20abe9bfc30" + integrity sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-member-expression-to-functions" "^7.25.9" + "@babel/helper-optimise-call-expression" "^7.25.9" + "@babel/helper-replace-supers" "^7.26.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/traverse" "^7.27.0" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz#0e41f7d38c2ebe06ebd9cf0e02fb26019c77cd95" + integrity sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + regexpu-core "^6.2.0" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" + integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" + integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-imports@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" + integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" + integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-optimise-call-expression@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" + integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== + dependencies: + "@babel/types" "^7.25.9" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35" + integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== + +"@babel/helper-remap-async-to-generator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" + integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-wrap-function" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/helper-replace-supers@^7.25.9", "@babel/helper-replace-supers@^7.26.5": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d" + integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.25.9" + "@babel/helper-optimise-call-expression" "^7.25.9" + "@babel/traverse" "^7.26.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" + integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + +"@babel/helper-validator-option@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" + integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== + +"@babel/helper-wrap-function@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" + integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== + dependencies: + "@babel/template" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + +"@babel/helpers@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== + dependencies: + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + +"@babel/highlight@^7.10.4": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.9.tgz#8141ce68fc73757946f983b343f1231f4691acc6" + integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0", "@babel/parser@^7.4.3": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== + dependencies: + "@babel/types" "^7.27.0" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" + integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" + integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": + version "7.25.9" + 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.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" + integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" + integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/plugin-transform-optional-chaining" "^7.25.9" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" + integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-proposal-class-properties@^7.8.3": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-object-rest-spread@^7.8.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-private-methods@^7.8.3": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@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-import-assertions@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" + integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-import-attributes@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" + integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@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-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" + integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-async-generator-functions@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz#5e3991135e3b9c6eaaf5eff56d1ae5a11df45ff8" + integrity sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-remap-async-to-generator" "^7.25.9" + "@babel/traverse" "^7.26.8" + +"@babel/plugin-transform-async-to-generator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" + integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-remap-async-to-generator" "^7.25.9" + +"@babel/plugin-transform-block-scoped-functions@^7.26.5": + version "7.26.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e" + integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-block-scoping@^7.25.9": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz#acc2c0d98a7439bbde4244588ddbd4904701d47f" + integrity sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-class-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" + integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-class-static-block@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" + integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-classes@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" + integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-replace-supers" "^7.25.9" + "@babel/traverse" "^7.25.9" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" + integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/template" "^7.25.9" + +"@babel/plugin-transform-destructuring@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" + integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-dotall-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" + integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-duplicate-keys@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" + integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" + integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-dynamic-import@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" + integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-exponentiation-operator@^7.26.3": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" + integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-export-namespace-from@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" + integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-for-of@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz#27231f79d5170ef33b5111f07fe5cafeb2c96a56" + integrity sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-function-name@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" + integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== + dependencies: + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-transform-json-strings@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" + integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" + integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-logical-assignment-operators@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" + integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-member-expression-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" + integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-amd@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" + integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-commonjs@^7.26.3", "@babel/plugin-transform-modules-commonjs@^7.8.3": + version "7.26.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" + integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== + dependencies: + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-modules-systemjs@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" + integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/traverse" "^7.25.9" + +"@babel/plugin-transform-modules-umd@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" + integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== + dependencies: + "@babel/helper-module-transforms" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" + integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-new-target@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" + integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.26.6": + version "7.26.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe" + integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-numeric-separator@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" + integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-object-assign@^7.8.3": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.25.9.tgz#686203d53ee688d1642bf3a8c751dfb3981021c8" + integrity sha512-I/Vl1aQnPsrrn837oLbo+VQtkNcjuuiATqwmuweg4fTauwHHQoxyjmjjOVKyO8OaTxgqYTKW3LuQsykXjDf5Ag== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-object-rest-spread@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" + integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== + dependencies: + "@babel/helper-compilation-targets" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/plugin-transform-parameters" "^7.25.9" + +"@babel/plugin-transform-object-super@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" + integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-replace-supers" "^7.25.9" + +"@babel/plugin-transform-optional-catch-binding@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" + integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-optional-chaining@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" + integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" + integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-private-methods@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" + integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-private-property-in-object@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" + integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-property-literals@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" + integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-regenerator@^7.25.9": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz#822feebef43d6a59a81f696b2512df5b1682db31" + integrity sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-regexp-modifiers@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" + integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-reserved-words@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" + integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-runtime@^7.8.3": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz#6b4504233de8238e7d666c15cde681dc62adff87" + integrity sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw== + dependencies: + "@babel/helper-module-imports" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.11.0" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" + integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-spread@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" + integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + +"@babel/plugin-transform-sticky-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" + integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-template-literals@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz#966b15d153a991172a540a69ad5e1845ced990b5" + integrity sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-typeof-symbol@^7.26.7": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.0.tgz#044a0890f3ca694207c7826d0c7a65e5ac008aae" + integrity sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w== + dependencies: + "@babel/helper-plugin-utils" "^7.26.5" + +"@babel/plugin-transform-unicode-escapes@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" + integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-property-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" + integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" + integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-transform-unicode-sets-regex@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" + integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/preset-env@^7.10.2": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.9.tgz#2ec64e903d0efe743699f77a10bdf7955c2123c3" + integrity sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ== + dependencies: + "@babel/compat-data" "^7.26.8" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-plugin-utils" "^7.26.5" + "@babel/helper-validator-option" "^7.25.9" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.26.0" + "@babel/plugin-syntax-import-attributes" "^7.26.0" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.25.9" + "@babel/plugin-transform-async-generator-functions" "^7.26.8" + "@babel/plugin-transform-async-to-generator" "^7.25.9" + "@babel/plugin-transform-block-scoped-functions" "^7.26.5" + "@babel/plugin-transform-block-scoping" "^7.25.9" + "@babel/plugin-transform-class-properties" "^7.25.9" + "@babel/plugin-transform-class-static-block" "^7.26.0" + "@babel/plugin-transform-classes" "^7.25.9" + "@babel/plugin-transform-computed-properties" "^7.25.9" + "@babel/plugin-transform-destructuring" "^7.25.9" + "@babel/plugin-transform-dotall-regex" "^7.25.9" + "@babel/plugin-transform-duplicate-keys" "^7.25.9" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" + "@babel/plugin-transform-dynamic-import" "^7.25.9" + "@babel/plugin-transform-exponentiation-operator" "^7.26.3" + "@babel/plugin-transform-export-namespace-from" "^7.25.9" + "@babel/plugin-transform-for-of" "^7.26.9" + "@babel/plugin-transform-function-name" "^7.25.9" + "@babel/plugin-transform-json-strings" "^7.25.9" + "@babel/plugin-transform-literals" "^7.25.9" + "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" + "@babel/plugin-transform-member-expression-literals" "^7.25.9" + "@babel/plugin-transform-modules-amd" "^7.25.9" + "@babel/plugin-transform-modules-commonjs" "^7.26.3" + "@babel/plugin-transform-modules-systemjs" "^7.25.9" + "@babel/plugin-transform-modules-umd" "^7.25.9" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" + "@babel/plugin-transform-new-target" "^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.26.6" + "@babel/plugin-transform-numeric-separator" "^7.25.9" + "@babel/plugin-transform-object-rest-spread" "^7.25.9" + "@babel/plugin-transform-object-super" "^7.25.9" + "@babel/plugin-transform-optional-catch-binding" "^7.25.9" + "@babel/plugin-transform-optional-chaining" "^7.25.9" + "@babel/plugin-transform-parameters" "^7.25.9" + "@babel/plugin-transform-private-methods" "^7.25.9" + "@babel/plugin-transform-private-property-in-object" "^7.25.9" + "@babel/plugin-transform-property-literals" "^7.25.9" + "@babel/plugin-transform-regenerator" "^7.25.9" + "@babel/plugin-transform-regexp-modifiers" "^7.26.0" + "@babel/plugin-transform-reserved-words" "^7.25.9" + "@babel/plugin-transform-shorthand-properties" "^7.25.9" + "@babel/plugin-transform-spread" "^7.25.9" + "@babel/plugin-transform-sticky-regex" "^7.25.9" + "@babel/plugin-transform-template-literals" "^7.26.8" + "@babel/plugin-transform-typeof-symbol" "^7.26.7" + "@babel/plugin-transform-unicode-escapes" "^7.25.9" + "@babel/plugin-transform-unicode-property-regex" "^7.25.9" + "@babel/plugin-transform-unicode-regex" "^7.25.9" + "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.11.0" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.40.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.8.4": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" + integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.25.9", "@babel/template@^7.26.9", "@babel/template@^7.27.0", "@babel/template@^7.4.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.27.0", "@babel/traverse@^7.4.3": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" + integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.27.0" + "@babel/parser" "^7.27.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.27.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + +"@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" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@egjs/component@^2.1.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@egjs/component/-/component-2.2.2.tgz#b8208ea4ca05f6562a51d58f1e6f9979aad8a9d9" + integrity sha512-2m6nu6/Mbs6VnoT4IHFGUBX6V82Zp01zDmlWpIJ3fMatHpe7BB1qUYFgMmSWGY0uOvOl4plvflwbCRUAGMfwWQ== + +"@egjs/visible@^2.1.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@egjs/visible/-/visible-2.4.0.tgz#065ccea237c5cff91231431b4d3df1c294c38254" + integrity sha512-p9hRZCgH8dsJDKcBbOTPg25dxenuDw8EYm+15eN1Q/LJkNtL5hpJ3ee/QBK4TTICuOjzXpZj4jBdLqaVArykwA== + dependencies: + "@egjs/component" "^2.1.0" + +"@entrylabs/event@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@entrylabs/event/-/event-1.0.3.tgz#a8754edcf4e44c0365a0e95b57801f3f52532e9d" + integrity sha512-IDC7sWnfe8GVQIEGsct9Bcsj1Nh4XikO6PG+veVuix0Zv/XH98NkFjmXiyrriJ/rjJoGFBq6sKesfmaFCCr3MA== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz#b0fc7e06d0c94f801537fd4237edc2706d3b8e4c" + integrity sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.6.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + +"@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@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.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" + +"@eslint/js@8.57.1": + version "8.57.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" + integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== + +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== + dependencies: + "@humanwhocodes/object-schema" "^2.0.3" + debug "^4.3.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" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@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": + 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== + +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@jest/console@^24.7.1", "@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== + dependencies: + "@jest/source-map" "^24.9.0" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== + dependencies: + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" + micromatch "^3.1.10" + p-each-series "^1.0.0" + realpath-native "^1.1.0" + rimraf "^2.5.4" + slash "^2.0.0" + strip-ansi "^5.0.0" + +"@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== + dependencies: + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + +"@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== + dependencies: + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.1" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + node-notifier "^5.4.2" + slash "^2.0.0" + source-map "^0.6.0" + string-length "^2.0.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== + dependencies: + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== + dependencies: + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.9.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" + micromatch "^3.1.10" + pirates "^4.0.1" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@mediapipe/tasks-vision@^0.10.3": + version "0.10.21" + resolved "https://registry.yarnpkg.com/@mediapipe/tasks-vision/-/tasks-vision-0.10.21.tgz#b78df074763e0c7fdf8606c60121d65c9199bbf6" + integrity sha512-TuhKH+credq4zLksGbYrnvJ1aLIWMc5r0UHwzxzql4BHECJwIAoBR61ZrqwGOW6ZmSBIzU1t4VtKj8hbxFaKeA== + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@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", "@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== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pixi/accessibility@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.12.tgz#c22e28021e285d0db3869829a05db4adda25e393" + integrity sha512-JnfII2VsIeIpvyn1VMNDlhhq5BzHwwHn8sMRKhS3kFyxn4CdP0E4Ktn3/QK0vmL9sHCeTlto5Ybj3uuoKZwCWg== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/accessibility@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.7.tgz#a9ca9c7c04925014af4b137b38dd8b77b208e603" + integrity sha512-104qzGZWnA/cQUH48jTiCXKGqOCfOqZAHmVg1z0p5l5tnzVX5zUQDBJxt4AAIPguZZe1YkniealwO1WGz0yBgA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/app@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.12.tgz#90daa5fa056d222068b284cbd2f442e9cea31c2f" + integrity sha512-XMpqoO+1BFIVakgHX/VlBaO4qWxg9TitvybDeXZxyVlSCG84DMNulN55jYufVp92nqHhiRr2fAIc9JDccOcNcQ== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + +"@pixi/app@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.7.tgz#1a469dcdb9a3746d98eb58f2f7fa3e0951880a82" + integrity sha512-xlXxMGiGGmOA154SyltOQ2ZfPEtErzXl8GOxXJJJBxmIfvCQa+Y6iO5jf4q7yNbpSbrfaeIrYUnNbJAViiACzg== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + +"@pixi/constants@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.12.tgz#f02b4366669a30983f044a1d2870fd6dbdeea03d" + integrity sha512-UcuvZZ8cQu+ZC7ufLpKi8NfZX0FncPuxKd0Rf6u6pzO2SmHPq4C1moXYGDnkZjPFAjNYFFHC7chU+zolMtkL/g== + +"@pixi/constants@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.7.tgz#a2e1789a98deb3713cfcb3eba3db84588bc9161e" + integrity sha512-MBcgIM/mSqonFezkCI9080IqNlc0wb8S9QJ5otBdseOWUQa/ua2jF7Jd1sCBGmi0IzS9/NOHFXzZVTdS7AC7Ow== + +"@pixi/core@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.12.tgz#14d57aaaac099c512f8955a87648cf5b3f914ac1" + integrity sha512-SKZPU2mP4UE4trWOTcubGekKwopnotbyR2X8nb68wffBd1GzMoaxyakltfJF2oCV/ivrru/biP4CkW9K6MJ56g== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/runner" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/ticker" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/core@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.7.tgz#a8d65ca17f0c4ef8c0c5a22d31b9e02a4ab73b93" + integrity sha512-WBhU2f5aJSVVaFP55FFBFKjKlRf5fYGxgA/U3kD4yD4Y3d3d6V3MIZv+o0VX+kBs1Eq7ePZqEv2smDrlzzMEjQ== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/runner" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/ticker" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/display@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.12.tgz#24ddb270b87b91631284b57144d8e486a2375e17" + integrity sha512-/fsH/GAxc62rvwTnmrnV8oGCkk4LwJ9pt2Jv3UIorNsjXyL0V5fGw7uZnilF2eSdu6LgQKBMWPOtBF0TNML3lg== + dependencies: + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/display@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.7.tgz#b661d2ecfd2a67f213665a0698acd29e17eee8fe" + integrity sha512-ma1JyLe5vaEgmaOR+anvj5YOKqT9OEWnboIe7NVmwGF1CZ7JFnB12rsRulHUsSaFG9bP5xjvroAZjFg/WvyGLw== + dependencies: + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/extract@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.12.tgz#4fb236a78d65bc1586e1b77e1455c76da6be861f" + integrity sha512-PRs9sKeZT+eYSD8wGUqSjHhIRrfvnLU65IIJYlmgTxYo9U4rwzykt74v09ggMj/GFUpjsILISA5VIXM1TV79PQ== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/extract@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.7.tgz#2f32b804d90621ad3187e4ae7fb959d19b3959f1" + integrity sha512-xQ5hYFIdxQTjNWwtwsjIK0DjbGLlUl92rIj5yvNJFiJvRjZ8IfvtIaM5uwjhiY2U9q3fDLFgb8EiNfmdDc78xQ== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/filter-alpha@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.12.tgz#d2076e0d328430874d8cc544fa96fc097bbea893" + integrity sha512-/VG+ojZZwStLfiYVKcX4XsXNiPZpv40ZgiDL6igZOMqUsWn7n7dhIgytmbx6uTUWfxIPlOQH3bJGEyAHVEgzZA== + dependencies: + "@pixi/core" "5.3.12" + +"@pixi/filter-alpha@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.7.tgz#e979db57e9ee47b84d0900e5f9767b8632426fb4" + integrity sha512-jkvbzmSCIPjCJMFNUocAxsZ7Cq3ssFwXnmXNYKYhJy01LxiyO/JbVDAxAD7Chyn5jbKsI21OV3UQaIJhFpXw7Q== + dependencies: + "@pixi/core" "5.3.7" + +"@pixi/filter-blur@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.12.tgz#b4212c13c96d4c3dd12efa20859c77baca092250" + integrity sha512-8zuOmztmuXCl1pXQpycKTS8HmXPtkmMe6xM93Q1gT7CRLzyS97H3pQAh4YuaGOrJslOKBNDrGVzLVY95fxjcTQ== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/settings" "5.3.12" + +"@pixi/filter-blur@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.7.tgz#7eee3559704b280e8588c2fc9e8d912aac80f8a9" + integrity sha512-xM+Zz2i2UCmY7oHBPlGaN2ImhCY4l/V8NFc8FNSUIHm8NXHJ4/VCQpXp9BFTjY1+GZExFLkqB8kIYEddGVFiLA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/settings" "5.3.7" + +"@pixi/filter-color-matrix@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.12.tgz#17fa86afacb9b1de44c5e81b8a911dfdad730e3f" + integrity sha512-CblKOry/TvFm7L7iangxYtvQgO3a9n5MsmxDUue68DWZa/iI4r/3TSnsvA+Iijr590e9GsWxy3mj9P4HBMOGTA== + dependencies: + "@pixi/core" "5.3.12" + +"@pixi/filter-color-matrix@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.7.tgz#230cafe46bde36e25441b13f3ac5dd8e8fee4311" + integrity sha512-Z12cxoHx9uMh3CZ0PLVRzsaFHHF/CfU3J83KI9k+Bg/DFOh/J/5EToCd44jYJbMKp3nvXcO1EJyZ3wwC/IsyfQ== + dependencies: + "@pixi/core" "5.3.7" + +"@pixi/filter-displacement@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.12.tgz#2996ca66746050a0c5c950629ae163e4c033a020" + integrity sha512-D/LpJxnGi85wHB6VeBpw0FQAN0mzHHUYNxCADwUhknY+SKfP5RhaYOlk79zqOuakBfQTzL3lPgMNH2EC85EJPw== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/math" "5.3.12" + +"@pixi/filter-displacement@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.7.tgz#4364d5514221c4a03950b67795cebd1b34dca401" + integrity sha512-akMVkAHqliQujveiJ5KBMuwh/JVGN37NQsD8n1XbDDSe6SKjpX0kaq2Bh2Xu9pPj3+Jhofy0sI65q2M8qs2Uog== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/math" "5.3.7" + +"@pixi/filter-fxaa@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.12.tgz#bb93ecaf3002fa5da9dbff6974ab38fd8045cd79" + integrity sha512-EI+foorDnYUAy7VF3fzi635u/dyf5EHZOFovGEDrHm/ZTmEJ1i6RolwexCN94vf6HGfaDrIgNmqFcKWtbIvJFA== + dependencies: + "@pixi/core" "5.3.12" + +"@pixi/filter-fxaa@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.7.tgz#55b778fbc60fd87f16d17d66a36b122e2f5c3b57" + integrity sha512-NJpVcbOCUVYUDGqxvh7Jp/+arWEnLKgI/7Qf8VEYv0aQslqE8ZtFSAX7JfP+iGfFWXlkMe6AKspesYhUrIpRKg== + dependencies: + "@pixi/core" "5.3.7" + +"@pixi/filter-noise@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.12.tgz#66315840bbf5fd7e15e42aafd29024602f4ccb2b" + integrity sha512-9KWmlM2zRryY6o0bfNOHAckdCk8X7g9XWZbmEIXZZs7Jr90C1+RhDreqNs8OrMukmNo2cW9hMrshHgJ9aA1ftQ== + dependencies: + "@pixi/core" "5.3.12" + +"@pixi/filter-noise@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.7.tgz#70e638f5d6ebc4b62b4c67f2de939a7fa900d7a5" + integrity sha512-P0mVQR2J7GHujVcq0iiuD2/1yvmue7orpppa5iuNHoOMT+vZpO0hdCKTg5vm5ZcWnHrOwtvv8zYngnT9rLdCtw== + dependencies: + "@pixi/core" "5.3.7" + +"@pixi/graphics@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.12.tgz#bad1d5e1630e38b5f1bf594f72931c0e7a43ead0" + integrity sha512-uBmFvq15rX0f459/4F2EnR2UhCgfwMWVJDB1L3OnCqQePE/z3ju4mfWEwOT+I7gGejWlGNE6YLdEMVNw/3zb6w== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/graphics@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.7.tgz#36ae80e2508e0a9c61ce454807d517d370d90a74" + integrity sha512-+6+bT/AC29a1Hw5XDxsH1UqBsXSqcna7wNTTrBQ02owotIJtyRc6w48f5qxzhxycumyVCR87IV5tAtdwX3xhag== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/interaction@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.12.tgz#dd4f23fadc24810857f69766db6cdfab8786e5bd" + integrity sha512-Ks7vHDfDI58r1TzKHabnQXcXzFbUu2Sb4eQ3/jnzI/xGB5Z8Q0kS7RwJtFOWNZ67HHQdoHFkQIozTUXVXHs3oA== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/ticker" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/interaction@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.7.tgz#dd4d7b43fc266c9b0e8994f4f05cb9f73438b586" + integrity sha512-B+5suog6fo8tJclTIO1Nn0HikyXQ9OWQGmTiYUnDVDriX5dGujh79RpcL51HFQ/2Gs2Gt0rl3AfP9OsCLe7VPA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/ticker" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/loaders@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.12.tgz#ee34783633a76719a196f65330b6d78a52d3bb86" + integrity sha512-M56m1GKpCChFqSic9xrdtQOXFqwYMvGzDXNpsKIsQbkHooaJhUR5UxSPaNiGC4qWv0TO9w8ANouxeX2v6js4eg== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/utils" "5.3.12" + resource-loader "^3.0.1" + +"@pixi/loaders@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.7.tgz#7231106d8d490d9ca230df7a07a53e1e4d412163" + integrity sha512-zwWgvhUz7l5Z3me5gT1XbJzmj4bnz176PnawoUdlRxNARnMW3Rsk7Egzu8atWhJUL+MWEv+t8KkyHRXG39q5FA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/utils" "5.3.7" + resource-loader "^3.0.1" + +"@pixi/math@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.12.tgz#bfc3c1b651a96a2d62cb40e0b181d68fb4962aac" + integrity sha512-VMccUVKSRlLFTGQu6Z450q/W6LVibaFWEo2eSZZfxz+hwjlYiqRPx4heG++4Y6tGskZK7W8l8h+2ixjmo65FCg== + +"@pixi/math@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.7.tgz#066e7ea149fd38db8d8a9584aac5f41d02b36bdd" + integrity sha512-WnjUwX7rkxR36F0xknpsNd9BsfQosV0BbyFE0Il88IURBM3Tu9X4tC7RGJDgWU+aXw23HgHu0j+MWJrCVCM2fA== + +"@pixi/mesh-extras@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.12.tgz#b634f2a212714374d5376b70a333fbebf9f69d4f" + integrity sha512-tEBEEIh96aSGJ/KObdtlNcSzVfgrl9fBhvdUDOHepSyVG+SkmX4LMqP3DkGl6iUBDiq9FBRFaRgbxEd8G2U7yw== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/mesh" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/mesh-extras@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.7.tgz#e4ab9e4b0cb05606a621cacd6d37d472067c6041" + integrity sha512-txVo2yk935gLgvlwO/ODUuz0wHUZtc9AK0sOQbbD9rh1TUdZ9OYrRvqshItLC34EimmAfgOsyzT78zeUTaP1OA== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/mesh" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/mesh@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.12.tgz#665e83a26c40f12215ff72193a0774c4bdbb605e" + integrity sha512-8ZiGZsZQBWoP1p8t9bSl/AfERb5l3QlwnY9zYVMDydF/UWfN1gKcYO4lKvaXw/HnLi4ZjE+OHoZVmePss9zzaw== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/mesh@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.7.tgz#9de12a6404abdd17fe14c08d2bbe163bdf72bb9a" + integrity sha512-7K5Ba3+t0rBAfZeuQi7nem0DgVH9GNhRvZ8HYbhPs5XVI7yZZhUN4HpUMy7gYEnz8EbXqwUz20X4ham/0O9WsQ== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/mixin-cache-as-bitmap@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.12.tgz#eb2c4aa9ad452593d4c445a2132e4d8d0b02d8ef" + integrity sha512-hPiu8jCQJctN3OVJDgh7jqdtRgyB3qH1BWLM742MOZLjYnbOSamnqmI8snG+tba5yj/WfdjKB+8v0WNwEXlH6w== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/mixin-cache-as-bitmap@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.7.tgz#2a30fc3f552f7a0a51bd0fe5a6e937132a5fff52" + integrity sha512-UEP1PVEEqgWs8vUx/GvOiQ4r130NDLQoD9i5YA1i5BGml2UmNyrFlIh8N9hVAPiIpTIpECkU6nLakP7t6fm9zA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/mixin-get-child-by-name@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.12.tgz#581e305b1f2c75533215704e499975b20e92a708" + integrity sha512-VQv0GMNmfyBfug9pnvN5s/ZMKJ/AXvg+4RULTpwHFtAwlCdZu9IeNb4eviSSAwtOeBAtqk5c0MQSsdOUWOeIkA== + dependencies: + "@pixi/display" "5.3.12" + +"@pixi/mixin-get-child-by-name@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.7.tgz#49c5aa84840bf09e2c089011665407e8c1a3466e" + integrity sha512-KiWirq5HpLKrAsShdZx0+RwNwY6nO5cM+Wqq59n11xTgvUoNULiptZRePQR5rOIsLIcwNtro/2LWPj1UzbJHbg== + dependencies: + "@pixi/display" "5.3.7" + +"@pixi/mixin-get-global-position@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.12.tgz#111261083b4e654361cd7da12cd510b6ff64fded" + integrity sha512-qxsfCC9BsKSjBlMH1Su/AVwsrzY8NHfcut5GkVvm2wa9+ypxFwU5fVsmk6+4a9G7af3iqmOlc9YDymAvbi+e8g== + dependencies: + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + +"@pixi/mixin-get-global-position@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.7.tgz#68c0167054abbac01ecd10275212f5b9afe049bf" + integrity sha512-OIXi+m611GVH1dVAc5YdiMC55Bbjf0JmesiB+6/gMzrjKxW/YDAA5ZRVri75hmRedHA8LPflf+i0pO10mrGP8g== + dependencies: + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + +"@pixi/particles@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.12.tgz#37843e0d865d9ed87dda97f46eb309ffd46e1866" + integrity sha512-SV/gOJBFa4jpsEM90f1bz5EuMMiNAz81mu+lhiUxdQQjZ8y/S4TiK7OAiyc+hUtp97JbJ//6u+4ynGwbhV+WDA== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/particles@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.7.tgz#9f0500b818f20af8e9338fee24c1c33530dfa925" + integrity sha512-mEnBljvBVbKuUJVZ0oH9dP/k7qsHEHUlvfBQgLOSkd6viHlx3PoSPKOYm35+I6fAylkV0Xm9+j5v/IESuip2RQ== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/polyfill@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.12.tgz#5678476f15c33dfd704cff0d216b0cf3ab5267dc" + integrity sha512-qkm8TBIb6m7FmE/Cd/yVagONDlVF5/cWFSSnk4pWA/vt/HLNrXgY9Tx0IXAk6NNK/xc5deGcLPc4iw+DlEhsQw== + dependencies: + es6-promise-polyfill "^1.2.0" + object-assign "^4.1.1" + +"@pixi/polyfill@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.7.tgz#eb43ef1eefc7967bf8d44f704677c19adfdc539c" + integrity sha512-qU23xdb/e4Qvze0TWVy4fNZ0nlABIEZmuLu5nI9SpgfIYtjd2tZo7ngCXU5mZHxW1/xvkAMJEHCsSszotzF9xQ== + dependencies: + es6-promise-polyfill "^1.2.0" + object-assign "^4.1.1" + +"@pixi/prepare@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.12.tgz#68e89aa4102973cde220bc7d965b856d99044f01" + integrity sha512-loZhLzV4riet9MU72WpWIYF6LgbRM78S4soeZOr5SzL1/U5mBneOOmfStaui7dN2GKQKp5GLygDF4dH3FPalnA== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/graphics" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/text" "5.3.12" + "@pixi/ticker" "5.3.12" + +"@pixi/prepare@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.7.tgz#00916a56c61d8349be47937a9b384f3cf90157ca" + integrity sha512-saU+o202vA3U2HVMYvh5aB2RJmP4hR//J22QuRfGen/ukM5mApOroJ445Id2+kSvis0M+UeFUKfBGWDzitr19Q== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/graphics" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/text" "5.3.7" + "@pixi/ticker" "5.3.7" + +"@pixi/runner@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.12.tgz#48a84a574b95478a7c3cff4f5102f7d7f35ebfb1" + integrity sha512-I5mXx4BiP8Bx5CFIXy3XV3ABYFXbIWaY6FxWsNFkySn0KUhizN7SarPdhFGs//hJuC54EH2FsKKNa98Lfc2nCQ== + +"@pixi/runner@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.7.tgz#78ed2c92b392b8c099d2e4557dded7faa921446b" + integrity sha512-kt5apNb21HAvpBaDaPRs33k2O0VzrKe13w4we8iftCpXX8w68ErAY1lH68vmtDNrxnlHg4M9nRgEoMeiHlo2RA== + +"@pixi/settings@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.12.tgz#50675601c5485d15d8896e50cb2b523154c2dae8" + integrity sha512-tLAa8tpDGllgj88NMUQn2Obn9MFJfHNF/CKs8aBhfeZGU4yL4PZDtlI+tqaB1ITGl3xxyHmJK+qfmv5lJn+zyA== + dependencies: + ismobilejs "^1.1.0" + +"@pixi/settings@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.7.tgz#b661883231bf2a1ff5260c214bd0c4b438759841" + integrity sha512-g6AoRSGWxU34gtKSQwX2AMQoLUv86L/5iIXRsqo+X4bfUSCenTci1X7ueVrSIbo39dxh6IOpriZF2Yk3TeHG5w== + dependencies: + ismobilejs "^1.1.0" + +"@pixi/sprite-animated@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.12.tgz#d5e2def777a181bba30b4a8f5931b8a29dc09a16" + integrity sha512-WkGdGRfqboXFzMZ/SM6pCVukYmG2E2IlpcFz7aEeWvKL2Icm4YtaCBpHHDU07vvA6fP6JrstlCx1RyTENtOeGA== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/ticker" "5.3.12" + +"@pixi/sprite-animated@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.7.tgz#94e6d7657cd133a8953e476bd24e18cbfab6a978" + integrity sha512-CSXTSwH/UUcTe5637AD35OCETQO+tDkmlr6e1/eIyUlgOsPkbjo+l134feLZtZudiPHTPyb/YAYIlgPfVr7MGw== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/ticker" "5.3.7" + +"@pixi/sprite-tiling@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.12.tgz#574697334948521dd4228dc2dfb57129233cf2fa" + integrity sha512-5/gtNT46jIo7M69sixqkta1aXVhl4NTwksD9wzqjdZkQG8XPpKmHtXamROY2Fw3R+m+KGgyK8ywAf78tPvxPwg== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/sprite-tiling@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.7.tgz#f4ec4cd205ff7ecebe636062ea27f7a139fb8e22" + integrity sha512-0BMLQGniJF1HvfyrJVe5jC8ayBpTh19dAHJIQWGp8zxxFh/WHjR1b32BN74rDjxQQSjZjV8vBNio8J3W+yDttw== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/sprite@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.12.tgz#0e62a9c074ae288a33fa7c6d18f61db18257e843" + integrity sha512-vticet92RFZ3nDZ6/VDwZ7RANO0jzyXOF/5RuJf0yNVJgBoH4cNix520FfsBWE2ormD+z5t1KEmFeW4e35z2kw== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/sprite@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.7.tgz#c6edf3d4a9928868696b62e35a60ded27d167058" + integrity sha512-Bjl+NOOvigEzUsm1cDr1KmBUpPSWO8pDXpUPTi+v2N75gwRfTycmj5f2TU0QmMW3Gc6sv0CB0AkL7dkMPwPb8g== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/spritesheet@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.12.tgz#78deabea173f2ceb13a58f4be2e0100b7cf239ca" + integrity sha512-0t5HKgLx0uWtENtkW0zVpqvmfoxqMcRAYB7Nwk2lkgZMBPCOFtFF/4Kdp9Sam5X0EBMRGkmIelW3fD6pniSvCw== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/loaders" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/spritesheet@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.7.tgz#826b84c8220ca41c3eba201f453d42394d4da562" + integrity sha512-K1Befbrq3LDbFtnLmbk54QQ/YRk2Mgd+2iOkZx5KsS2pTh1va/GM9FbpO9aZgsEu8Eq76QPxyR8nRqygyMRSuQ== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/loaders" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/text-bitmap@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.12.tgz#c1cbf0b2650775f5059f3eaef2afda557ed6595e" + integrity sha512-tiorA3XdriJKJtUhMDcKX1umE3hGbaNJ/y0ZLuQ0lCvoTLrN9674HtveutoR9KkXWguDHCSk2cY+y3mNAvjPHA== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/loaders" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/mesh" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/text" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/text-bitmap@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.7.tgz#736b489424c6e9c26c2907356e2d70e1ae2cb292" + integrity sha512-LWXgxyMgBAldHA6Swx0irAISCMEyDEcZV7YxBoBpSDnV8ybtZP4fSgtj6vlpnrttKcnXFEcGokOuC3vSdEs39g== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/loaders" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/mesh" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/text" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/text@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.12.tgz#7dc0ded63fa817c4f72ee1537392ee2139ff09a5" + integrity sha512-tvrDVetwVjq1PVDR6jq4umN/Mv/EPHioEOHhyep63yvFIBFv75mDTg2Ye0CPzkmjqwXXvAY+hHpNwuOXTB40xw== + dependencies: + "@pixi/core" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/utils" "5.3.12" + +"@pixi/text@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.7.tgz#cb71b2576bdc1f66fb79977d281f9575dd06d3d5" + integrity sha512-WVAc31MDgHTvP0dJNWsvLVJhjeVGZ3NrLpHcH9iIAd6HVO5Z+i+fk4zvodD+Y7jWU0psx8ZD8xe1wy8ECfbCBA== + dependencies: + "@pixi/core" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/utils" "5.3.7" + +"@pixi/ticker@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.12.tgz#94817565e9899d8e0be746d405e15eb98e8bc14f" + integrity sha512-YNYUj94XgogipYhPOjbdFBIsy7+U6KmolvK+Av1G88GDac5SDoALb1Nt6s23fd8HIz6b4YnabHOdXGz3zPir1Q== + dependencies: + "@pixi/settings" "5.3.12" + +"@pixi/ticker@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.7.tgz#c331b270042d507fe18543ae435a9a857a8fd5ae" + integrity sha512-ZEXiJwPtuPeWa0QmRODF5qK0+ugZu/xeq7QxCvFOCc3NFVBeGms4g92HPucOju9R7jcODIoJxtICALsuwLAr9w== + dependencies: + "@pixi/settings" "5.3.7" + +"@pixi/utils@5.3.12": + version "5.3.12" + resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.12.tgz#15add282a2ee6cc0d931d068caaed2b61eacf149" + integrity sha512-PU/L852YjVbTy/6fDKQtYji6Vqcwi5FZNIjK6JXKuDPF411QfJK3QBaEqJTrexzHlc9Odr0tYECjwtXkCUR02g== + dependencies: + "@pixi/constants" "5.3.12" + "@pixi/settings" "5.3.12" + earcut "^2.1.5" + eventemitter3 "^3.1.0" + url "^0.11.0" + +"@pixi/utils@5.3.7": + version "5.3.7" + resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.7.tgz#55fe2a2fbf0fba842da5a602576ce68c498e7e16" + integrity sha512-f8zAeHHURxfwBr8MZiXEIwY2h9wbS6vN0ypvapGvKFOexZ1EInTs35FhEiRWzLEPLHyn1RgCdKzR2zl++E4tIw== + dependencies: + "@pixi/constants" "5.3.7" + "@pixi/settings" "5.3.7" + earcut "^2.1.5" + eventemitter3 "^3.1.0" + url "^0.11.0" + +"@pkgr/core@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.1.tgz#6d083acfddae21fb329c8df8c94bf895ce7d0c15" + integrity sha512-VzgHzGblFmUeBmmrk55zPyrQIArQN4vujc9shWytaPdB3P7qhi0cpaiKIr7tlCmFv2lYUwnLospIqjL9ZSAhhg== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@tensorflow-models/coco-ssd@^2.0.1": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@tensorflow-models/coco-ssd/-/coco-ssd-2.2.3.tgz#3825286569076d6788199c9cb89fb2fa31f7d2f2" + integrity sha512-iCLGktG/XhHbP6h2FWxqCKMp/Px0lCp6MZU1fjNhjDHeaWEC9G7S7cZrnPXsfH+NewCM53YShlrHnknxU3SQig== + +"@tensorflow-models/posenet@^2.2.1": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@tensorflow-models/posenet/-/posenet-2.2.2.tgz#2abcfa33b43892135d232c9c4408a38cc8f74ba6" + integrity sha512-0SXIksRet/IdX7WVH+JSD6W3upkGHix1hwtd3xykIoIMGR7zQ4SC5+wZcNt9ofASyxNYQoI+tUULUo4LNw0c3w== + +"@tensorflow/tfjs-converter@1.7.4", "@tensorflow/tfjs-converter@^1.7.0": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-1.7.4.tgz#90838fe9ca2d540f22a65fdcbe2311a01e786380" + integrity sha512-B/Ux9I3osI0CXoESGR0Xe5C6BsEfC04+g2xn5zVaW9KEuVEnGEgnuBQxgijRFzkqTwoyLv4ptAmjyIghVARX0Q== + +"@tensorflow/tfjs-core@1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-1.7.0.tgz#9207c8f2481c52a6a40135a6aaf21a9bb0339bdf" + integrity sha512-uwQdiklNjqBnHPeseOdG0sGxrI3+d6lybaKu2+ou3ajVeKdPEwpWbgqA6iHjq1iylnOGkgkbbnQ6r2lwkiIIHw== + dependencies: + "@types/offscreencanvas" "~2019.3.0" + "@types/seedrandom" "2.4.27" + "@types/webgl-ext" "0.0.30" + "@types/webgl2" "0.0.4" + node-fetch "~2.1.2" + seedrandom "2.4.3" + +"@tensorflow/tfjs-core@1.7.4", "@tensorflow/tfjs-core@^1.7.0": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-1.7.4.tgz#43a44bc01d46de98ee9f15c0b2a4d9af4723e7ea" + integrity sha512-3G4VKJ6nPs7iCt6gs3bjRj8chihKrYWenf63R0pm7D9MhlrVoX/tpN4LYVMGgBL7jHPxMLKdOkoAZJrn/J88HQ== + dependencies: + "@types/offscreencanvas" "~2019.3.0" + "@types/seedrandom" "2.4.27" + "@types/webgl-ext" "0.0.30" + "@types/webgl2" "0.0.4" + node-fetch "~2.1.2" + seedrandom "2.4.3" + +"@tensorflow/tfjs-data@1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-1.7.4.tgz#3aa1cb14ac48a0354acd21d08f177c8a262fbb32" + integrity sha512-WFYG9wWjNDi62x6o3O20Q0XJxToCw2J4/fBEXiK/Gr0hIqVhl2oLQ1OjTWq7O08NUxM6BRzuG+ra3gWYdQUzOw== + dependencies: + "@types/node-fetch" "^2.1.2" + node-fetch "~2.1.2" + +"@tensorflow/tfjs-layers@1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-1.7.4.tgz#93cdef70a4f414edb4ee470c49415d216f54ba20" + integrity sha512-5/K8Z8RBfXsucL6EaSeb3/8jB/I8oPaaXkxwKVsBPQ+u6lB6LEtSKzeiFc57nDr5OMtVaUZV+pKDNEzP0RUQlg== + +"@tensorflow/tfjs@^1.7.0": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-1.7.4.tgz#ea5483bc4b34f5a4c66d600e456c25b6071ea75e" + integrity sha512-XWGwRQ/ECEoQacd74JY/dmbLdnMpwtq3H8tls45dQ+GJ553Advir1FDo/aQt0Yr6fTimQDeiOIG4Mcb5KduP/w== + dependencies: + "@tensorflow/tfjs-converter" "1.7.4" + "@tensorflow/tfjs-core" "1.7.4" + "@tensorflow/tfjs-data" "1.7.4" + "@tensorflow/tfjs-layers" "1.7.4" + +"@types/babel__core@^7.1.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" + integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== + dependencies: + "@babel/types" "^7.20.7" + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/createjs-lib@*": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/createjs-lib/-/createjs-lib-0.0.33.tgz#03b0d67f6ae33a4e3239ef2184ccbb4fe4a91844" + integrity sha512-mvK1sn2qSyGPwctg/MsjAP5m3/TBx83eB0hcEdZ6UqpuzQqCUWpVyyQddqkbAsKRpMECK0s7JosYXoTtIuNbhw== + +"@types/createjs@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/createjs/-/createjs-0.0.29.tgz#4d19b0feaa38252dcd79d78a38a4cc6df3f181fc" + integrity sha512-bDZJTAEoGZw12zjXHLrcQHz0tuyv+MMlFh9tLm7DWZfF33biqWaXQgk4g7pMvploRu42sbH4XkXVJ7Wz9O1sCg== + dependencies: + "@types/createjs-lib" "*" + "@types/easeljs" "*" + "@types/preloadjs" "*" + "@types/soundjs" "*" + "@types/tweenjs" "*" + +"@types/crypto-js@^4.0.1": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@types/crypto-js/-/crypto-js-4.2.2.tgz#771c4a768d94eb5922cc202a3009558204df0cea" + integrity sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ== + +"@types/easeljs@*": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/easeljs/-/easeljs-1.0.5.tgz#f6641c3bd496fb892b90f9bd5f81a77fb4733932" + integrity sha512-YRWGkZdq4trhJhieE0NdLTbOp5zT5yunPJKNqQJWq/X8y7qlmGeQB8hPnQHzMbW9iY38ZV91oXgW7V3U5VY2uw== + dependencies: + "@types/createjs-lib" "*" + "@types/tweenjs" "*" + +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.6": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" + integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz#41fec4ea20e9c7b22f024ab88a95c6bb288f51b8" + integrity sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express-serve-static-core@^4.17.33": + version "4.19.6" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" + integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.1.tgz#138d741c6e5db8cc273bec5285cd6e9d0779fc9f" + integrity sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^5.0.0" + "@types/serve-static" "*" + +"@types/express@^4.17.13": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/hammerjs@^2.0.41": + version "2.0.46" + resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.46.tgz#381daaca1360ff8a7c8dff63f32e69745b9fb1e1" + integrity sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw== + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.8": + version "1.17.16" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.16.tgz#dee360707b35b3cc85afcde89ffeebff7d7f9240" + integrity sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w== + dependencies: + "@types/node" "*" + +"@types/isomorphic-fetch@^0.0.35": + version "0.0.35" + resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz#c1c0d402daac324582b6186b91f8905340ea3361" + integrity sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/jquery@^3.3.38": + version "3.5.32" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.32.tgz#3eb0da20611b92c7c49ebed6163b52a4fdc57def" + integrity sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ== + dependencies: + "@types/sizzle" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/lodash@^4.14.155": + version "4.17.16" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.16.tgz#94ae78fab4a38d73086e962d0b65c30d816bfb0a" + integrity sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/node-fetch@^2.1.2": + version "2.6.12" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03" + integrity sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA== + dependencies: + "@types/node" "*" + form-data "^4.0.0" + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "22.14.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.14.0.tgz#d3bfa3936fef0dbacd79ea3eb17d521c628bb47e" + integrity sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA== + dependencies: + undici-types "~6.21.0" + +"@types/node@^14.0.11": + version "14.18.63" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" + integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== + +"@types/offscreencanvas@~2019.3.0": + version "2019.3.0" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" + integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q== + +"@types/pixi.js@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/pixi.js/-/pixi.js-5.0.0.tgz#3fbd6d9d26cb563a0f2870e0ea767bc62dddf1b8" + integrity sha512-yZqQBR043lRBlBZci2cx6hgmX0fvBfYIqFm6VThlnueXEjitxd3coy+BGsqsZ7+ary7O//+ks4aJRhC5MJoHqA== + dependencies: + pixi.js "*" + +"@types/preloadjs@*": + version "0.6.36" + resolved "https://registry.yarnpkg.com/@types/preloadjs/-/preloadjs-0.6.36.tgz#9e40f988dce9b1d5a71d4a9d145d3f60e813cdf6" + integrity sha512-/Xo6BRCkvZiw0VXHszRQJnnTHyfkISPD5DiMj0JDrmQWiw104BxoijjeIlZ0umQxXEUb+gWLZsdZbuEhmP5vsw== + dependencies: + "@types/createjs-lib" "*" + +"@types/q@^1.5.1": + version "1.5.8" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== + +"@types/qs@*": + version "6.9.18" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.18.tgz#877292caa91f7c1b213032b34626505b746624c2" + integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/seedrandom@2.4.27": + version "2.4.27" + resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.27.tgz#9db563937dd86915f69092bc43259d2f48578e41" + integrity sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ== + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.1": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sizzle@*": + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.9.tgz#d4597dbd4618264c414d7429363e3f50acb66ea2" + integrity sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w== + +"@types/socket.io-client@^1.4.33": + version "1.4.36" + resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.36.tgz#e4f1ca065f84c20939e9850e70222202bd76ff3f" + integrity sha512-ZJWjtFBeBy1kRSYpVbeGYTElf6BqPQUkXDlHHD4k/42byCN5Rh027f4yARHCink9sKAkbtGZXEAmR0ZCnc2/Ag== + +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/soundjs@*": + version "0.6.31" + resolved "https://registry.yarnpkg.com/@types/soundjs/-/soundjs-0.6.31.tgz#ca55cf777830efb55fa752191ec1ef9ca0fcd69d" + integrity sha512-5bditJi7P1YbRIRa1UFxIr+8vKJYEc6nTZb5NL0647rWGqGf8Ih4GD+0aDWteWIG17EXPw+VTOQE/8LHitnn4A== + dependencies: + "@types/createjs-lib" "*" + "@types/preloadjs" "*" + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/tweenjs@*": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tweenjs/-/tweenjs-1.0.8.tgz#800748b468a36ceb16e58a268dba3c370dd023f2" + integrity sha512-/HTVWu8c+AUJFK9P6b3LRzfodAYwDogtQKoH3ovZmnOY4aNJf+k3VqPx+D+AsLZP06AmoSLzqu9n/E5XCglCZw== + dependencies: + "@types/createjs-lib" "*" + +"@types/w3c-web-usb@^1.0.8": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz#cf89cccd2d93b6245e784c19afe0a9f5038d4528" + integrity sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ== + +"@types/web-bluetooth@^0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz#74bd1c8fd3a2058cb6fc76b188fcded50a83d866" + integrity sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw== + +"@types/webgl-ext@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" + integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== + +"@types/webgl2@0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.4.tgz#c3b0f9d6b465c66138e84e64cb3bdf8373c2c279" + integrity sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw== + +"@types/webpack-env@^1.15.2": + version "1.18.8" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.18.8.tgz#71f083718c094204d7b64443701d32f1db3989e3" + integrity sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A== + +"@types/ws@^8.5.5": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^13.0.0": + version "13.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" + integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/experimental-utils@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" + integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^3.1.0": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" + integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "3.10.1" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/parser@^6.7.5": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== + dependencies: + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + +"@typescript-eslint/types@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== + +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== + +"@typescript-eslint/typescript-estree@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== + dependencies: + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/visitor-keys" "3.10.1" + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/visitor-keys@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== + dependencies: + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== + dependencies: + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== + +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== + +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== + +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== + +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" + +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" + integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== + +"@webpack-cli/info@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" + integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== + +"@webpack-cli/serve@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" + integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== + +"@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== + +abab@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +accepts@~1.3.4, 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@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +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@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^5.5.3: + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + +acorn@^6.0.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.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.14.0, acorn@^8.8.2, acorn@^8.9.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" + integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA== + +ajv-errors@^1.0.0: + 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-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.1.0, 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-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + 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.0, ajv@^8.0.1, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +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-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +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.0.0, 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.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +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== + +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.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +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== + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +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 sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== + dependencies: + call-bound "^1.0.3" + is-array-buffer "^3.0.5" + +array-equal@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.2.tgz#a8572e64e822358271250b9156d20d96ef5dec04" + integrity sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA== + +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-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-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.reduce@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz#42f97f5078daedca687d4463fd3c05cbfd83da57" + integrity sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-array-method-boxes-properly "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + is-string "^1.1.1" + +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + is-array-buffer "^3.0.4" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +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 sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + +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-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" + integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.4.1, 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 sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +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== + +audiobuffer-to-wav@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/audiobuffer-to-wav/-/audiobuffer-to-wav-1.0.0.tgz#d5b432271455e7fee56b111cd0f8d620d7f9e105" + integrity sha512-CAoir4NRrAzAgYo20tEMiKZR84coE8bq/L+H2kwAaULVY4+0xySsEVtNT5raqpzmH6y0pqzY6EmoViLd9W8F/w== + +autoprefixer@^9.4.3: + 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" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.13.2" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef" + integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== + +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== + dependencies: + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.9.0" + chalk "^2.4.2" + slash "^2.0.0" + +babel-loader@^8.0.6: + version "8.4.1" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.4.1.tgz#6ccb75c66e62c3b144e1c5f2eaec5b8f6c08c675" + integrity sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.4" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.0: + 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@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" + integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + find-up "^3.0.0" + istanbul-lib-instrument "^3.3.0" + test-exclude "^5.2.3" + +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== + dependencies: + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.13" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" + integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.4" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" + integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.3" + core-js-compat "^3.40.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" + integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.4" + +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== + dependencies: + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.9.0" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== + +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== + +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg== + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g== + +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@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + integrity sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw== + +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" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ== + dependencies: + callsite "1.0.0" + +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@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +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" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird@^3.3.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.20.3, body-parser@^1.16.1: + version "1.20.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + 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.13.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +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 sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +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" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^2.3.1: + 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.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +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-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.24.0, browserslist@^4.24.4: + version "4.24.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== + dependencies: + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" + update-browserslist-db "^1.1.1" + +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-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + +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@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +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" + +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.7, call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.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" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ== + +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== + +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@^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== + +can-use-dom@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" + integrity sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001688: + version "1.0.30001712" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001712.tgz#41ee150f12de11b5f57c5889d4f30deb451deedf" + integrity sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig== + +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 sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chai@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + integrity sha512-eRYY0vPS2a9zt5w5Z0aCeWbrXTEyvk7u/Xf71EzNObrjSCPgMm1Nku/D/u2tiqHBX5j40wWhj54YJLtgn8g55A== + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^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.1, 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: + 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" + +chokidar@^3.0.0, chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + 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" + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +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== + +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" + +clean-css@^5.2.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + +clean-webpack-plugin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-1.0.1.tgz#b16ee2f1386aea403010236e632447c7d3505f5a" + integrity sha512-gvwfMsqu3HBgTVvaBa1H3AZKO03CHpr5uP92SPIktP3827EovAitwW+1xoqXyTxCuXnLYpMHG5ytS4AoukHDWA== + dependencies: + rimraf "^2.6.1" + +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" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +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" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + 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 sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, 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== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +colors@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +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@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +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@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-tags@^1.4.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +complex.js@^2.0.11: + version "2.4.2" + resolved "https://registry.yarnpkg.com/complex.js/-/complex.js-2.4.2.tgz#76f260a9e7e232d8ad26348484a9b128c13fcc9a" + integrity sha512-qtx7HRhPGSCBtGiST4/WGHuW+zeaND/6Ld+db6PbrulIB1i2Ev/2UPiqcmpQNPSyfBKraC0EOvOKCB5dGZKt3g== + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw== + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA== + +component-emitter@^1.2.1, component-emitter@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA== + +compressible@~2.0.18: + 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.4: + version "1.8.0" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.0.tgz#09420efc96e11a0f44f3a558de59e321364180f7" + integrity sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA== + dependencies: + bytes "3.1.2" + compressible "~2.0.18" + debug "2.6.9" + negotiator "~0.6.4" + on-headers "~1.0.2" + safe-buffer "5.2.1" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +connect@^3.6.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +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, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.4.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +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.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw== + +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== + +copy-anything@^2.0.1: + version "2.0.6" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" + integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== + dependencies: + is-what "^3.14.1" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +core-js-compat@^3.40.0: + version "3.41.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" + integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== + dependencies: + browserslist "^4.24.4" + +core-js@^2.6.2: + 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.6.4: + version "3.41.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.41.0.tgz#57714dafb8c751a6095d028a7428f1fb5834a776" + integrity sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA== + +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 sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +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== + +cosmiconfig@^5.0.0: + 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" + +cross-env@^5.1.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" + integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ== + dependencies: + cross-spawn "^6.0.5" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.6.tgz#30d0efa0712ddb7eb5a76e1e8721bffafa6b5d57" + integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== + 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.2, cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-js@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@^3.2.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" + +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.1.3: + 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== + +cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.3" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.8" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +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.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +cuid@^2.1.6: + version "2.1.8" + resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.8.tgz#cbb88f954171e0d5747606c0139fb65c5101eac0" + integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg== + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +date-format@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" + integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: + 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.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^3.2.6: + 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" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decimal.js@^10.2.1: + version "10.5.0" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22" + integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw== + +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + integrity sha512-6sEotTRGBFiNcqVoeHwnfopbSpi5NbH1VWJmYCVkmxMmaVTT0bUTrNaGyBwhgP4MZL012W/mkzIn3Da+iDYweg== + dependencies: + type-detect "0.1.1" + +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== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + 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 sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + 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 sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + 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" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +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== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +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-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== + +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +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" + +dlv@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +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" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +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: + 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" + +domelementtype@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@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +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.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" + +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" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +earcut@^2.1.5: + version "2.2.4" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" + integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +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.5.73: + version "1.5.132" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.132.tgz#081b8086d7cecc58732f7cc1f1c19306c5510c5f" + integrity sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg== + +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== + +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== + +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +encoding@^0.1.11: + 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.1.0: + 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@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" + integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-client@~3.5.0: + version "3.5.4" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.4.tgz#5b40d7381772ba05c0881be5735a318424a07fc6" + integrity sha512-ydc8uuMMDxC5KCKNJN3zZKYJk2sgyTuTZQ7Aj1DJSsLKAcizA/PzWivw8fZMIjJVBo2CJOYzntv4FSjY/Lr//g== + dependencies: + component-emitter "~1.3.0" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.5.10" + xmlhttprequest-ssl "~1.6.2" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io-parser@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.4" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" + integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.1: + version "5.18.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + +ent@~2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.2.tgz#22a5ed2fd7ce0cbcff1d1474cf4909a44bdb6e85" + integrity sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + punycode "^1.4.1" + safe-regex-test "^1.1.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +envinfo@^7.7.3: + version "7.14.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" + integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== + +errno@^0.1.1: + 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.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" + +es-abstract@^1.17.2, es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9: + version "1.23.9" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.9.tgz#5b45994b7de78dada5c1bebf1379646b32b9d606" + integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.2.7" + get-proto "^1.0.0" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" + is-callable "^1.2.7" + is-data-view "^1.0.2" + is-regex "^1.2.1" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.0" + math-intrinsics "^1.1.0" + object-inspect "^1.13.3" + object-keys "^1.1.1" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.3" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.18" + +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-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" + integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +es-to-primitive@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== + dependencies: + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" + +es6-promise-polyfill@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz#f38925f23cb3e3e8ce6cda8ff774fcebbb090cde" + integrity sha512-HHb0vydCpoclpd0ySPkRXMmBw80MRt1wM4RBJBlXkux97K7gleabZdsR0gvE1nNPM9mgOZIBTzjjXiPxf4lIqQ== + +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +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-latex@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1" + integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== + +escape-string-regexp@1.0.5, 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 sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +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@^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.9.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" + +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + +eslint-loader@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" + integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== + dependencies: + find-cache-dir "^3.3.1" + fs-extra "^8.1.0" + loader-utils "^2.0.0" + object-hash "^2.0.3" + schema-utils "^2.6.5" + +eslint-plugin-prettier@^5.1.3: + version "5.2.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz#be39e3bb23bb3eeb7e7df0927cdb46e4d7945096" + integrity sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.11.0" + +eslint-rule-composer@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== + +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== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.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-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, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@7.32.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.7.0: + version "8.57.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" + integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.1" + "@humanwhocodes/config-array" "^0.13.0" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + 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.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + 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.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + 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.3" + strip-ansi "^6.0.1" + text-table "^0.2.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.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +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, esquery@^1.4.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.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.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: + version "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: + 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== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +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@^3.0.0, events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +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@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + 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" + +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== + dependencies: + "@jest/types" "^24.9.0" + ansi-styles "^3.2.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" + +express@^4.17.3: + version "4.21.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" + integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.3" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.7.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.3.1" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.3" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.12" + proxy-addr "~2.0.7" + qs "6.13.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.19.0" + serve-static "1.16.2" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + 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 sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + 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== + +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-text-webpack-plugin@^4.0.0-beta.0: + version "4.0.0-beta.0" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz#f7361d7ff430b42961f8d1321ba8c1757b5d4c42" + integrity sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA== + dependencies: + async "^2.4.1" + loader-utils "^1.1.0" + schema-utils "^0.4.5" + webpack-sources "^1.1.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +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== + +face-api.js@^0.22.1: + version "0.22.2" + resolved "https://registry.yarnpkg.com/face-api.js/-/face-api.js-0.22.2.tgz#5accbf7e53b1569685d116a7e18dbc4800770d39" + integrity sha512-9Bbv/yaBRTKCXjiDqzryeKhYxmgSjJ7ukvOvEBy6krA0Ah/vNBlsf7iBNfJljWiPA8Tys1/MnB3lyP2Hfmsuyw== + dependencies: + "@tensorflow/tfjs-core" "1.7.0" + tslib "^1.11.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.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9: + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== + 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.8" + +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 sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-uri@^3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" + integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.19.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.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@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== + dependencies: + loader-utils "^1.2.3" + schema-utils "^2.5.0" + +file-saver@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" + integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== + +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== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + 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.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== + dependencies: + debug "2.6.9" + encodeurl "~2.0.0" + 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@^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-up@3.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: + 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" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== + dependencies: + is-buffer "~2.0.3" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +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.2.9: + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== + +follow-redirects@^1.0.0: + version "1.15.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + +fontfaceonload@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fontfaceonload/-/fontfaceonload-1.0.2.tgz#b783b4d252ab559a073b697586c49cd21c8ff5e7" + integrity sha512-OsgQJ62yiUO8w9MvwfhWjS3AMzJnaG2HB8PhaLwxAbFb+CahxZueiz1jBfV/JqIdGxLpZB7prCB3+IsgsDQqCA== + +for-each@^0.3.3, for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== + dependencies: + is-callable "^1.2.7" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" + integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + 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.0.12: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + 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== + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +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.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.1, function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" + +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 sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +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-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.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.0, get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.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@^6.0.0: + 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.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + +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 sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.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.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== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + 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.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: + 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" + +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@^13.19.0, globals@^13.6.0, globals@^13.9.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +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" + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== + +hammerjs@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" + integrity sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +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" + +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.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +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, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" + +has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + 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 sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + 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 sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== + +hasown@^2.0.0, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@1.2.0, he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +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== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^2.3.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" + integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== + +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-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-webpack-plugin@^5.5.3: + version "5.6.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz#a31145f0fee4184d53a794f9513147df1e653685" + integrity sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +html-webpack-template@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/html-webpack-template/-/html-webpack-template-6.2.0.tgz#3c9f15f616f4500927909d34adfbccb20d37943c" + integrity sha512-wyzIjbe9yXGyQ6yAeFjWmku7YOlW85w1dxqLnAQ564uRNNoBhpZVTQl7ouROoyQrfZUSoPUJiw7oWn31NDiuQQ== + +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-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +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-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.9" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.9.tgz#b817b3ca0edea6236225000d795378707c169cec" + integrity sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw== + +http-proxy-middleware@^2.0.3: + version "2.0.7" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6" + integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.13.0, 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 sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +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@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +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.2.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== + dependencies: + import-from "^2.1.0" + +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.2.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== + dependencies: + resolve-from "^3.0.0" + +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.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + 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 sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +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== + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + 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.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.2" + side-channel "^1.1.0" + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +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== + +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== + +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== + dependencies: + hasown "^2.0.0" + +is-any-array@^2.0.0, is-any-array@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-any-array/-/is-any-array-2.0.1.tgz#9233242a9c098220290aa2ec28f82ca7fa79899e" + integrity sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ== + +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-async-function@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" + integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== + dependencies: + async-function "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== + dependencies: + has-bigints "^1.0.2" + +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.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +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.3: + 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.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +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-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" + +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== + dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + is-typed-array "^1.1.13" + +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + +is-descriptor@^0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +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, is-docker@^2.1.1: + 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 sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +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.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== + dependencies: + call-bound "^1.0.3" + +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 sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +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-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.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" + integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== + dependencies: + call-bound "^1.0.3" + get-proto "^1.0.0" + has-tostringtag "^1.0.2" + safe-regex-test "^1.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-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + 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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +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== + +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.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-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== + dependencies: + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== + dependencies: + call-bound "^1.0.3" + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +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-string@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== + dependencies: + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" + +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== + dependencies: + which-typed-array "^1.1.16" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2, is-weakref@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== + dependencies: + call-bound "^1.0.3" + +is-weakset@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== + dependencies: + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-what@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" + integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== + +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-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== + +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: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ== + +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== + +isbinaryfile@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +ismobilejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" + integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + 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 sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-fetch@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA== + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== + +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" + semver "^6.0.0" + +istanbul-lib-report@^2.0.4: + version "2.0.8" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== + dependencies: + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + supports-color "^6.1.0" + +istanbul-lib-source-maps@^3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^2.0.5" + make-dir "^2.1.0" + rimraf "^2.6.3" + source-map "^0.6.1" + +istanbul-reports@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" + integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== + dependencies: + html-escaper "^2.0.0" + +javascript-natural-sort@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" + integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== + +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== + dependencies: + "@jest/types" "^24.9.0" + execa "^1.0.0" + throat "^4.0.0" + +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== + dependencies: + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + exit "^0.1.2" + import-local "^2.0.0" + is-ci "^2.0.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + prompts "^2.0.1" + realpath-native "^1.1.0" + yargs "^13.3.0" + +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + micromatch "^3.1.10" + pretty-format "^24.9.0" + realpath-native "^1.1.0" + +jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== + dependencies: + chalk "^2.0.1" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-docblock@^24.3.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== + dependencies: + detect-newline "^2.1.0" + +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== + dependencies: + "@jest/types" "^24.9.0" + chalk "^2.0.1" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + jsdom "^11.5.1" + +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" + +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== + +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== + dependencies: + "@jest/types" "^24.9.0" + anymatch "^2.0.0" + fb-watchman "^2.0.0" + graceful-fs "^4.1.15" + invariant "^2.2.4" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" + micromatch "^3.1.10" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" + +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^24.9.0" + is-generator-fn "^2.0.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + throat "^4.0.0" + +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== + dependencies: + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== + dependencies: + chalk "^2.0.1" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/stack-utils" "^1.0.1" + chalk "^2.0.1" + micromatch "^3.1.10" + slash "^2.0.0" + stack-utils "^1.0.1" + +jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== + dependencies: + "@jest/types" "^24.9.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== + +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== + dependencies: + "@jest/types" "^24.9.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.9.0" + +jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== + dependencies: + "@jest/types" "^24.9.0" + browser-resolve "^1.11.3" + chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + chalk "^2.4.2" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-docblock "^24.3.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== + dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.1.15" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + realpath-native "^1.1.0" + slash "^2.0.0" + strip-bom "^3.0.0" + yargs "^13.3.0" + +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== + +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^24.9.0" + chalk "^2.0.1" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^24.9.0" + semver "^6.2.0" + +jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== + dependencies: + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + callsites "^3.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.15" + is-ci "^2.0.0" + mkdirp "^0.5.1" + slash "^2.0.0" + source-map "^0.6.0" + +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== + dependencies: + "@jest/types" "^24.9.0" + camelcase "^5.3.1" + chalk "^2.0.1" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + jest-util "^24.9.0" + string-length "^2.0.0" + +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== + dependencies: + import-local "^2.0.0" + jest-cli "^24.9.0" + +"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.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" + +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.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" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1: + 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.1: + 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 sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +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 sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +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" + +karma-chai@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/karma-chai/-/karma-chai-0.1.0.tgz#bee5ad40400517811ae34bb945f762909108b79a" + integrity sha512-mqKCkHwzPMhgTYca10S90aCEX9+HjVjjrBFAsw36Zj7BlQNbokXXCAe6Ji04VUMsxcY5RLP7YphpfO06XOubdg== + +karma-chrome-launcher@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" + integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== + dependencies: + which "^1.2.1" + +karma-mocha@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" + integrity sha512-twRO+KCXIFOBs7o6i7oIpTJhVvjKZbIsUM96A+k2QaeXOzbVQXCkjVzXqNeQoczW4ruasPZYi0iWMTkfTrQVCw== + dependencies: + minimist "1.2.0" + +karma@^4.2.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" + integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + braces "^3.0.2" + chokidar "^3.0.0" + colors "^1.1.0" + connect "^3.6.0" + di "^0.0.1" + dom-serialize "^2.2.0" + flatted "^2.0.0" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^4.17.14" + log4js "^4.0.0" + mime "^2.3.1" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "2.1.1" + source-map "^0.6.1" + tmp "0.0.33" + useragent "2.3.0" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +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 sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + 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 sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.2: + 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== + +launch-editor@^2.6.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.10.0.tgz#5ca3edfcb9667df1e8721310f3a40f1127d4bc42" + integrity sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +less-loader@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" + integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^4.0.1" + +less@^3.10.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" + integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== + dependencies: + copy-anything "^2.0.1" + tslib "^1.10.0" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + make-dir "^2.1.0" + mime "^1.4.1" + native-request "^1.0.5" + source-map "~0.6.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== + +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" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +libsvm-js@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/libsvm-js/-/libsvm-js-0.2.1.tgz#607a0b073fb0a635546ca5b93b7205282051a877" + integrity sha512-tN9gh91NCAwSIhjgG3y8pdKETTwnwFvvSFNIrQQuJGVtAu0SO6Y43D7OEKMSVhQLQkgLADlDaqo9uxNGVEzJEA== + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-runner@^4.2.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: + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0, loader-utils@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +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 sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.0, 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.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log4js@^4.0.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" + integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== + dependencies: + date-format "^2.0.0" + debug "^4.1.1" + flatted "^2.0.0" + rfdc "^1.1.4" + streamroller "^1.0.6" + +loglevel-colored-level-prefix@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" + integrity sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA== + dependencies: + chalk "^1.1.3" + loglevel "^1.4.1" + +loglevel@^1.4.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.2.tgz#c2e028d6c757720107df4e64508530db6621ba08" + integrity sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg== + +loose-envify@^1.0.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" + +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.1.x: + 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" + +make-dir@^2.1.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.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" + +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-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mathjs@^7.1.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-7.6.0.tgz#f0b7579e0756b13422995d0c4f29bd17d65d4dcc" + integrity sha512-abywR28hUpKF4at5jE8Ys+Kigk40eKMT5mcBLD0/dtsqjfOLbtzd3WjlRqIopNo7oQ6FME51qph6lb8h/bhpUg== + dependencies: + complex.js "^2.0.11" + decimal.js "^10.2.1" + escape-latex "^1.2.0" + fraction.js "^4.0.12" + javascript-natural-sort "^0.7.1" + seed-random "^2.2.0" + tiny-emitter "^2.1.0" + typed-function "^2.0.0" + +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== + +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== + +memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== + +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: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +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== + +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.0, micromatch@^4.0.2, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +"mime-db@>= 1.43.0 < 2": + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, 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, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3, mime@^2.3.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +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== + +mini-css-extract-plugin@^2.7.6: + version "2.9.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" + integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +mini-signals@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mini-signals/-/mini-signals-1.2.0.tgz#45b08013c5fae51a24aa1a935cd317c9ed721d74" + integrity sha512-alffqMkGCjjTSwvYMVLx+7QeJ6sTuxbXqBkP21my4iWU5+QpTQAJt3h7htA1OKm9F3BpMM0vnu72QIoiJakrLA== + +minimalistic-assert@^1.0.0: + 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== + +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@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +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== + dependencies: + brace-expansion "^1.1.7" + +minimist@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw== + +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" + +mkdirp@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== + dependencies: + minimist "^1.2.5" + +mkdirp@^0.5.1, 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" + +ml-array-max@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/ml-array-max/-/ml-array-max-1.2.4.tgz#2373e2b7e51c8807e456cc0ef364c5863713623b" + integrity sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ== + dependencies: + is-any-array "^2.0.0" + +ml-array-mean@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ml-array-mean/-/ml-array-mean-1.1.6.tgz#d951a700dc8e3a17b3e0a583c2c64abd0c619c56" + integrity sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ== + dependencies: + ml-array-sum "^1.1.6" + +ml-array-min@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/ml-array-min/-/ml-array-min-1.2.3.tgz#662f027c400105816b849cc3cd786915d0801495" + integrity sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q== + dependencies: + is-any-array "^2.0.0" + +ml-array-rescale@^1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz#c4d129320d113a732e62dd963dc1695bba9a5340" + integrity sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ== + dependencies: + is-any-array "^2.0.0" + ml-array-max "^1.2.4" + ml-array-min "^1.2.3" + +ml-array-sum@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ml-array-sum/-/ml-array-sum-1.1.6.tgz#d1d89c20793cd29c37b09d40e85681aa4515a955" + integrity sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw== + dependencies: + is-any-array "^2.0.0" + +ml-cart@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ml-cart/-/ml-cart-2.1.1.tgz#18ff8d51f5002cb6c5caba0609ba4734f1fa07f3" + integrity sha512-f6rIj4EzbjqKLJa2Qmm5AjZ0WVgk+Y7J1N/+pQVaFr0d4oM1uZPLOh5h665LyH+bLBHTFEbvSR4OLKmJRQ8KfA== + dependencies: + ml-array-mean "^1.1.5" + ml-matrix "^6.8.2" + +ml-matrix@^6.8.2: + version "6.12.1" + resolved "https://registry.yarnpkg.com/ml-matrix/-/ml-matrix-6.12.1.tgz#8fc99365f7294d27076f0ce405b589e1c04ca1b0" + integrity sha512-TJ+8eOFdp+INvzR4zAuwBQJznDUfktMtOB6g/hUcGh3rcyjxbz4Te57Pgri8Q9bhSQ7Zys4IYOGhFdnlgeB6Lw== + dependencies: + is-any-array "^2.0.1" + ml-array-rescale "^1.3.7" + +mocha@^6.2.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" + integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== + dependencies: + ansi-colors "3.2.3" + browser-stdout "1.3.1" + debug "3.2.6" + diff "3.5.0" + escape-string-regexp "1.0.5" + find-up "3.0.0" + glob "7.1.3" + growl "1.10.5" + he "1.2.0" + js-yaml "3.13.1" + log-symbols "2.2.0" + minimatch "3.0.4" + mkdirp "0.5.4" + ms "2.1.1" + node-environment-flags "1.0.5" + object.assign "4.1.0" + strip-json-comments "2.0.1" + supports-color "6.0.0" + which "1.3.1" + wide-align "1.1.3" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "1.6.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +nan@^2.12.1: + version "2.22.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.22.2.tgz#6b504fd029fb8f38c0990e52ad5c26772fdacfbb" + integrity sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ== + +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" + +native-request@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.2.tgz#b677952757429db6cd41972a29c3b781977413ed" + integrity sha512-/etjwrK0J4Ebbcnt35VMWnfiUX/B04uwGJxyJInagxDqf2z5drSt/lsOvEMWGYunz1kaLZAFrV4NDAbOoDKvAQ== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +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== + +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +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== + +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== + +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-environment-flags@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" + integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== + dependencies: + object.getownpropertydescriptors "^2.0.3" + semver "^5.7.0" + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-fetch@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" + integrity sha512-IHLHYskTc2arMYsHZH82PVX8CSKT5lzb7AXeyO06QnjGDKtkv+pv3mEki6S7reB/x1QPo+YPxQRNEVgR5V/w3Q== + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-notifier@^5.4.2: + version "5.4.5" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.5.tgz#0cbc1a2b0f658493b4025775a13ad938e96091ef" + integrity sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ== + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + +normalize-package-data@^2.3.2: + 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-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + 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" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +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 sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.1: + 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" + +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.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + 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 sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== + +nwsapi@^2.0.7: + version "2.2.20" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.20.tgz#22e53253c61e7b0e7e93cef42c891154bcca11ef" + integrity sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA== + +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.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA== + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +object-keys@^1.0.11, 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 sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.assign@^4.1.0, object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" + integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== + dependencies: + array.prototype.reduce "^1.0.6" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + gopd "^1.0.1" + safe-array-concat "^1.1.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +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-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + 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== + +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 sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + 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" + +open@^8.0.9: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g== + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1: + 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, optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + 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.5" + +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== + +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + +p-each-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + integrity sha512-J/e9xiZZQNrt+958FFzJ+auItsBGq+UrQ7nE89AUP7UOTtjHnkISANXLdayhVzh538UnLMCSlf13lFfRIAKQOA== + dependencies: + p-reduce "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +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@^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-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ== + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +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== + +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" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.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-uri@^1.0.0: + version "1.0.11" + resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.11.tgz#3ce39a3102dfe548cc693a914a01a36135063490" + integrity sha512-nQQNb6GJinexGecJEbfKJdoQ9mbwAHDbYUIDTB0y+DTQaxdZwERtx7LJ631QEBFDXkcxD5+ixBYmt0n2LkWcwQ== + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw== + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog== + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== + +parseurl@~1.3.2, 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== + +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" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +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: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +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 sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +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-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-to-regexp@0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.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== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +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, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +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== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +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== + +pirates@^4.0.1: + version "4.0.7" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== + +pixi.js@*, pixi.js@5.3.7: + version "5.3.7" + resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.7.tgz#d295076cdb631a0578ee5976d9da195087b6a50e" + integrity sha512-DyFTn6sHB6njtBd879OCx7UZpt8dpVtOSNuLAdVaWZ2GhAFsTY59n07Ol0f+zx07QtpCmSt1P3pXGHjt9sPzbw== + dependencies: + "@pixi/accessibility" "5.3.7" + "@pixi/app" "5.3.7" + "@pixi/constants" "5.3.7" + "@pixi/core" "5.3.7" + "@pixi/display" "5.3.7" + "@pixi/extract" "5.3.7" + "@pixi/filter-alpha" "5.3.7" + "@pixi/filter-blur" "5.3.7" + "@pixi/filter-color-matrix" "5.3.7" + "@pixi/filter-displacement" "5.3.7" + "@pixi/filter-fxaa" "5.3.7" + "@pixi/filter-noise" "5.3.7" + "@pixi/graphics" "5.3.7" + "@pixi/interaction" "5.3.7" + "@pixi/loaders" "5.3.7" + "@pixi/math" "5.3.7" + "@pixi/mesh" "5.3.7" + "@pixi/mesh-extras" "5.3.7" + "@pixi/mixin-cache-as-bitmap" "5.3.7" + "@pixi/mixin-get-child-by-name" "5.3.7" + "@pixi/mixin-get-global-position" "5.3.7" + "@pixi/particles" "5.3.7" + "@pixi/polyfill" "5.3.7" + "@pixi/prepare" "5.3.7" + "@pixi/runner" "5.3.7" + "@pixi/settings" "5.3.7" + "@pixi/sprite" "5.3.7" + "@pixi/sprite-animated" "5.3.7" + "@pixi/sprite-tiling" "5.3.7" + "@pixi/spritesheet" "5.3.7" + "@pixi/text" "5.3.7" + "@pixi/text-bitmap" "5.3.7" + "@pixi/ticker" "5.3.7" + "@pixi/utils" "5.3.7" + +pixi.js@5.3.12: + version "5.3.12" + resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.12.tgz#1ae667dc066665b536269b0695406811a63b92fe" + integrity sha512-XZzUhrq/m6fx3E0ESv/zXKEVR/GW82dPmbwdapIqsgAldKT2QqBYMfz1WuPf+Q9moPapywVNjjyxPvh+DNPmIg== + dependencies: + "@pixi/accessibility" "5.3.12" + "@pixi/app" "5.3.12" + "@pixi/constants" "5.3.12" + "@pixi/core" "5.3.12" + "@pixi/display" "5.3.12" + "@pixi/extract" "5.3.12" + "@pixi/filter-alpha" "5.3.12" + "@pixi/filter-blur" "5.3.12" + "@pixi/filter-color-matrix" "5.3.12" + "@pixi/filter-displacement" "5.3.12" + "@pixi/filter-fxaa" "5.3.12" + "@pixi/filter-noise" "5.3.12" + "@pixi/graphics" "5.3.12" + "@pixi/interaction" "5.3.12" + "@pixi/loaders" "5.3.12" + "@pixi/math" "5.3.12" + "@pixi/mesh" "5.3.12" + "@pixi/mesh-extras" "5.3.12" + "@pixi/mixin-cache-as-bitmap" "5.3.12" + "@pixi/mixin-get-child-by-name" "5.3.12" + "@pixi/mixin-get-global-position" "5.3.12" + "@pixi/particles" "5.3.12" + "@pixi/polyfill" "5.3.12" + "@pixi/prepare" "5.3.12" + "@pixi/runner" "5.3.12" + "@pixi/settings" "5.3.12" + "@pixi/sprite" "5.3.12" + "@pixi/sprite-animated" "5.3.12" + "@pixi/sprite-tiling" "5.3.12" + "@pixi/spritesheet" "5.3.12" + "@pixi/text" "5.3.12" + "@pixi/text-bitmap" "5.3.12" + "@pixi/ticker" "5.3.12" + "@pixi/utils" "5.3.12" + +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" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +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 sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +possible-typed-array-names@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-flexbugs-fixes@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== + dependencies: + postcss "^7.0.26" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.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@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, 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" + +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 sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prettier-eslint@^16.3.0: + version "16.3.0" + resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-16.3.0.tgz#8f7bbc863f35939948e386eafe72ffd653b2d80b" + integrity sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg== + dependencies: + "@typescript-eslint/parser" "^6.7.5" + common-tags "^1.4.0" + dlv "^1.1.0" + eslint "^8.7.0" + indent-string "^4.0.0" + lodash.merge "^4.6.0" + loglevel-colored-level-prefix "^1.0.0" + prettier "^3.0.1" + pretty-format "^29.7.0" + require-relative "^0.8.7" + typescript "^5.2.2" + vue-eslint-parser "^9.1.0" + +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@^3.0.1, prettier@^3.2.5: + version "3.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" + integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== + dependencies: + "@jest/types" "^24.9.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +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== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prompts@^2.0.1: + 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" + +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" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28: + version "1.15.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" + integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== + dependencies: + punycode "^2.3.1" + +pump@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" + integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qjobs@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +qs@^6.12.3: + version "6.14.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" + integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== + dependencies: + side-channel "^1.1.0" + +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== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +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" + +range-parser@^1.2.0, range-parser@^1.2.1, 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.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.8.4: + 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@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== + dependencies: + find-up "^3.0.0" + read-pkg "^3.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +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" + +realpath-native@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== + dependencies: + util.promisify "^1.0.0" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.7" + get-proto "^1.0.1" + which-builtin-type "^1.2.1" + +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== + 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.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + 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.prototype.flags@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" + set-function-name "^2.0.2" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.12.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== + dependencies: + jsesc "~3.0.2" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +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 sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +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.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.5: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.87.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 sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +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== + +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== + +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== + +resize-observer-polyfill@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== + 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-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + +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 sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== + +resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + dependencies: + is-core-module "^2.16.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resource-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/resource-loader/-/resource-loader-3.0.1.tgz#33355bb5421e2994f59454bbc7f6dbff8df06d47" + integrity sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA== + dependencies: + mini-signals "^1.2.0" + parse-uri "^1.0.0" + +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== + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== + +rfdc@^1.1.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== + +rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, 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.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" + +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-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" + +safe-array-concat@^1.1.2, safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" + isarray "^2.0.5" + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, 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-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-push-apply@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== + dependencies: + es-errors "^1.3.0" + isarray "^2.0.5" + +safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + 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" + +sax@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +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== + +schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.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.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0: + 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.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" + integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +scrollbarwidth@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/scrollbarwidth/-/scrollbarwidth-0.1.3.tgz#1b0de64e288c38c427f4a01fe00a462a04b94fdf" + integrity sha512-edjn9izGjWKgnZo7A3OFsAI6otfGWp/0JLrIhe7vE/CbHZF6rwsHARwxXek0sd7ZoJxHKPl+OEA6jbqJiQQGtw== + +seed-random@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/seed-random/-/seed-random-2.2.0.tgz#2a9b19e250a817099231a5b99a4daf80b7fbed54" + integrity sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ== + +seedrandom@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc" + integrity sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q== + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.6, semver@^7.5.4: + version "7.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + 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@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.19.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + +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" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + 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 sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +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.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" + integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== + +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== + +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.0.6, side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + 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-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +simplebar@^3.1.1: + version "3.1.5" + resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-3.1.5.tgz#257f2d0836baa250cd2a8841892a10c3c3081b17" + integrity sha512-6hPEvcUEbgRWAyldqdd5yd1OcrnxelopEOKwMwOafLc0/Kc3Um2x1US8t+feUAA5ae+lTbrQwcGJvMH+9A23FA== + dependencies: + can-use-dom "^0.1.0" + core-js "^2.6.2" + lodash.debounce "^4.0.8" + lodash.memoize "^4.1.2" + lodash.throttle "^4.1.1" + resize-observer-polyfill "^1.5.0" + scrollbarwidth "^0.1.3" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +skmeans@^0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/skmeans/-/skmeans-0.11.3.tgz#6d4dafb8058520a792c10bae9d9b953a6b6379f4" + integrity sha512-nccEnlSeOMNAYM9ETMSq+m15u8g0KRCIvH2an/ROTx4Igmci/j3oYHBPGdAeGjhR7knAVoIIQwr/wy2dN/eKQA== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +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@^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" + +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" + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" + integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.2.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.2.0" + to-array "0.1.4" + +socket.io-client@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.5.0.tgz#34f486f3640dde9c2211fce885ac2746f9baf5cb" + integrity sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw== + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "~1.3.0" + debug "~3.1.0" + engine.io-client "~3.5.0" + has-binary2 "~1.0.2" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" + integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.3.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.4.tgz#ab84236b6d06eaf1fb68b179b3a7501195886cc3" + integrity sha512-z/pFQB3x+EZldRRzORYW1vwVO8m/3ILkswtnpoeU6Ve3cbMWkmHEWDAVJn4QJtchiiFTo5j7UG2QvwxvaA9vow== + dependencies: + component-emitter "~1.3.0" + debug "~3.1.0" + isarray "2.0.1" + +socket.io@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" + integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== + dependencies: + debug "~3.1.0" + engine.io "~3.2.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.1.1" + socket.io-parser "~3.2.0" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +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-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.20: + 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.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, 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.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + 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.21" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz#6d6e980c9df2b6fc905343a3b2d702a6239536c3" + integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +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.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== + 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" + +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@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +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== + +"statuses@>= 1.4.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + +streamroller@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" + integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== + dependencies: + async "^2.6.2" + date-format "^2.0.0" + debug "^3.2.6" + fs-extra "^7.0.1" + lodash "^4.17.14" + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +"string-width@^1.0.2 || 2": + 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.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.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" + +string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^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" + +strip-ansi@^3.0.0: + 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-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== + +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-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 sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +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== + +style-loader@^0.20.2: + version "0.20.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.3.tgz#ebef06b89dec491bcb1fdb3452e913a6fd1c10c4" + integrity sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^0.4.5" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== + dependencies: + has-flag "^3.0.0" + +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@^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.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-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.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== + +svgo@^1.0.0: + 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-tree@^3.2.2: + 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== + +synckit@^0.11.0: + version "0.11.2" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.2.tgz#2a8015ce5df8d5eb0cc47ee55924ad8f8756c24b" + integrity sha512-1IUffI8zZ8qUMB3NUJIjk0RpLroG/8NkQDAWH1NbB2iJ0/5pn3M8rxfNzMz4GH9OnYaGYn31LEDSXJp/qIlxgA== + dependencies: + "@pkgr/core" "^0.2.0" + tslib "^2.8.1" + +table@^6.0.9: + version "6.9.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.9.0.tgz#50040afa6264141c7566b3b81d4d82c47a8668f5" + integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== + 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" + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.3.11, terser-webpack-plugin@^5.3.9: + version "5.3.14" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" + +terser@^5.10.0, terser@^5.31.1: + version "5.39.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" + integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== + dependencies: + glob "^7.1.3" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" + require-main-filename "^2.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== + +tiny-emitter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tmp@0.0.33, tmp@0.0.x: + 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-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A== + +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 sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + 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 sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + 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== + +tough-cookie@^2.3.3, tough-cookie@^2.3.4, 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@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +ts-api-utils@^1.0.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" + integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== + +ts-loader@^9.4.3: + version "9.5.2" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.2.tgz#1f3d7f4bb709b487aaa260e8f19b301635d08020" + integrity sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + source-map "^0.7.4" + +tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tsutils@^3.17.1: + 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" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +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 sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +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 sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + integrity sha512-5rqszGVwYgBoDkIm2oUtvkfZMQ0vk29iDMU0W2qCa3rG0vPDNczCMT4hV/bLBgLg8k8ri6+u3Zbt+S/14eMzlA== + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + integrity sha512-f9Uv6ezcpvCQjJU0Zqbg+65qdcszv3qUQsZfjdRbWiZ7AMenrX1u0lNk9EoWWX6e1F+NULyg27mtdeZ5WhpljA== + +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-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" + +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" + +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== + dependencies: + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" + +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" + +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" + +typed-function@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-2.1.0.tgz#ded6f8a442ba8749ff3fe75bc41419c8d46ccc3f" + integrity sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ== + +typescript@^4.7.4: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +typescript@^5.2.2: + version "5.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== + +ua-parser-js@^1.0.35: + version "1.0.40" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.40.tgz#ac6aff4fd8ea3e794a6aa743ec9c2fc29e75b675" + integrity sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew== + +uid@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/uid/-/uid-0.0.2.tgz#5e4a5d4b78138b4f70f89fd3c76fc59aa9d2f103" + integrity sha512-KerEqWSoUfzAYsB4RznGPygtEk1p04caicg8FxqzZ1VYI3GsYHPzouUO5jJvwwy4sg6B1jnSkSjYgGvE4CK6Gg== + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== + dependencies: + call-bound "^1.0.3" + has-bigints "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +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.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" + integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +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== + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== + +universalify@^0.1.0: + 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 sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +update-browserslist-db@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +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 sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + +url-loader@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== + dependencies: + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" + +url@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" + integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== + dependencies: + punycode "^1.4.1" + qs "^6.12.3" + +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== + +useragent@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== + dependencies: + lru-cache "4.1.x" + tmp "0.0.x" + +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 sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.3.tgz#3d77cf56628b4aad743e5acde8e5c44cea7dbf1c" + integrity sha512-GIEaZ6o86fj09Wtf0VfZ5XP7tmd4t3jM5aZCgmBi231D0DB1AEBa3Aa6MP48DMsAIi96WkpWLimIWVwOjbDMOw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + for-each "^0.3.3" + get-intrinsic "^1.2.6" + has-proto "^1.2.0" + has-symbols "^1.1.0" + object.getownpropertydescriptors "^2.1.8" + safe-array-concat "^1.1.3" + +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" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +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.2: + 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: + version "2.4.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" + integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== + +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.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== + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== + +vue-eslint-parser@^9.1.0: + version "9.4.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +w3c-hr-time@^1.0.1: + 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" + +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" + +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-cli@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" + integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^2.1.1" + "@webpack-cli/info" "^2.0.2" + "@webpack-cli/serve" "^2.0.5" + colorette "^2.0.14" + commander "^10.0.1" + cross-spawn "^7.0.3" + envinfo "^7.7.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^3.1.1" + rechoir "^0.8.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.15.0: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" + +webpack-manifest-plugin@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-5.0.1.tgz#8d401fec7fa587cba5af561eb60e39d6a8050e8a" + integrity sha512-xTlX7dC3hrASixA2inuWFMz6qHsNi6MT3Uiqw621sJjRTShtpMjbDYhPPZBwWUKdIYKIjSq9em6+uzWayf38aQ== + dependencies: + tapable "^2.0.0" + webpack-sources "^2.2.0" + +webpack-merge@^5.7.3, webpack-merge@^5.9.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-sources@^1.1.0: + 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.3: + 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-strip-block@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/webpack-strip-block/-/webpack-strip-block-0.3.0.tgz#e864c8d71fade02c55332f7fb34f7970ba5076c8" + integrity sha512-rXN+SI6S7tzUr1Jvhq3Rcl2bGfpY5ZC9XSRm2rH68eYkDheCczEs61iir1A00iv1Nt8FY1J6BDRgXKtil+fk+g== + dependencies: + loader-utils "^1.1.0" + +webpack@^5.85.0: + version "5.98.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.98.0.tgz#44ae19a8f2ba97537978246072fb89d10d1fbd17" + integrity sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.14.0" + browserslist "^4.24.0" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^4.3.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + 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.1, whatwg-encoding@^1.0.3: + 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-fetch@>=0.10.0: + version "3.6.20" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.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@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.2.1" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" + +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.16, which-typed-array@^1.1.18: + version "1.1.19" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + +which@1.3.1, which@^1.2.1, which@^1.2.9, which@^1.3.0: + 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: + 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" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +word-wrap@^1.2.5, word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== + +worker-loader@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37" + integrity sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.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" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" + integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +ws@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.4.tgz#c7bea9f1cfb5f410de50e70e82662e562113f9a7" + integrity sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ== + dependencies: + async-limiter "~1.0.0" + +ws@^8.13.0: + version "8.18.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.1.tgz#ea131d3784e1dfdff91adb0a4a116b127515e3cb" + integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== + +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +ws@~7.5.10: + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +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== + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha512-/bFPLUgJrfGUL10AIv4Y7/CUt6so9CLtB/oFxQSHseSDNNCdC6vwwKEqwLN6wNPBg9YWXAiMu8jkf6RPRS/75Q== + +xmlhttprequest-ssl@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" + integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== + +xss-filters@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/xss-filters/-/xss-filters-1.2.7.tgz#59fa1de201f36f2f3470dcac5f58ccc2830b0a9a" + integrity sha512-KzcmYT/f+YzcYrYRqw6mXxd25BEZCxBQnf+uXTopQDIhrmiaLwO+f+yLsIvvNlPhYvgff8g3igqrBxYh9k8NbQ== + +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 sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@13.1.2, 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-unparser@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" + integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== + dependencies: + flat "^4.1.0" + lodash "^4.17.15" + yargs "^13.3.0" + +yargs@13.3.2, yargs@^13.3.0: + 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" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg== + +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== From 4516f2ff9e36e0038d263b5c2c33aae4290162fb Mon Sep 17 00:00:00 2001 From: caram88 Date: Mon, 7 Apr 2025 18:35:34 +0900 Subject: [PATCH 02/12] =?UTF-8?q?=EC=98=A8=EB=8F=84=20=EC=8A=B5=EB=8F=84?= =?UTF-8?q?=20=EC=88=98=EB=B6=84=20=EB=B8=94=EB=9F=AD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/playground/blocks/hardware/block_elio.js | 94 ++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/src/playground/blocks/hardware/block_elio.js b/src/playground/blocks/hardware/block_elio.js index 76e298ca54..de2a1276f4 100644 --- a/src/playground/blocks/hardware/block_elio.js +++ b/src/playground/blocks/hardware/block_elio.js @@ -89,6 +89,13 @@ Entry.elio.setLanguage = function() { 'elio_distance_value': '거리', 'elio_line1_value': '라인1', 'elio_line2_value': '라인2', + + 'elio_temperature_value' : '온도', + 'elio_humidity_value' : '습도', + 'elio_water_value' : '수분' + + + }, }, en: { @@ -112,6 +119,11 @@ Entry.elio.setLanguage = function() { 'elio_distance_value': '거리', 'elio_line1_value': '라인1', 'elio_line2_value': '라인2', + + 'elio_temperature_value' : '온도', + 'elio_humidity_value' : '습도', + 'elio_water_value' : '수분' + }, }, }; @@ -137,6 +149,10 @@ Entry.elio.blockMenuBlocks = [ 'elio_distance_value', 'elio_line1_value', 'elio_line2_value', + + 'elio_temperature_value', + 'elio_humidity_value', + 'elio_water_value' ]; @@ -1257,6 +1273,84 @@ Entry.elio.getBlocks = function() { return pd['LINE2']; }, }, + + elio_temperature_value: { + color: '#00CFCA', + outerLine: '#04B5B0', + skeleton: 'basic_string_field', + fontColor: '#fff', + params: [ + { + type: 'TextInput', + value: 0 + } + ], + def: { + type: 'elio_temperature_value' + }, + paramsKeyMap: { + VALUE: 0 + }, + class: 'elio', + isNotFor: ['elio'], + func: function (sprite, script) { + //var port = Entry.elio.getDC(script.getStringField('VALUE', script)); + var pd = Entry.hw.portData; + return pd["TEMPERATURE"]; + } + }, + + elio_humidity_value: { + color: '#00CFCA', + outerLine: '#04B5B0', + skeleton: 'basic_string_field', + fontColor: '#fff', + params: [ + { + type: 'TextInput', + value: 0 + } + ], + def: { + type: 'elio_humidity_value' + }, + paramsKeyMap: { + VALUE: 0 + }, + class: 'elio', + isNotFor: ['elio'], + func: function (sprite, script) { + //var port = Entry.elio.getDC(script.getStringField('VALUE', script)); + var pd = Entry.hw.portData; + return pd["HUMIDITY"]; + } + }, + + elio_water_value: { + color: '#00CFCA', + outerLine: '#04B5B0', + skeleton: 'basic_string_field', + fontColor: '#fff', + params: [ + { + type: 'TextInput', + value: 0 + } + ], + def: { + type: 'elio_water_value' + }, + paramsKeyMap: { + VALUE: 0 + }, + class: 'elio', + isNotFor: ['elio'], + func: function (sprite, script) { + //var port = Entry.elio.getDC(script.getStringField('VALUE', script)); + var pd = Entry.hw.portData; + return pd["WATER"]; + } + }, }; }; From 7508216e823d274a1e5b67d18dd3aa323592642c Mon Sep 17 00:00:00 2001 From: seungkea Date: Thu, 10 Apr 2025 13:48:49 +0900 Subject: [PATCH 03/12] Delete yarn.lock --- yarn.lock | 11026 ---------------------------------------------------- 1 file changed, 11026 deletions(-) delete mode 100644 yarn.lock diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index ef4539ddd3..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,11026 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@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.0.0", "@babel/code-frame@^7.26.2": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" - integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== - dependencies: - "@babel/helper-validator-identifier" "^7.25.9" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.8": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" - integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== - -"@babel/core@^7.1.0", "@babel/core@^7.22.1": - version "7.26.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" - integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.26.10" - "@babel/helper-compilation-targets" "^7.26.5" - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.10" - "@babel/parser" "^7.26.10" - "@babel/template" "^7.26.9" - "@babel/traverse" "^7.26.10" - "@babel/types" "^7.26.10" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/eslint-parser@^7.11.0": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.27.0.tgz#d55e52a5ef3b164139a799dc522c338faba3507c" - integrity sha512-dtnzmSjXfgL/HDgMcmsLSzyGbEosi4DrGWoCNfuI+W4IkVJw6izpTe7LtOdwAXnkDqw5yweboYCTkM2rQizCng== - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.1" - -"@babel/eslint-plugin@^7.11.0": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-plugin/-/eslint-plugin-7.27.0.tgz#b8b7bf27e68d65df05b06048668d488047ea2fd1" - integrity sha512-b8YXz2RX72kf2mOsmvtRdk4GMmpp4bUsvaI0cLJrUsvltMXvELiJPYsy6ikoHqzx40kKdw/3DEBgA8wqCLzJxA== - dependencies: - eslint-rule-composer "^0.3.0" - -"@babel/generator@^7.26.10", "@babel/generator@^7.27.0", "@babel/generator@^7.4.0": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" - integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== - dependencies: - "@babel/parser" "^7.27.0" - "@babel/types" "^7.27.0" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" - -"@babel/helper-annotate-as-pure@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" - integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== - dependencies: - "@babel/types" "^7.25.9" - -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9", "@babel/helper-compilation-targets@^7.26.5": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz#de0c753b1cd1d9ab55d473c5a5cf7170f0a81880" - integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA== - dependencies: - "@babel/compat-data" "^7.26.8" - "@babel/helper-validator-option" "^7.25.9" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.25.9": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz#518fad6a307c6a96f44af14912b2c20abe9bfc30" - integrity sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/helper-replace-supers" "^7.26.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/traverse" "^7.27.0" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz#0e41f7d38c2ebe06ebd9cf0e02fb26019c77cd95" - integrity sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - regexpu-core "^6.2.0" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" - integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-member-expression-to-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" - integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-imports@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" - integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" - integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-optimise-call-expression@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" - integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== - dependencies: - "@babel/types" "^7.25.9" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35" - integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== - -"@babel/helper-remap-async-to-generator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" - integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-wrap-function" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/helper-replace-supers@^7.25.9", "@babel/helper-replace-supers@^7.26.5": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d" - integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.25.9" - "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/traverse" "^7.26.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" - integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-string-parser@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" - integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== - -"@babel/helper-validator-identifier@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" - integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== - -"@babel/helper-validator-option@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" - integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== - -"@babel/helper-wrap-function@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" - integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== - dependencies: - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helpers@^7.26.10": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" - integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== - dependencies: - "@babel/template" "^7.27.0" - "@babel/types" "^7.27.0" - -"@babel/highlight@^7.10.4": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.9.tgz#8141ce68fc73757946f983b343f1231f4691acc6" - integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw== - dependencies: - "@babel/helper-validator-identifier" "^7.25.9" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0", "@babel/parser@^7.4.3": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" - integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== - dependencies: - "@babel/types" "^7.27.0" - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" - integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" - integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": - version "7.25.9" - 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.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" - integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" - integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/plugin-transform-optional-chaining" "^7.25.9" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" - integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-proposal-class-properties@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-object-rest-spread@^7.8.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-private-methods@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@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-import-assertions@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" - integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-syntax-import-attributes@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" - integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@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-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" - integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-async-generator-functions@^7.26.8": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz#5e3991135e3b9c6eaaf5eff56d1ae5a11df45ff8" - integrity sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg== - dependencies: - "@babel/helper-plugin-utils" "^7.26.5" - "@babel/helper-remap-async-to-generator" "^7.25.9" - "@babel/traverse" "^7.26.8" - -"@babel/plugin-transform-async-to-generator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" - integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-remap-async-to-generator" "^7.25.9" - -"@babel/plugin-transform-block-scoped-functions@^7.26.5": - version "7.26.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e" - integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ== - dependencies: - "@babel/helper-plugin-utils" "^7.26.5" - -"@babel/plugin-transform-block-scoping@^7.25.9": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz#acc2c0d98a7439bbde4244588ddbd4904701d47f" - integrity sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ== - dependencies: - "@babel/helper-plugin-utils" "^7.26.5" - -"@babel/plugin-transform-class-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" - integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-class-static-block@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" - integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-classes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" - integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - "@babel/traverse" "^7.25.9" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" - integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/template" "^7.25.9" - -"@babel/plugin-transform-destructuring@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" - integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-dotall-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" - integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-duplicate-keys@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" - integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" - integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-dynamic-import@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" - integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-exponentiation-operator@^7.26.3": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" - integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-export-namespace-from@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" - integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-for-of@^7.26.9": - version "7.26.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz#27231f79d5170ef33b5111f07fe5cafeb2c96a56" - integrity sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg== - dependencies: - "@babel/helper-plugin-utils" "^7.26.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - -"@babel/plugin-transform-function-name@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" - integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== - dependencies: - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-transform-json-strings@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" - integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" - integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-logical-assignment-operators@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" - integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-member-expression-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" - integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-modules-amd@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" - integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== - dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-modules-commonjs@^7.26.3", "@babel/plugin-transform-modules-commonjs@^7.8.3": - version "7.26.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" - integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== - dependencies: - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-modules-systemjs@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" - integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== - dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@babel/plugin-transform-modules-umd@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" - integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== - dependencies: - "@babel/helper-module-transforms" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" - integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-new-target@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" - integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.26.6": - version "7.26.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe" - integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw== - dependencies: - "@babel/helper-plugin-utils" "^7.26.5" - -"@babel/plugin-transform-numeric-separator@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" - integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-object-assign@^7.8.3": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.25.9.tgz#686203d53ee688d1642bf3a8c751dfb3981021c8" - integrity sha512-I/Vl1aQnPsrrn837oLbo+VQtkNcjuuiATqwmuweg4fTauwHHQoxyjmjjOVKyO8OaTxgqYTKW3LuQsykXjDf5Ag== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-object-rest-spread@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" - integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== - dependencies: - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/plugin-transform-parameters" "^7.25.9" - -"@babel/plugin-transform-object-super@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" - integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" - -"@babel/plugin-transform-optional-catch-binding@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" - integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-optional-chaining@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" - integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - -"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" - integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-private-methods@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" - integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-private-property-in-object@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" - integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-create-class-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-property-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" - integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-regenerator@^7.25.9": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz#822feebef43d6a59a81f696b2512df5b1682db31" - integrity sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA== - dependencies: - "@babel/helper-plugin-utils" "^7.26.5" - regenerator-transform "^0.15.2" - -"@babel/plugin-transform-regexp-modifiers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" - integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-reserved-words@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" - integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-runtime@^7.8.3": - version "7.26.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz#6b4504233de8238e7d666c15cde681dc62adff87" - integrity sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.26.5" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.11.0" - babel-plugin-polyfill-regenerator "^0.6.1" - semver "^6.3.1" - -"@babel/plugin-transform-shorthand-properties@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" - integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-spread@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" - integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - -"@babel/plugin-transform-sticky-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" - integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-template-literals@^7.26.8": - version "7.26.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz#966b15d153a991172a540a69ad5e1845ced990b5" - integrity sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q== - dependencies: - "@babel/helper-plugin-utils" "^7.26.5" - -"@babel/plugin-transform-typeof-symbol@^7.26.7": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.0.tgz#044a0890f3ca694207c7826d0c7a65e5ac008aae" - integrity sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w== - dependencies: - "@babel/helper-plugin-utils" "^7.26.5" - -"@babel/plugin-transform-unicode-escapes@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" - integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-property-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" - integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" - integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-unicode-sets-regex@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" - integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/preset-env@^7.10.2": - version "7.26.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.9.tgz#2ec64e903d0efe743699f77a10bdf7955c2123c3" - integrity sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ== - dependencies: - "@babel/compat-data" "^7.26.8" - "@babel/helper-compilation-targets" "^7.26.5" - "@babel/helper-plugin-utils" "^7.26.5" - "@babel/helper-validator-option" "^7.25.9" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.26.0" - "@babel/plugin-syntax-import-attributes" "^7.26.0" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.25.9" - "@babel/plugin-transform-async-generator-functions" "^7.26.8" - "@babel/plugin-transform-async-to-generator" "^7.25.9" - "@babel/plugin-transform-block-scoped-functions" "^7.26.5" - "@babel/plugin-transform-block-scoping" "^7.25.9" - "@babel/plugin-transform-class-properties" "^7.25.9" - "@babel/plugin-transform-class-static-block" "^7.26.0" - "@babel/plugin-transform-classes" "^7.25.9" - "@babel/plugin-transform-computed-properties" "^7.25.9" - "@babel/plugin-transform-destructuring" "^7.25.9" - "@babel/plugin-transform-dotall-regex" "^7.25.9" - "@babel/plugin-transform-duplicate-keys" "^7.25.9" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" - "@babel/plugin-transform-dynamic-import" "^7.25.9" - "@babel/plugin-transform-exponentiation-operator" "^7.26.3" - "@babel/plugin-transform-export-namespace-from" "^7.25.9" - "@babel/plugin-transform-for-of" "^7.26.9" - "@babel/plugin-transform-function-name" "^7.25.9" - "@babel/plugin-transform-json-strings" "^7.25.9" - "@babel/plugin-transform-literals" "^7.25.9" - "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" - "@babel/plugin-transform-member-expression-literals" "^7.25.9" - "@babel/plugin-transform-modules-amd" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.26.3" - "@babel/plugin-transform-modules-systemjs" "^7.25.9" - "@babel/plugin-transform-modules-umd" "^7.25.9" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" - "@babel/plugin-transform-new-target" "^7.25.9" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.26.6" - "@babel/plugin-transform-numeric-separator" "^7.25.9" - "@babel/plugin-transform-object-rest-spread" "^7.25.9" - "@babel/plugin-transform-object-super" "^7.25.9" - "@babel/plugin-transform-optional-catch-binding" "^7.25.9" - "@babel/plugin-transform-optional-chaining" "^7.25.9" - "@babel/plugin-transform-parameters" "^7.25.9" - "@babel/plugin-transform-private-methods" "^7.25.9" - "@babel/plugin-transform-private-property-in-object" "^7.25.9" - "@babel/plugin-transform-property-literals" "^7.25.9" - "@babel/plugin-transform-regenerator" "^7.25.9" - "@babel/plugin-transform-regexp-modifiers" "^7.26.0" - "@babel/plugin-transform-reserved-words" "^7.25.9" - "@babel/plugin-transform-shorthand-properties" "^7.25.9" - "@babel/plugin-transform-spread" "^7.25.9" - "@babel/plugin-transform-sticky-regex" "^7.25.9" - "@babel/plugin-transform-template-literals" "^7.26.8" - "@babel/plugin-transform-typeof-symbol" "^7.26.7" - "@babel/plugin-transform-unicode-escapes" "^7.25.9" - "@babel/plugin-transform-unicode-property-regex" "^7.25.9" - "@babel/plugin-transform-unicode-regex" "^7.25.9" - "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.11.0" - babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.40.0" - semver "^6.3.1" - -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.8.4": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" - integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.25.9", "@babel/template@^7.26.9", "@babel/template@^7.27.0", "@babel/template@^7.4.0": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" - integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== - dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/parser" "^7.27.0" - "@babel/types" "^7.27.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.27.0", "@babel/traverse@^7.4.3": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" - integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== - dependencies: - "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.27.0" - "@babel/parser" "^7.27.0" - "@babel/template" "^7.27.0" - "@babel/types" "^7.27.0" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.27.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" - integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== - dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - -"@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" - -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@egjs/component@^2.1.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@egjs/component/-/component-2.2.2.tgz#b8208ea4ca05f6562a51d58f1e6f9979aad8a9d9" - integrity sha512-2m6nu6/Mbs6VnoT4IHFGUBX6V82Zp01zDmlWpIJ3fMatHpe7BB1qUYFgMmSWGY0uOvOl4plvflwbCRUAGMfwWQ== - -"@egjs/visible@^2.1.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@egjs/visible/-/visible-2.4.0.tgz#065ccea237c5cff91231431b4d3df1c294c38254" - integrity sha512-p9hRZCgH8dsJDKcBbOTPg25dxenuDw8EYm+15eN1Q/LJkNtL5hpJ3ee/QBK4TTICuOjzXpZj4jBdLqaVArykwA== - dependencies: - "@egjs/component" "^2.1.0" - -"@entrylabs/event@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@entrylabs/event/-/event-1.0.3.tgz#a8754edcf4e44c0365a0e95b57801f3f52532e9d" - integrity sha512-IDC7sWnfe8GVQIEGsct9Bcsj1Nh4XikO6PG+veVuix0Zv/XH98NkFjmXiyrriJ/rjJoGFBq6sKesfmaFCCr3MA== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz#b0fc7e06d0c94f801537fd4237edc2706d3b8e4c" - integrity sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.6.1": - version "4.12.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" - integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== - -"@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@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.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" - -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== - -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== - dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.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" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== - dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" - -"@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": - 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== - -"@humanwhocodes/object-schema@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== - -"@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== - dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" - -"@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" - integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== - dependencies: - "@jest/console" "^24.7.1" - "@jest/reporters" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" - micromatch "^3.1.10" - p-each-series "^1.0.0" - realpath-native "^1.1.0" - rimraf "^2.5.4" - slash "^2.0.0" - strip-ansi "^5.0.0" - -"@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== - dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - -"@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" - integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - node-notifier "^5.4.2" - slash "^2.0.0" - source-map "^0.6.0" - string-length "^2.0.0" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== - dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" - micromatch "^3.1.10" - pirates "^4.0.1" - realpath-native "^1.1.0" - slash "^2.0.0" - source-map "^0.6.1" - write-file-atomic "2.4.1" - -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" - integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@leichtgewicht/ip-codec@^2.0.1": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" - integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== - -"@mediapipe/tasks-vision@^0.10.3": - version "0.10.21" - resolved "https://registry.yarnpkg.com/@mediapipe/tasks-vision/-/tasks-vision-0.10.21.tgz#b78df074763e0c7fdf8606c60121d65c9199bbf6" - integrity sha512-TuhKH+credq4zLksGbYrnvJ1aLIWMc5r0UHwzxzql4BHECJwIAoBR61ZrqwGOW6ZmSBIzU1t4VtKj8hbxFaKeA== - -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== - dependencies: - eslint-scope "5.1.1" - -"@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", "@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== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@pixi/accessibility@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.12.tgz#c22e28021e285d0db3869829a05db4adda25e393" - integrity sha512-JnfII2VsIeIpvyn1VMNDlhhq5BzHwwHn8sMRKhS3kFyxn4CdP0E4Ktn3/QK0vmL9sHCeTlto5Ybj3uuoKZwCWg== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/accessibility@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.7.tgz#a9ca9c7c04925014af4b137b38dd8b77b208e603" - integrity sha512-104qzGZWnA/cQUH48jTiCXKGqOCfOqZAHmVg1z0p5l5tnzVX5zUQDBJxt4AAIPguZZe1YkniealwO1WGz0yBgA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/app@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.12.tgz#90daa5fa056d222068b284cbd2f442e9cea31c2f" - integrity sha512-XMpqoO+1BFIVakgHX/VlBaO4qWxg9TitvybDeXZxyVlSCG84DMNulN55jYufVp92nqHhiRr2fAIc9JDccOcNcQ== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - -"@pixi/app@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.7.tgz#1a469dcdb9a3746d98eb58f2f7fa3e0951880a82" - integrity sha512-xlXxMGiGGmOA154SyltOQ2ZfPEtErzXl8GOxXJJJBxmIfvCQa+Y6iO5jf4q7yNbpSbrfaeIrYUnNbJAViiACzg== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - -"@pixi/constants@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.12.tgz#f02b4366669a30983f044a1d2870fd6dbdeea03d" - integrity sha512-UcuvZZ8cQu+ZC7ufLpKi8NfZX0FncPuxKd0Rf6u6pzO2SmHPq4C1moXYGDnkZjPFAjNYFFHC7chU+zolMtkL/g== - -"@pixi/constants@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.7.tgz#a2e1789a98deb3713cfcb3eba3db84588bc9161e" - integrity sha512-MBcgIM/mSqonFezkCI9080IqNlc0wb8S9QJ5otBdseOWUQa/ua2jF7Jd1sCBGmi0IzS9/NOHFXzZVTdS7AC7Ow== - -"@pixi/core@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.12.tgz#14d57aaaac099c512f8955a87648cf5b3f914ac1" - integrity sha512-SKZPU2mP4UE4trWOTcubGekKwopnotbyR2X8nb68wffBd1GzMoaxyakltfJF2oCV/ivrru/biP4CkW9K6MJ56g== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/runner" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/ticker" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/core@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.7.tgz#a8d65ca17f0c4ef8c0c5a22d31b9e02a4ab73b93" - integrity sha512-WBhU2f5aJSVVaFP55FFBFKjKlRf5fYGxgA/U3kD4yD4Y3d3d6V3MIZv+o0VX+kBs1Eq7ePZqEv2smDrlzzMEjQ== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/runner" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/ticker" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/display@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.12.tgz#24ddb270b87b91631284b57144d8e486a2375e17" - integrity sha512-/fsH/GAxc62rvwTnmrnV8oGCkk4LwJ9pt2Jv3UIorNsjXyL0V5fGw7uZnilF2eSdu6LgQKBMWPOtBF0TNML3lg== - dependencies: - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/display@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.7.tgz#b661d2ecfd2a67f213665a0698acd29e17eee8fe" - integrity sha512-ma1JyLe5vaEgmaOR+anvj5YOKqT9OEWnboIe7NVmwGF1CZ7JFnB12rsRulHUsSaFG9bP5xjvroAZjFg/WvyGLw== - dependencies: - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/extract@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.12.tgz#4fb236a78d65bc1586e1b77e1455c76da6be861f" - integrity sha512-PRs9sKeZT+eYSD8wGUqSjHhIRrfvnLU65IIJYlmgTxYo9U4rwzykt74v09ggMj/GFUpjsILISA5VIXM1TV79PQ== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/extract@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.7.tgz#2f32b804d90621ad3187e4ae7fb959d19b3959f1" - integrity sha512-xQ5hYFIdxQTjNWwtwsjIK0DjbGLlUl92rIj5yvNJFiJvRjZ8IfvtIaM5uwjhiY2U9q3fDLFgb8EiNfmdDc78xQ== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/filter-alpha@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.12.tgz#d2076e0d328430874d8cc544fa96fc097bbea893" - integrity sha512-/VG+ojZZwStLfiYVKcX4XsXNiPZpv40ZgiDL6igZOMqUsWn7n7dhIgytmbx6uTUWfxIPlOQH3bJGEyAHVEgzZA== - dependencies: - "@pixi/core" "5.3.12" - -"@pixi/filter-alpha@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.7.tgz#e979db57e9ee47b84d0900e5f9767b8632426fb4" - integrity sha512-jkvbzmSCIPjCJMFNUocAxsZ7Cq3ssFwXnmXNYKYhJy01LxiyO/JbVDAxAD7Chyn5jbKsI21OV3UQaIJhFpXw7Q== - dependencies: - "@pixi/core" "5.3.7" - -"@pixi/filter-blur@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.12.tgz#b4212c13c96d4c3dd12efa20859c77baca092250" - integrity sha512-8zuOmztmuXCl1pXQpycKTS8HmXPtkmMe6xM93Q1gT7CRLzyS97H3pQAh4YuaGOrJslOKBNDrGVzLVY95fxjcTQ== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/settings" "5.3.12" - -"@pixi/filter-blur@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.7.tgz#7eee3559704b280e8588c2fc9e8d912aac80f8a9" - integrity sha512-xM+Zz2i2UCmY7oHBPlGaN2ImhCY4l/V8NFc8FNSUIHm8NXHJ4/VCQpXp9BFTjY1+GZExFLkqB8kIYEddGVFiLA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/settings" "5.3.7" - -"@pixi/filter-color-matrix@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.12.tgz#17fa86afacb9b1de44c5e81b8a911dfdad730e3f" - integrity sha512-CblKOry/TvFm7L7iangxYtvQgO3a9n5MsmxDUue68DWZa/iI4r/3TSnsvA+Iijr590e9GsWxy3mj9P4HBMOGTA== - dependencies: - "@pixi/core" "5.3.12" - -"@pixi/filter-color-matrix@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.7.tgz#230cafe46bde36e25441b13f3ac5dd8e8fee4311" - integrity sha512-Z12cxoHx9uMh3CZ0PLVRzsaFHHF/CfU3J83KI9k+Bg/DFOh/J/5EToCd44jYJbMKp3nvXcO1EJyZ3wwC/IsyfQ== - dependencies: - "@pixi/core" "5.3.7" - -"@pixi/filter-displacement@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.12.tgz#2996ca66746050a0c5c950629ae163e4c033a020" - integrity sha512-D/LpJxnGi85wHB6VeBpw0FQAN0mzHHUYNxCADwUhknY+SKfP5RhaYOlk79zqOuakBfQTzL3lPgMNH2EC85EJPw== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/math" "5.3.12" - -"@pixi/filter-displacement@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.7.tgz#4364d5514221c4a03950b67795cebd1b34dca401" - integrity sha512-akMVkAHqliQujveiJ5KBMuwh/JVGN37NQsD8n1XbDDSe6SKjpX0kaq2Bh2Xu9pPj3+Jhofy0sI65q2M8qs2Uog== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/math" "5.3.7" - -"@pixi/filter-fxaa@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.12.tgz#bb93ecaf3002fa5da9dbff6974ab38fd8045cd79" - integrity sha512-EI+foorDnYUAy7VF3fzi635u/dyf5EHZOFovGEDrHm/ZTmEJ1i6RolwexCN94vf6HGfaDrIgNmqFcKWtbIvJFA== - dependencies: - "@pixi/core" "5.3.12" - -"@pixi/filter-fxaa@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.7.tgz#55b778fbc60fd87f16d17d66a36b122e2f5c3b57" - integrity sha512-NJpVcbOCUVYUDGqxvh7Jp/+arWEnLKgI/7Qf8VEYv0aQslqE8ZtFSAX7JfP+iGfFWXlkMe6AKspesYhUrIpRKg== - dependencies: - "@pixi/core" "5.3.7" - -"@pixi/filter-noise@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.12.tgz#66315840bbf5fd7e15e42aafd29024602f4ccb2b" - integrity sha512-9KWmlM2zRryY6o0bfNOHAckdCk8X7g9XWZbmEIXZZs7Jr90C1+RhDreqNs8OrMukmNo2cW9hMrshHgJ9aA1ftQ== - dependencies: - "@pixi/core" "5.3.12" - -"@pixi/filter-noise@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.7.tgz#70e638f5d6ebc4b62b4c67f2de939a7fa900d7a5" - integrity sha512-P0mVQR2J7GHujVcq0iiuD2/1yvmue7orpppa5iuNHoOMT+vZpO0hdCKTg5vm5ZcWnHrOwtvv8zYngnT9rLdCtw== - dependencies: - "@pixi/core" "5.3.7" - -"@pixi/graphics@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.12.tgz#bad1d5e1630e38b5f1bf594f72931c0e7a43ead0" - integrity sha512-uBmFvq15rX0f459/4F2EnR2UhCgfwMWVJDB1L3OnCqQePE/z3ju4mfWEwOT+I7gGejWlGNE6YLdEMVNw/3zb6w== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/graphics@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.7.tgz#36ae80e2508e0a9c61ce454807d517d370d90a74" - integrity sha512-+6+bT/AC29a1Hw5XDxsH1UqBsXSqcna7wNTTrBQ02owotIJtyRc6w48f5qxzhxycumyVCR87IV5tAtdwX3xhag== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/interaction@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.12.tgz#dd4f23fadc24810857f69766db6cdfab8786e5bd" - integrity sha512-Ks7vHDfDI58r1TzKHabnQXcXzFbUu2Sb4eQ3/jnzI/xGB5Z8Q0kS7RwJtFOWNZ67HHQdoHFkQIozTUXVXHs3oA== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/ticker" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/interaction@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.7.tgz#dd4d7b43fc266c9b0e8994f4f05cb9f73438b586" - integrity sha512-B+5suog6fo8tJclTIO1Nn0HikyXQ9OWQGmTiYUnDVDriX5dGujh79RpcL51HFQ/2Gs2Gt0rl3AfP9OsCLe7VPA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/ticker" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/loaders@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.12.tgz#ee34783633a76719a196f65330b6d78a52d3bb86" - integrity sha512-M56m1GKpCChFqSic9xrdtQOXFqwYMvGzDXNpsKIsQbkHooaJhUR5UxSPaNiGC4qWv0TO9w8ANouxeX2v6js4eg== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/utils" "5.3.12" - resource-loader "^3.0.1" - -"@pixi/loaders@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.7.tgz#7231106d8d490d9ca230df7a07a53e1e4d412163" - integrity sha512-zwWgvhUz7l5Z3me5gT1XbJzmj4bnz176PnawoUdlRxNARnMW3Rsk7Egzu8atWhJUL+MWEv+t8KkyHRXG39q5FA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/utils" "5.3.7" - resource-loader "^3.0.1" - -"@pixi/math@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.12.tgz#bfc3c1b651a96a2d62cb40e0b181d68fb4962aac" - integrity sha512-VMccUVKSRlLFTGQu6Z450q/W6LVibaFWEo2eSZZfxz+hwjlYiqRPx4heG++4Y6tGskZK7W8l8h+2ixjmo65FCg== - -"@pixi/math@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.7.tgz#066e7ea149fd38db8d8a9584aac5f41d02b36bdd" - integrity sha512-WnjUwX7rkxR36F0xknpsNd9BsfQosV0BbyFE0Il88IURBM3Tu9X4tC7RGJDgWU+aXw23HgHu0j+MWJrCVCM2fA== - -"@pixi/mesh-extras@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.12.tgz#b634f2a212714374d5376b70a333fbebf9f69d4f" - integrity sha512-tEBEEIh96aSGJ/KObdtlNcSzVfgrl9fBhvdUDOHepSyVG+SkmX4LMqP3DkGl6iUBDiq9FBRFaRgbxEd8G2U7yw== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/mesh" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/mesh-extras@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.7.tgz#e4ab9e4b0cb05606a621cacd6d37d472067c6041" - integrity sha512-txVo2yk935gLgvlwO/ODUuz0wHUZtc9AK0sOQbbD9rh1TUdZ9OYrRvqshItLC34EimmAfgOsyzT78zeUTaP1OA== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/mesh" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/mesh@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.12.tgz#665e83a26c40f12215ff72193a0774c4bdbb605e" - integrity sha512-8ZiGZsZQBWoP1p8t9bSl/AfERb5l3QlwnY9zYVMDydF/UWfN1gKcYO4lKvaXw/HnLi4ZjE+OHoZVmePss9zzaw== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/mesh@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.7.tgz#9de12a6404abdd17fe14c08d2bbe163bdf72bb9a" - integrity sha512-7K5Ba3+t0rBAfZeuQi7nem0DgVH9GNhRvZ8HYbhPs5XVI7yZZhUN4HpUMy7gYEnz8EbXqwUz20X4ham/0O9WsQ== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/mixin-cache-as-bitmap@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.12.tgz#eb2c4aa9ad452593d4c445a2132e4d8d0b02d8ef" - integrity sha512-hPiu8jCQJctN3OVJDgh7jqdtRgyB3qH1BWLM742MOZLjYnbOSamnqmI8snG+tba5yj/WfdjKB+8v0WNwEXlH6w== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/mixin-cache-as-bitmap@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.7.tgz#2a30fc3f552f7a0a51bd0fe5a6e937132a5fff52" - integrity sha512-UEP1PVEEqgWs8vUx/GvOiQ4r130NDLQoD9i5YA1i5BGml2UmNyrFlIh8N9hVAPiIpTIpECkU6nLakP7t6fm9zA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/mixin-get-child-by-name@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.12.tgz#581e305b1f2c75533215704e499975b20e92a708" - integrity sha512-VQv0GMNmfyBfug9pnvN5s/ZMKJ/AXvg+4RULTpwHFtAwlCdZu9IeNb4eviSSAwtOeBAtqk5c0MQSsdOUWOeIkA== - dependencies: - "@pixi/display" "5.3.12" - -"@pixi/mixin-get-child-by-name@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.7.tgz#49c5aa84840bf09e2c089011665407e8c1a3466e" - integrity sha512-KiWirq5HpLKrAsShdZx0+RwNwY6nO5cM+Wqq59n11xTgvUoNULiptZRePQR5rOIsLIcwNtro/2LWPj1UzbJHbg== - dependencies: - "@pixi/display" "5.3.7" - -"@pixi/mixin-get-global-position@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.12.tgz#111261083b4e654361cd7da12cd510b6ff64fded" - integrity sha512-qxsfCC9BsKSjBlMH1Su/AVwsrzY8NHfcut5GkVvm2wa9+ypxFwU5fVsmk6+4a9G7af3iqmOlc9YDymAvbi+e8g== - dependencies: - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - -"@pixi/mixin-get-global-position@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.7.tgz#68c0167054abbac01ecd10275212f5b9afe049bf" - integrity sha512-OIXi+m611GVH1dVAc5YdiMC55Bbjf0JmesiB+6/gMzrjKxW/YDAA5ZRVri75hmRedHA8LPflf+i0pO10mrGP8g== - dependencies: - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - -"@pixi/particles@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.12.tgz#37843e0d865d9ed87dda97f46eb309ffd46e1866" - integrity sha512-SV/gOJBFa4jpsEM90f1bz5EuMMiNAz81mu+lhiUxdQQjZ8y/S4TiK7OAiyc+hUtp97JbJ//6u+4ynGwbhV+WDA== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/particles@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.7.tgz#9f0500b818f20af8e9338fee24c1c33530dfa925" - integrity sha512-mEnBljvBVbKuUJVZ0oH9dP/k7qsHEHUlvfBQgLOSkd6viHlx3PoSPKOYm35+I6fAylkV0Xm9+j5v/IESuip2RQ== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/polyfill@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.12.tgz#5678476f15c33dfd704cff0d216b0cf3ab5267dc" - integrity sha512-qkm8TBIb6m7FmE/Cd/yVagONDlVF5/cWFSSnk4pWA/vt/HLNrXgY9Tx0IXAk6NNK/xc5deGcLPc4iw+DlEhsQw== - dependencies: - es6-promise-polyfill "^1.2.0" - object-assign "^4.1.1" - -"@pixi/polyfill@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.7.tgz#eb43ef1eefc7967bf8d44f704677c19adfdc539c" - integrity sha512-qU23xdb/e4Qvze0TWVy4fNZ0nlABIEZmuLu5nI9SpgfIYtjd2tZo7ngCXU5mZHxW1/xvkAMJEHCsSszotzF9xQ== - dependencies: - es6-promise-polyfill "^1.2.0" - object-assign "^4.1.1" - -"@pixi/prepare@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.12.tgz#68e89aa4102973cde220bc7d965b856d99044f01" - integrity sha512-loZhLzV4riet9MU72WpWIYF6LgbRM78S4soeZOr5SzL1/U5mBneOOmfStaui7dN2GKQKp5GLygDF4dH3FPalnA== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/graphics" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/text" "5.3.12" - "@pixi/ticker" "5.3.12" - -"@pixi/prepare@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.7.tgz#00916a56c61d8349be47937a9b384f3cf90157ca" - integrity sha512-saU+o202vA3U2HVMYvh5aB2RJmP4hR//J22QuRfGen/ukM5mApOroJ445Id2+kSvis0M+UeFUKfBGWDzitr19Q== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/graphics" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/text" "5.3.7" - "@pixi/ticker" "5.3.7" - -"@pixi/runner@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.12.tgz#48a84a574b95478a7c3cff4f5102f7d7f35ebfb1" - integrity sha512-I5mXx4BiP8Bx5CFIXy3XV3ABYFXbIWaY6FxWsNFkySn0KUhizN7SarPdhFGs//hJuC54EH2FsKKNa98Lfc2nCQ== - -"@pixi/runner@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.7.tgz#78ed2c92b392b8c099d2e4557dded7faa921446b" - integrity sha512-kt5apNb21HAvpBaDaPRs33k2O0VzrKe13w4we8iftCpXX8w68ErAY1lH68vmtDNrxnlHg4M9nRgEoMeiHlo2RA== - -"@pixi/settings@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.12.tgz#50675601c5485d15d8896e50cb2b523154c2dae8" - integrity sha512-tLAa8tpDGllgj88NMUQn2Obn9MFJfHNF/CKs8aBhfeZGU4yL4PZDtlI+tqaB1ITGl3xxyHmJK+qfmv5lJn+zyA== - dependencies: - ismobilejs "^1.1.0" - -"@pixi/settings@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.7.tgz#b661883231bf2a1ff5260c214bd0c4b438759841" - integrity sha512-g6AoRSGWxU34gtKSQwX2AMQoLUv86L/5iIXRsqo+X4bfUSCenTci1X7ueVrSIbo39dxh6IOpriZF2Yk3TeHG5w== - dependencies: - ismobilejs "^1.1.0" - -"@pixi/sprite-animated@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.12.tgz#d5e2def777a181bba30b4a8f5931b8a29dc09a16" - integrity sha512-WkGdGRfqboXFzMZ/SM6pCVukYmG2E2IlpcFz7aEeWvKL2Icm4YtaCBpHHDU07vvA6fP6JrstlCx1RyTENtOeGA== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/ticker" "5.3.12" - -"@pixi/sprite-animated@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.7.tgz#94e6d7657cd133a8953e476bd24e18cbfab6a978" - integrity sha512-CSXTSwH/UUcTe5637AD35OCETQO+tDkmlr6e1/eIyUlgOsPkbjo+l134feLZtZudiPHTPyb/YAYIlgPfVr7MGw== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/ticker" "5.3.7" - -"@pixi/sprite-tiling@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.12.tgz#574697334948521dd4228dc2dfb57129233cf2fa" - integrity sha512-5/gtNT46jIo7M69sixqkta1aXVhl4NTwksD9wzqjdZkQG8XPpKmHtXamROY2Fw3R+m+KGgyK8ywAf78tPvxPwg== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/sprite-tiling@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.7.tgz#f4ec4cd205ff7ecebe636062ea27f7a139fb8e22" - integrity sha512-0BMLQGniJF1HvfyrJVe5jC8ayBpTh19dAHJIQWGp8zxxFh/WHjR1b32BN74rDjxQQSjZjV8vBNio8J3W+yDttw== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/sprite@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.12.tgz#0e62a9c074ae288a33fa7c6d18f61db18257e843" - integrity sha512-vticet92RFZ3nDZ6/VDwZ7RANO0jzyXOF/5RuJf0yNVJgBoH4cNix520FfsBWE2ormD+z5t1KEmFeW4e35z2kw== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/sprite@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.7.tgz#c6edf3d4a9928868696b62e35a60ded27d167058" - integrity sha512-Bjl+NOOvigEzUsm1cDr1KmBUpPSWO8pDXpUPTi+v2N75gwRfTycmj5f2TU0QmMW3Gc6sv0CB0AkL7dkMPwPb8g== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/spritesheet@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.12.tgz#78deabea173f2ceb13a58f4be2e0100b7cf239ca" - integrity sha512-0t5HKgLx0uWtENtkW0zVpqvmfoxqMcRAYB7Nwk2lkgZMBPCOFtFF/4Kdp9Sam5X0EBMRGkmIelW3fD6pniSvCw== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/loaders" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/spritesheet@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.7.tgz#826b84c8220ca41c3eba201f453d42394d4da562" - integrity sha512-K1Befbrq3LDbFtnLmbk54QQ/YRk2Mgd+2iOkZx5KsS2pTh1va/GM9FbpO9aZgsEu8Eq76QPxyR8nRqygyMRSuQ== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/loaders" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/text-bitmap@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.12.tgz#c1cbf0b2650775f5059f3eaef2afda557ed6595e" - integrity sha512-tiorA3XdriJKJtUhMDcKX1umE3hGbaNJ/y0ZLuQ0lCvoTLrN9674HtveutoR9KkXWguDHCSk2cY+y3mNAvjPHA== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/loaders" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/mesh" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/text" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/text-bitmap@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.7.tgz#736b489424c6e9c26c2907356e2d70e1ae2cb292" - integrity sha512-LWXgxyMgBAldHA6Swx0irAISCMEyDEcZV7YxBoBpSDnV8ybtZP4fSgtj6vlpnrttKcnXFEcGokOuC3vSdEs39g== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/loaders" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/mesh" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/text" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/text@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.12.tgz#7dc0ded63fa817c4f72ee1537392ee2139ff09a5" - integrity sha512-tvrDVetwVjq1PVDR6jq4umN/Mv/EPHioEOHhyep63yvFIBFv75mDTg2Ye0CPzkmjqwXXvAY+hHpNwuOXTB40xw== - dependencies: - "@pixi/core" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/utils" "5.3.12" - -"@pixi/text@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.7.tgz#cb71b2576bdc1f66fb79977d281f9575dd06d3d5" - integrity sha512-WVAc31MDgHTvP0dJNWsvLVJhjeVGZ3NrLpHcH9iIAd6HVO5Z+i+fk4zvodD+Y7jWU0psx8ZD8xe1wy8ECfbCBA== - dependencies: - "@pixi/core" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/utils" "5.3.7" - -"@pixi/ticker@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.12.tgz#94817565e9899d8e0be746d405e15eb98e8bc14f" - integrity sha512-YNYUj94XgogipYhPOjbdFBIsy7+U6KmolvK+Av1G88GDac5SDoALb1Nt6s23fd8HIz6b4YnabHOdXGz3zPir1Q== - dependencies: - "@pixi/settings" "5.3.12" - -"@pixi/ticker@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.7.tgz#c331b270042d507fe18543ae435a9a857a8fd5ae" - integrity sha512-ZEXiJwPtuPeWa0QmRODF5qK0+ugZu/xeq7QxCvFOCc3NFVBeGms4g92HPucOju9R7jcODIoJxtICALsuwLAr9w== - dependencies: - "@pixi/settings" "5.3.7" - -"@pixi/utils@5.3.12": - version "5.3.12" - resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.12.tgz#15add282a2ee6cc0d931d068caaed2b61eacf149" - integrity sha512-PU/L852YjVbTy/6fDKQtYji6Vqcwi5FZNIjK6JXKuDPF411QfJK3QBaEqJTrexzHlc9Odr0tYECjwtXkCUR02g== - dependencies: - "@pixi/constants" "5.3.12" - "@pixi/settings" "5.3.12" - earcut "^2.1.5" - eventemitter3 "^3.1.0" - url "^0.11.0" - -"@pixi/utils@5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.7.tgz#55fe2a2fbf0fba842da5a602576ce68c498e7e16" - integrity sha512-f8zAeHHURxfwBr8MZiXEIwY2h9wbS6vN0ypvapGvKFOexZ1EInTs35FhEiRWzLEPLHyn1RgCdKzR2zl++E4tIw== - dependencies: - "@pixi/constants" "5.3.7" - "@pixi/settings" "5.3.7" - earcut "^2.1.5" - eventemitter3 "^3.1.0" - url "^0.11.0" - -"@pkgr/core@^0.2.0": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.1.tgz#6d083acfddae21fb329c8df8c94bf895ce7d0c15" - integrity sha512-VzgHzGblFmUeBmmrk55zPyrQIArQN4vujc9shWytaPdB3P7qhi0cpaiKIr7tlCmFv2lYUwnLospIqjL9ZSAhhg== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@tensorflow-models/coco-ssd@^2.0.1": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@tensorflow-models/coco-ssd/-/coco-ssd-2.2.3.tgz#3825286569076d6788199c9cb89fb2fa31f7d2f2" - integrity sha512-iCLGktG/XhHbP6h2FWxqCKMp/Px0lCp6MZU1fjNhjDHeaWEC9G7S7cZrnPXsfH+NewCM53YShlrHnknxU3SQig== - -"@tensorflow-models/posenet@^2.2.1": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@tensorflow-models/posenet/-/posenet-2.2.2.tgz#2abcfa33b43892135d232c9c4408a38cc8f74ba6" - integrity sha512-0SXIksRet/IdX7WVH+JSD6W3upkGHix1hwtd3xykIoIMGR7zQ4SC5+wZcNt9ofASyxNYQoI+tUULUo4LNw0c3w== - -"@tensorflow/tfjs-converter@1.7.4", "@tensorflow/tfjs-converter@^1.7.0": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-1.7.4.tgz#90838fe9ca2d540f22a65fdcbe2311a01e786380" - integrity sha512-B/Ux9I3osI0CXoESGR0Xe5C6BsEfC04+g2xn5zVaW9KEuVEnGEgnuBQxgijRFzkqTwoyLv4ptAmjyIghVARX0Q== - -"@tensorflow/tfjs-core@1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-1.7.0.tgz#9207c8f2481c52a6a40135a6aaf21a9bb0339bdf" - integrity sha512-uwQdiklNjqBnHPeseOdG0sGxrI3+d6lybaKu2+ou3ajVeKdPEwpWbgqA6iHjq1iylnOGkgkbbnQ6r2lwkiIIHw== - dependencies: - "@types/offscreencanvas" "~2019.3.0" - "@types/seedrandom" "2.4.27" - "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.4" - node-fetch "~2.1.2" - seedrandom "2.4.3" - -"@tensorflow/tfjs-core@1.7.4", "@tensorflow/tfjs-core@^1.7.0": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-1.7.4.tgz#43a44bc01d46de98ee9f15c0b2a4d9af4723e7ea" - integrity sha512-3G4VKJ6nPs7iCt6gs3bjRj8chihKrYWenf63R0pm7D9MhlrVoX/tpN4LYVMGgBL7jHPxMLKdOkoAZJrn/J88HQ== - dependencies: - "@types/offscreencanvas" "~2019.3.0" - "@types/seedrandom" "2.4.27" - "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.4" - node-fetch "~2.1.2" - seedrandom "2.4.3" - -"@tensorflow/tfjs-data@1.7.4": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-1.7.4.tgz#3aa1cb14ac48a0354acd21d08f177c8a262fbb32" - integrity sha512-WFYG9wWjNDi62x6o3O20Q0XJxToCw2J4/fBEXiK/Gr0hIqVhl2oLQ1OjTWq7O08NUxM6BRzuG+ra3gWYdQUzOw== - dependencies: - "@types/node-fetch" "^2.1.2" - node-fetch "~2.1.2" - -"@tensorflow/tfjs-layers@1.7.4": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-1.7.4.tgz#93cdef70a4f414edb4ee470c49415d216f54ba20" - integrity sha512-5/K8Z8RBfXsucL6EaSeb3/8jB/I8oPaaXkxwKVsBPQ+u6lB6LEtSKzeiFc57nDr5OMtVaUZV+pKDNEzP0RUQlg== - -"@tensorflow/tfjs@^1.7.0": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-1.7.4.tgz#ea5483bc4b34f5a4c66d600e456c25b6071ea75e" - integrity sha512-XWGwRQ/ECEoQacd74JY/dmbLdnMpwtq3H8tls45dQ+GJ553Advir1FDo/aQt0Yr6fTimQDeiOIG4Mcb5KduP/w== - dependencies: - "@tensorflow/tfjs-converter" "1.7.4" - "@tensorflow/tfjs-core" "1.7.4" - "@tensorflow/tfjs-data" "1.7.4" - "@tensorflow/tfjs-layers" "1.7.4" - -"@types/babel__core@^7.1.0": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" - integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" - integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== - dependencies: - "@babel/types" "^7.20.7" - -"@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/bonjour@^3.5.9": - version "3.5.13" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" - integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== - dependencies: - "@types/node" "*" - -"@types/connect-history-api-fallback@^1.3.5": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" - integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" - integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - dependencies: - "@types/node" "*" - -"@types/createjs-lib@*": - version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/createjs-lib/-/createjs-lib-0.0.33.tgz#03b0d67f6ae33a4e3239ef2184ccbb4fe4a91844" - integrity sha512-mvK1sn2qSyGPwctg/MsjAP5m3/TBx83eB0hcEdZ6UqpuzQqCUWpVyyQddqkbAsKRpMECK0s7JosYXoTtIuNbhw== - -"@types/createjs@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/createjs/-/createjs-0.0.29.tgz#4d19b0feaa38252dcd79d78a38a4cc6df3f181fc" - integrity sha512-bDZJTAEoGZw12zjXHLrcQHz0tuyv+MMlFh9tLm7DWZfF33biqWaXQgk4g7pMvploRu42sbH4XkXVJ7Wz9O1sCg== - dependencies: - "@types/createjs-lib" "*" - "@types/easeljs" "*" - "@types/preloadjs" "*" - "@types/soundjs" "*" - "@types/tweenjs" "*" - -"@types/crypto-js@^4.0.1": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@types/crypto-js/-/crypto-js-4.2.2.tgz#771c4a768d94eb5922cc202a3009558204df0cea" - integrity sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ== - -"@types/easeljs@*": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/easeljs/-/easeljs-1.0.5.tgz#f6641c3bd496fb892b90f9bd5f81a77fb4733932" - integrity sha512-YRWGkZdq4trhJhieE0NdLTbOp5zT5yunPJKNqQJWq/X8y7qlmGeQB8hPnQHzMbW9iY38ZV91oXgW7V3U5VY2uw== - dependencies: - "@types/createjs-lib" "*" - "@types/tweenjs" "*" - -"@types/eslint-scope@^3.7.7": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - -"@types/eslint@*": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" - integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.6": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" - integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== - -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz#41fec4ea20e9c7b22f024ab88a95c6bb288f51b8" - integrity sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express-serve-static-core@^4.17.33": - version "4.19.6" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" - integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@*": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.1.tgz#138d741c6e5db8cc273bec5285cd6e9d0779fc9f" - integrity sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^5.0.0" - "@types/serve-static" "*" - -"@types/express@^4.17.13": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/hammerjs@^2.0.41": - version "2.0.46" - resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.46.tgz#381daaca1360ff8a7c8dff63f32e69745b9fb1e1" - integrity sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw== - -"@types/html-minifier-terser@^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" - integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== - -"@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== - -"@types/http-proxy@^1.17.8": - version "1.17.16" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.16.tgz#dee360707b35b3cc85afcde89ffeebff7d7f9240" - integrity sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w== - dependencies: - "@types/node" "*" - -"@types/isomorphic-fetch@^0.0.35": - version "0.0.35" - resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz#c1c0d402daac324582b6186b91f8905340ea3361" - integrity sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - -"@types/jquery@^3.3.38": - version "3.5.32" - resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.32.tgz#3eb0da20611b92c7c49ebed6163b52a4fdc57def" - integrity sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ== - dependencies: - "@types/sizzle" "*" - -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/lodash@^4.14.155": - version "4.17.16" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.16.tgz#94ae78fab4a38d73086e962d0b65c30d816bfb0a" - integrity sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g== - -"@types/mime@^1": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" - integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== - -"@types/node-fetch@^2.1.2": - version "2.6.12" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03" - integrity sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA== - dependencies: - "@types/node" "*" - form-data "^4.0.0" - -"@types/node-forge@^1.3.0": - version "1.3.11" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" - integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== - dependencies: - "@types/node" "*" - -"@types/node@*": - version "22.14.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.14.0.tgz#d3bfa3936fef0dbacd79ea3eb17d521c628bb47e" - integrity sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA== - dependencies: - undici-types "~6.21.0" - -"@types/node@^14.0.11": - version "14.18.63" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" - integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ== - -"@types/offscreencanvas@~2019.3.0": - version "2019.3.0" - resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" - integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q== - -"@types/pixi.js@5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/pixi.js/-/pixi.js-5.0.0.tgz#3fbd6d9d26cb563a0f2870e0ea767bc62dddf1b8" - integrity sha512-yZqQBR043lRBlBZci2cx6hgmX0fvBfYIqFm6VThlnueXEjitxd3coy+BGsqsZ7+ary7O//+ks4aJRhC5MJoHqA== - dependencies: - pixi.js "*" - -"@types/preloadjs@*": - version "0.6.36" - resolved "https://registry.yarnpkg.com/@types/preloadjs/-/preloadjs-0.6.36.tgz#9e40f988dce9b1d5a71d4a9d145d3f60e813cdf6" - integrity sha512-/Xo6BRCkvZiw0VXHszRQJnnTHyfkISPD5DiMj0JDrmQWiw104BxoijjeIlZ0umQxXEUb+gWLZsdZbuEhmP5vsw== - dependencies: - "@types/createjs-lib" "*" - -"@types/q@^1.5.1": - version "1.5.8" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" - integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== - -"@types/qs@*": - version "6.9.18" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.18.tgz#877292caa91f7c1b213032b34626505b746624c2" - integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== - -"@types/range-parser@*": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" - integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== - -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== - -"@types/seedrandom@2.4.27": - version "2.4.27" - resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.27.tgz#9db563937dd86915f69092bc43259d2f48578e41" - integrity sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ== - -"@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-index@^1.9.1": - version "1.9.4" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" - integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== - dependencies: - "@types/express" "*" - -"@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" - integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== - dependencies: - "@types/http-errors" "*" - "@types/node" "*" - "@types/send" "*" - -"@types/sizzle@*": - version "2.3.9" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.9.tgz#d4597dbd4618264c414d7429363e3f50acb66ea2" - integrity sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w== - -"@types/socket.io-client@^1.4.33": - version "1.4.36" - resolved "https://registry.yarnpkg.com/@types/socket.io-client/-/socket.io-client-1.4.36.tgz#e4f1ca065f84c20939e9850e70222202bd76ff3f" - integrity sha512-ZJWjtFBeBy1kRSYpVbeGYTElf6BqPQUkXDlHHD4k/42byCN5Rh027f4yARHCink9sKAkbtGZXEAmR0ZCnc2/Ag== - -"@types/sockjs@^0.3.33": - version "0.3.36" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" - integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== - dependencies: - "@types/node" "*" - -"@types/soundjs@*": - version "0.6.31" - resolved "https://registry.yarnpkg.com/@types/soundjs/-/soundjs-0.6.31.tgz#ca55cf777830efb55fa752191ec1ef9ca0fcd69d" - integrity sha512-5bditJi7P1YbRIRa1UFxIr+8vKJYEc6nTZb5NL0647rWGqGf8Ih4GD+0aDWteWIG17EXPw+VTOQE/8LHitnn4A== - dependencies: - "@types/createjs-lib" "*" - "@types/preloadjs" "*" - -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - -"@types/tweenjs@*": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/tweenjs/-/tweenjs-1.0.8.tgz#800748b468a36ceb16e58a268dba3c370dd023f2" - integrity sha512-/HTVWu8c+AUJFK9P6b3LRzfodAYwDogtQKoH3ovZmnOY4aNJf+k3VqPx+D+AsLZP06AmoSLzqu9n/E5XCglCZw== - dependencies: - "@types/createjs-lib" "*" - -"@types/w3c-web-usb@^1.0.8": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz#cf89cccd2d93b6245e784c19afe0a9f5038d4528" - integrity sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ== - -"@types/web-bluetooth@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz#74bd1c8fd3a2058cb6fc76b188fcded50a83d866" - integrity sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw== - -"@types/webgl-ext@0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" - integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== - -"@types/webgl2@0.0.4": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.4.tgz#c3b0f9d6b465c66138e84e64cb3bdf8373c2c279" - integrity sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw== - -"@types/webpack-env@^1.15.2": - version "1.18.8" - resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.18.8.tgz#71f083718c094204d7b64443701d32f1db3989e3" - integrity sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A== - -"@types/ws@^8.5.5": - version "8.18.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" - integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== - dependencies: - "@types/node" "*" - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^13.0.0": - version "13.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" - integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/experimental-utils@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" - integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^3.1.0": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" - integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "3.10.1" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/parser@^6.7.5": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== - dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - -"@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== - -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== - -"@typescript-eslint/typescript-estree@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== - dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== - dependencies: - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== - dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" - integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== - -"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" - integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== - dependencies: - "@webassemblyjs/helper-numbers" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - -"@webassemblyjs/floating-point-hex-parser@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" - integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== - -"@webassemblyjs/helper-api-error@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" - integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== - -"@webassemblyjs/helper-buffer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" - integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== - -"@webassemblyjs/helper-numbers@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" - integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.13.2" - "@webassemblyjs/helper-api-error" "1.13.2" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" - integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== - -"@webassemblyjs/helper-wasm-section@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" - integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/wasm-gen" "1.14.1" - -"@webassemblyjs/ieee754@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" - integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" - integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" - integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== - -"@webassemblyjs/wasm-edit@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" - integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/helper-wasm-section" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-opt" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - "@webassemblyjs/wast-printer" "1.14.1" - -"@webassemblyjs/wasm-gen@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" - integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wasm-opt@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" - integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - -"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" - integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-api-error" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wast-printer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" - integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== - -"@webpack-cli/info@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== - -"@webpack-cli/serve@^2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== - -"@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== - -abab@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -accepts@~1.3.4, 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@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -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@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn@^5.5.3: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.0.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.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.14.0, acorn@^8.8.2, acorn@^8.9.0: - version "8.14.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" - integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA== - -ajv-errors@^1.0.0: - 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-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^3.1.0, 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-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: - 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.0, ajv@^8.0.1, ajv@^8.9.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== - -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -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-html-community@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -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.0.0, 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.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -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== - -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.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -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== - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -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 sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" - integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== - dependencies: - call-bound "^1.0.3" - is-array-buffer "^3.0.5" - -array-equal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.2.tgz#a8572e64e822358271250b9156d20d96ef5dec04" - integrity sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA== - -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-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-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.reduce@^1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz#42f97f5078daedca687d4463fd3c05cbfd83da57" - integrity sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.4" - define-properties "^1.2.1" - es-abstract "^1.23.9" - es-array-method-boxes-properly "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - is-string "^1.1.1" - -arraybuffer.prototype.slice@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" - integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - is-array-buffer "^3.0.4" - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -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 sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - -assertion-error@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -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-function@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" - integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.4.1, 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 sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -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== - -audiobuffer-to-wav@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/audiobuffer-to-wav/-/audiobuffer-to-wav-1.0.0.tgz#d5b432271455e7fee56b111cd0f8d620d7f9e105" - integrity sha512-CAoir4NRrAzAgYo20tEMiKZR84coE8bq/L+H2kwAaULVY4+0xySsEVtNT5raqpzmH6y0pqzY6EmoViLd9W8F/w== - -autoprefixer@^9.4.3: - 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" - -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.13.2" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef" - integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== - -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== - dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" - -babel-loader@^8.0.6: - version "8.4.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.4.1.tgz#6ccb75c66e62c3b144e1c5f2eaec5b8f6c08c675" - integrity sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA== - dependencies: - find-cache-dir "^3.3.1" - loader-utils "^2.0.4" - make-dir "^3.1.0" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.0: - 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@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" - integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - find-up "^3.0.0" - istanbul-lib-instrument "^3.3.0" - test-exclude "^5.2.3" - -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== - dependencies: - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.13" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" - integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.4" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" - integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" - core-js-compat "^3.40.0" - -babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" - integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.4" - -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== - dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== - -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== - -base64-arraybuffer@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" - integrity sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg== - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g== - -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@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw== - -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" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ== - dependencies: - callsite "1.0.0" - -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@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -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" - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird@^3.3.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -body-parser@1.20.3, body-parser@^1.16.1: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - 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.13.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour-service@^1.0.11: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" - integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== - dependencies: - fast-deep-equal "^3.1.3" - multicast-dns "^7.2.5" - -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 sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -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" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^2.3.1: - 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.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -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-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.24.0, browserslist@^4.24.4: - version "4.24.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" - integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== - dependencies: - caniuse-lite "^1.0.30001688" - electron-to-chromium "^1.5.73" - node-releases "^2.0.19" - update-browserslist-db "^1.1.1" - -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-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== - -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@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -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" - -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -call-bind@^1.0.7, call-bind@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" - integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== - dependencies: - call-bind-apply-helpers "^1.0.0" - es-define-property "^1.0.0" - get-intrinsic "^1.2.4" - set-function-length "^1.2.2" - -call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" - integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== - dependencies: - call-bind-apply-helpers "^1.0.2" - get-intrinsic "^1.3.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" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ== - -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== - -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@^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== - -can-use-dom@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" - integrity sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001688: - version "1.0.30001712" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001712.tgz#41ee150f12de11b5f57c5889d4f30deb451deedf" - integrity sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig== - -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 sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - -chai@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" - integrity sha512-eRYY0vPS2a9zt5w5Z0aCeWbrXTEyvk7u/Xf71EzNObrjSCPgMm1Nku/D/u2tiqHBX5j40wWhj54YJLtgn8g55A== - dependencies: - assertion-error "^1.0.1" - deep-eql "^0.1.3" - type-detect "^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.1, 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: - 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" - -chokidar@^3.0.0, chokidar@^3.5.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - 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" - -chrome-trace-event@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" - integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== - -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== - -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" - -clean-css@^5.2.2: - version "5.3.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" - integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== - dependencies: - source-map "~0.6.0" - -clean-webpack-plugin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-1.0.1.tgz#b16ee2f1386aea403010236e632447c7d3505f5a" - integrity sha512-gvwfMsqu3HBgTVvaBa1H3AZKO03CHpr5uP92SPIktP3827EovAitwW+1xoqXyTxCuXnLYpMHG5ytS4AoukHDWA== - dependencies: - rimraf "^2.6.1" - -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" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -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" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.3: - 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 sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, 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== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" - -colorette@^2.0.10, colorette@^2.0.14: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -colors@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -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@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -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@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -common-tags@^1.4.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -complex.js@^2.0.11: - version "2.4.2" - resolved "https://registry.yarnpkg.com/complex.js/-/complex.js-2.4.2.tgz#76f260a9e7e232d8ad26348484a9b128c13fcc9a" - integrity sha512-qtx7HRhPGSCBtGiST4/WGHuW+zeaND/6Ld+db6PbrulIB1i2Ev/2UPiqcmpQNPSyfBKraC0EOvOKCB5dGZKt3g== - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw== - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA== - -component-emitter@^1.2.1, component-emitter@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" - integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA== - -compressible@~2.0.18: - 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.4: - version "1.8.0" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.0.tgz#09420efc96e11a0f44f3a558de59e321364180f7" - integrity sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA== - dependencies: - bytes "3.1.2" - compressible "~2.0.18" - debug "2.6.9" - negotiator "~0.6.4" - on-headers "~1.0.2" - safe-buffer "5.2.1" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -connect-history-api-fallback@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" - integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== - -connect@^3.6.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - -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, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.4.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -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.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw== - -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== - -copy-anything@^2.0.1: - version "2.0.6" - resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" - integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== - dependencies: - is-what "^3.14.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - -core-js-compat@^3.40.0: - version "3.41.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" - integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== - dependencies: - browserslist "^4.24.4" - -core-js@^2.6.2: - 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.6.4: - version "3.41.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.41.0.tgz#57714dafb8c751a6095d028a7428f1fb5834a776" - integrity sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA== - -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 sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - -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== - -cosmiconfig@^5.0.0: - 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" - -cross-env@^5.1.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" - integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ== - dependencies: - cross-spawn "^6.0.5" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.6.tgz#30d0efa0712ddb7eb5a76e1e8721bffafa6b5d57" - integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== - 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.2, cross-spawn@^7.0.3: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-js@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" - integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@^3.2.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -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.1.3: - 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== - -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -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.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" - -cuid@^2.1.6: - version "2.1.8" - resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.8.tgz#cbb88f954171e0d5747606c0139fb65c5101eac0" - integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg== - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -data-view-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" - integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-data-view "^1.0.2" - -data-view-byte-length@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" - integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-data-view "^1.0.2" - -data-view-byte-offset@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" - integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -date-format@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" - integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - 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.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^3.2.6: - 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" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.4.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== - dependencies: - ms "^2.1.3" - -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decimal.js@^10.2.1: - version "10.5.0" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.5.0.tgz#0f371c7cf6c4898ce0afb09836db73cd82010f22" - integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw== - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -deep-eql@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" - integrity sha512-6sEotTRGBFiNcqVoeHwnfopbSpi5NbH1VWJmYCVkmxMmaVTT0bUTrNaGyBwhgP4MZL012W/mkzIn3Da+iDYweg== - dependencies: - type-detect "0.1.1" - -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== - -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - -define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - 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 sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - 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 sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - 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" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -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== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -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-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== - -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== - -diff@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -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" - -dlv@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -dns-packet@^5.2.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" - integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== - dependencies: - "@leichtgewicht/ip-codec" "^2.0.1" - -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" - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -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: - 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" - -domelementtype@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@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -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.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" - -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" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dunder-proto@^1.0.0, dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -earcut@^2.1.5: - version "2.2.4" - resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" - integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -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.5.73: - version "1.5.132" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.132.tgz#081b8086d7cecc58732f7cc1f1c19306c5510c5f" - integrity sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg== - -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== - -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== - -encodeurl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" - integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== - -encoding@^0.1.11: - 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.1.0: - 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@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-client@~3.5.0: - version "3.5.4" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.4.tgz#5b40d7381772ba05c0881be5735a318424a07fc6" - integrity sha512-ydc8uuMMDxC5KCKNJN3zZKYJk2sgyTuTZQ7Aj1DJSsLKAcizA/PzWivw8fZMIjJVBo2CJOYzntv4FSjY/Lr//g== - dependencies: - component-emitter "~1.3.0" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.2.0" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - ws "~7.5.10" - xmlhttprequest-ssl "~1.6.2" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io-parser@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" - integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.4" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== - dependencies: - accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" - -enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.1: - version "5.18.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" - integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -enquirer@^2.3.5: - version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" - integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== - dependencies: - ansi-colors "^4.1.1" - strip-ansi "^6.0.1" - -ent@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.2.tgz#22a5ed2fd7ce0cbcff1d1474cf4909a44bdb6e85" - integrity sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - punycode "^1.4.1" - safe-regex-test "^1.1.0" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -envinfo@^7.7.3: - version "7.14.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" - integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== - -errno@^0.1.1: - 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.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" - -es-abstract@^1.17.2, es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9: - version "1.23.9" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.9.tgz#5b45994b7de78dada5c1bebf1379646b32b9d606" - integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== - dependencies: - array-buffer-byte-length "^1.0.2" - arraybuffer.prototype.slice "^1.0.4" - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - call-bound "^1.0.3" - data-view-buffer "^1.0.2" - data-view-byte-length "^1.0.2" - data-view-byte-offset "^1.0.1" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.1.0" - es-to-primitive "^1.3.0" - function.prototype.name "^1.1.8" - get-intrinsic "^1.2.7" - get-proto "^1.0.0" - get-symbol-description "^1.1.0" - globalthis "^1.0.4" - gopd "^1.2.0" - has-property-descriptors "^1.0.2" - has-proto "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - internal-slot "^1.1.0" - is-array-buffer "^3.0.5" - is-callable "^1.2.7" - is-data-view "^1.0.2" - is-regex "^1.2.1" - is-shared-array-buffer "^1.0.4" - is-string "^1.1.1" - is-typed-array "^1.1.15" - is-weakref "^1.1.0" - math-intrinsics "^1.1.0" - object-inspect "^1.13.3" - object-keys "^1.1.1" - object.assign "^4.1.7" - own-keys "^1.0.1" - regexp.prototype.flags "^1.5.3" - safe-array-concat "^1.1.3" - safe-push-apply "^1.0.0" - safe-regex-test "^1.1.0" - set-proto "^1.0.0" - string.prototype.trim "^1.2.10" - string.prototype.trimend "^1.0.9" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.3" - typed-array-byte-length "^1.0.3" - typed-array-byte-offset "^1.0.4" - typed-array-length "^1.0.7" - unbox-primitive "^1.1.0" - which-typed-array "^1.1.18" - -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-define-property@^1.0.0, es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-module-lexer@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" - integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -es-to-primitive@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" - integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== - dependencies: - is-callable "^1.2.7" - is-date-object "^1.0.5" - is-symbol "^1.0.4" - -es6-promise-polyfill@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz#f38925f23cb3e3e8ce6cda8ff774fcebbb090cde" - integrity sha512-HHb0vydCpoclpd0ySPkRXMmBw80MRt1wM4RBJBlXkux97K7gleabZdsR0gvE1nNPM9mgOZIBTzjjXiPxf4lIqQ== - -escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -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-latex@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1" - integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== - -escape-string-regexp@1.0.5, 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 sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -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@^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.9.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" - -eslint-config-prettier@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -eslint-loader@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-4.0.2.tgz#386a1e21bcb613b3cf2d252a3b708023ccfb41ec" - integrity sha512-EDpXor6lsjtTzZpLUn7KmXs02+nIjGcgees9BYjNkWra3jVq5vVa8IoCKgzT2M7dNNeoMBtaSG83Bd40N3poLw== - dependencies: - find-cache-dir "^3.3.1" - fs-extra "^8.1.0" - loader-utils "^2.0.0" - object-hash "^2.0.3" - schema-utils "^2.6.5" - -eslint-plugin-prettier@^5.1.3: - version "5.2.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz#be39e3bb23bb3eeb7e7df0927cdb46e4d7945096" - integrity sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.11.0" - -eslint-rule-composer@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" - integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== - -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== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1, eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.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-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, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@7.32.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.7.0: - version "8.57.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.1" - "@humanwhocodes/config-array" "^0.13.0" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - 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.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - 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.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - 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.3" - strip-ansi "^6.0.1" - text-table "^0.2.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.1, espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -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, esquery@^1.4.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - dependencies: - estraverse "^5.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.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: - version "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: - 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== - -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -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@^3.0.0, events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -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@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - 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" - -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== - dependencies: - "@jest/types" "^24.9.0" - ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" - -express@^4.17.3: - version "4.21.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.3" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.12" - proxy-addr "~2.0.7" - qs "6.13.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - 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 sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - 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== - -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-text-webpack-plugin@^4.0.0-beta.0: - version "4.0.0-beta.0" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz#f7361d7ff430b42961f8d1321ba8c1757b5d4c42" - integrity sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA== - dependencies: - async "^2.4.1" - loader-utils "^1.1.0" - schema-utils "^0.4.5" - webpack-sources "^1.1.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -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== - -face-api.js@^0.22.1: - version "0.22.2" - resolved "https://registry.yarnpkg.com/face-api.js/-/face-api.js-0.22.2.tgz#5accbf7e53b1569685d116a7e18dbc4800770d39" - integrity sha512-9Bbv/yaBRTKCXjiDqzryeKhYxmgSjJ7ukvOvEBy6krA0Ah/vNBlsf7iBNfJljWiPA8Tys1/MnB3lyP2Hfmsuyw== - dependencies: - "@tensorflow/tfjs-core" "1.7.0" - tslib "^1.11.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.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.9: - version "3.3.3" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - 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.8" - -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 sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-uri@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" - integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== - -fastest-levenshtein@^1.0.12: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.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@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" - integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" - -file-saver@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" - integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== - -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== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - 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.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== - dependencies: - debug "2.6.9" - encodeurl "~2.0.0" - 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@^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-up@3.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: - 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" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flat@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" - integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== - dependencies: - is-buffer "~2.0.3" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -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.2.9: - version "3.3.3" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" - integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== - -follow-redirects@^1.0.0: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== - -fontfaceonload@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fontfaceonload/-/fontfaceonload-1.0.2.tgz#b783b4d252ab559a073b697586c49cd21c8ff5e7" - integrity sha512-OsgQJ62yiUO8w9MvwfhWjS3AMzJnaG2HB8PhaLwxAbFb+CahxZueiz1jBfV/JqIdGxLpZB7prCB3+IsgsDQqCA== - -for-each@^0.3.3, for-each@^0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" - integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== - dependencies: - is-callable "^1.2.7" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - -form-data@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" - integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - 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.0.12: - version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" - integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - 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== - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-monkey@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" - integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -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.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.1, function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" - integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - functions-have-names "^1.2.3" - hasown "^2.0.2" - is-callable "^1.2.7" - -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 sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -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-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.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - dependencies: - call-bind-apply-helpers "^1.0.2" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - function-bind "^1.1.2" - get-proto "^1.0.1" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.1.0" - -get-proto@^1.0.0, get-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.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@^6.0.0: - 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.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" - integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - -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 sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.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.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== - dependencies: - is-glob "^4.0.3" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - 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.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: - 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" - -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@^13.19.0, globals@^13.6.0, globals@^13.9.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== - dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" - -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" - -gopd@^1.0.1, gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== - -hammerjs@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" - integrity sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -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" - -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.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" - integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -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, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" - integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== - dependencies: - dunder-proto "^1.0.0" - -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - 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 sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - 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 sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== - -hasown@^2.0.0, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -he@1.2.0, he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -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== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-entities@^2.3.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" - integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== - -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-minifier-terser@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" - integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -html-webpack-plugin@^5.5.3: - version "5.6.3" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz#a31145f0fee4184d53a794f9513147df1e653685" - integrity sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg== - dependencies: - "@types/html-minifier-terser" "^6.0.0" - html-minifier-terser "^6.0.2" - lodash "^4.17.21" - pretty-error "^4.0.0" - tapable "^2.0.0" - -html-webpack-template@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/html-webpack-template/-/html-webpack-template-6.2.0.tgz#3c9f15f616f4500927909d34adfbccb20d37943c" - integrity sha512-wyzIjbe9yXGyQ6yAeFjWmku7YOlW85w1dxqLnAQ564uRNNoBhpZVTQl7ouROoyQrfZUSoPUJiw7oWn31NDiuQQ== - -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-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -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-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.9" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.9.tgz#b817b3ca0edea6236225000d795378707c169cec" - integrity sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw== - -http-proxy-middleware@^2.0.3: - version "2.0.7" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6" - integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== - dependencies: - "@types/http-proxy" "^1.17.8" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - -http-proxy@^1.13.0, 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 sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -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@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -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.2.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== - dependencies: - import-from "^2.1.0" - -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.2.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" - integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== - dependencies: - resolve-from "^3.0.0" - -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.2.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" - integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== - 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 sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -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== - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: - 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.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -internal-slot@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" - integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== - dependencies: - es-errors "^1.3.0" - hasown "^2.0.2" - side-channel "^1.1.0" - -interpret@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" - integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== - -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -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== - -ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== - -is-accessor-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" - integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== - dependencies: - hasown "^2.0.0" - -is-any-array@^2.0.0, is-any-array@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-any-array/-/is-any-array-2.0.1.tgz#9233242a9c098220290aa2ec28f82ca7fa79899e" - integrity sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ== - -is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" - integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - get-intrinsic "^1.2.6" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-async-function@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" - integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== - dependencies: - async-function "^1.0.0" - call-bound "^1.0.3" - get-proto "^1.0.1" - has-tostringtag "^1.0.2" - safe-regex-test "^1.1.0" - -is-bigint@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" - integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== - dependencies: - has-bigints "^1.0.2" - -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.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" - integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -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.3: - 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.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -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-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.16.0: - version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== - dependencies: - hasown "^2.0.2" - -is-data-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" - integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== - dependencies: - hasown "^2.0.0" - -is-data-view@^1.0.1, is-data-view@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" - integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== - dependencies: - call-bound "^1.0.2" - get-intrinsic "^1.2.6" - is-typed-array "^1.1.13" - -is-date-object@^1.0.5, is-date-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" - integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== - dependencies: - call-bound "^1.0.2" - has-tostringtag "^1.0.2" - -is-descriptor@^0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" - integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" - integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -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, is-docker@^2.1.1: - 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 sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -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.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-finalizationregistry@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" - integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== - dependencies: - call-bound "^1.0.3" - -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 sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -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-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.10: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" - integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== - dependencies: - call-bound "^1.0.3" - get-proto "^1.0.0" - has-tostringtag "^1.0.2" - safe-regex-test "^1.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-map@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" - integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== - -is-number-object@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" - integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - 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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -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== - -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.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-regex@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" - integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== - dependencies: - call-bound "^1.0.2" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-set@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" - integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== - -is-shared-array-buffer@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" - integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== - dependencies: - call-bound "^1.0.3" - -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -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-string@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" - integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== - dependencies: - call-bound "^1.0.3" - has-tostringtag "^1.0.2" - -is-symbol@^1.0.4, is-symbol@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" - integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== - dependencies: - call-bound "^1.0.2" - has-symbols "^1.1.0" - safe-regex-test "^1.1.0" - -is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" - integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== - dependencies: - which-typed-array "^1.1.16" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakmap@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" - integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== - -is-weakref@^1.0.2, is-weakref@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" - integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== - dependencies: - call-bound "^1.0.3" - -is-weakset@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" - integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== - dependencies: - call-bound "^1.0.3" - get-intrinsic "^1.2.6" - -is-what@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" - integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== - -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-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - -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: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ== - -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== - -isbinaryfile@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -ismobilejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" - integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - 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 sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isomorphic-fetch@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA== - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - -istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-report@^2.0.4: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" - -istanbul-lib-source-maps@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" - integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== - dependencies: - html-escaper "^2.0.0" - -javascript-natural-sort@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" - integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== - -jest-changed-files@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" - integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== - dependencies: - "@jest/types" "^24.9.0" - execa "^1.0.0" - throat "^4.0.0" - -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" - integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== - dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - import-local "^2.0.0" - is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^13.3.0" - -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" - -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== - dependencies: - chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== - dependencies: - detect-newline "^2.1.0" - -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== - dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - jsdom "^11.5.1" - -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== - -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== - dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" - -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^24.9.0" - is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== - dependencies: - chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== - dependencies: - "@jest/types" "^24.9.0" - -jest-pnp-resolver@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" - integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== - -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" - integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== - dependencies: - "@jest/types" "^24.9.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" - -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== - dependencies: - "@jest/types" "^24.9.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" - -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" - -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== - -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" - -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" - -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== - dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" - -jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" - integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== - dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - jest-util "^24.9.0" - string-length "^2.0.0" - -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" - integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== - dependencies: - import-local "^2.0.0" - jest-cli "^24.9.0" - -"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.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" - -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.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" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsesc@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" - integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== - -jsesc@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-better-errors@^1.0.1: - 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.1: - 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 sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -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 sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -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" - -karma-chai@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/karma-chai/-/karma-chai-0.1.0.tgz#bee5ad40400517811ae34bb945f762909108b79a" - integrity sha512-mqKCkHwzPMhgTYca10S90aCEX9+HjVjjrBFAsw36Zj7BlQNbokXXCAe6Ji04VUMsxcY5RLP7YphpfO06XOubdg== - -karma-chrome-launcher@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz#eb9c95024f2d6dfbb3748d3415ac9b381906b9a9" - integrity sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q== - dependencies: - which "^1.2.1" - -karma-mocha@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" - integrity sha512-twRO+KCXIFOBs7o6i7oIpTJhVvjKZbIsUM96A+k2QaeXOzbVQXCkjVzXqNeQoczW4ruasPZYi0iWMTkfTrQVCw== - dependencies: - minimist "1.2.0" - -karma@^4.2.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.4.1.tgz#6d9aaab037a31136dc074002620ee11e8c2e32ab" - integrity sha512-L5SIaXEYqzrh6b1wqYC42tNsFMx2PWuxky84pK9coK09MvmL7mxii3G3bZBh/0rvD27lqDd0le9jyhzvwif73A== - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - braces "^3.0.2" - chokidar "^3.0.0" - colors "^1.1.0" - connect "^3.6.0" - di "^0.0.1" - dom-serialize "^2.2.0" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.14" - log4js "^4.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" - source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -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 sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - 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 sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^6.0.2: - 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== - -launch-editor@^2.6.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.10.0.tgz#5ca3edfcb9667df1e8721310f3a40f1127d4bc42" - integrity sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA== - dependencies: - picocolors "^1.0.0" - shell-quote "^1.8.1" - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - -less-loader@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466" - integrity sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg== - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^4.0.1" - -less@^3.10.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz#0ebc91d2a0e9c0c6735b83d496b0ab0583077909" - integrity sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw== - dependencies: - copy-anything "^2.0.1" - tslib "^1.10.0" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - make-dir "^2.1.0" - mime "^1.4.1" - native-request "^1.0.5" - source-map "~0.6.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== - -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" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -libsvm-js@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/libsvm-js/-/libsvm-js-0.2.1.tgz#607a0b073fb0a635546ca5b93b7205282051a877" - integrity sha512-tN9gh91NCAwSIhjgG3y8pdKETTwnwFvvSFNIrQQuJGVtAu0SO6Y43D7OEKMSVhQLQkgLADlDaqo9uxNGVEzJEA== - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -loader-runner@^4.2.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: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0, loader-utils@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -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 sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.merge@^4.6.0, 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.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== - -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - -log4js@^4.0.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.5.1.tgz#e543625e97d9e6f3e6e7c9fc196dd6ab2cae30b5" - integrity sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw== - dependencies: - date-format "^2.0.0" - debug "^4.1.1" - flatted "^2.0.0" - rfdc "^1.1.4" - streamroller "^1.0.6" - -loglevel-colored-level-prefix@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" - integrity sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA== - dependencies: - chalk "^1.1.3" - loglevel "^1.4.1" - -loglevel@^1.4.1: - version "1.9.2" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.2.tgz#c2e028d6c757720107df4e64508530db6621ba08" - integrity sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg== - -loose-envify@^1.0.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" - -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.1.x: - 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" - -make-dir@^2.1.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.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" - -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-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -mathjs@^7.1.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-7.6.0.tgz#f0b7579e0756b13422995d0c4f29bd17d65d4dcc" - integrity sha512-abywR28hUpKF4at5jE8Ys+Kigk40eKMT5mcBLD0/dtsqjfOLbtzd3WjlRqIopNo7oQ6FME51qph6lb8h/bhpUg== - dependencies: - complex.js "^2.0.11" - decimal.js "^10.2.1" - escape-latex "^1.2.0" - fraction.js "^4.0.12" - javascript-natural-sort "^0.7.1" - seed-random "^2.2.0" - tiny-emitter "^2.1.0" - typed-function "^2.0.0" - -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== - -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== - -memfs@^3.4.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" - integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== - dependencies: - fs-monkey "^1.0.4" - -merge-descriptors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== - -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: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -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== - -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.0, micromatch@^4.0.2, micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -"mime-db@>= 1.43.0 < 2": - version "1.54.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" - integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== - -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, 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, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.0.3, mime@^2.3.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -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== - -mini-css-extract-plugin@^2.7.6: - version "2.9.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" - integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== - dependencies: - schema-utils "^4.0.0" - tapable "^2.2.1" - -mini-signals@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mini-signals/-/mini-signals-1.2.0.tgz#45b08013c5fae51a24aa1a935cd317c9ed721d74" - integrity sha512-alffqMkGCjjTSwvYMVLx+7QeJ6sTuxbXqBkP21my4iWU5+QpTQAJt3h7htA1OKm9F3BpMM0vnu72QIoiJakrLA== - -minimalistic-assert@^1.0.0: - 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== - -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@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -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== - dependencies: - brace-expansion "^1.1.7" - -minimist@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw== - -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw== - -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" - -mkdirp@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" - integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== - dependencies: - minimist "^1.2.5" - -mkdirp@^0.5.1, 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" - -ml-array-max@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/ml-array-max/-/ml-array-max-1.2.4.tgz#2373e2b7e51c8807e456cc0ef364c5863713623b" - integrity sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ== - dependencies: - is-any-array "^2.0.0" - -ml-array-mean@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/ml-array-mean/-/ml-array-mean-1.1.6.tgz#d951a700dc8e3a17b3e0a583c2c64abd0c619c56" - integrity sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ== - dependencies: - ml-array-sum "^1.1.6" - -ml-array-min@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/ml-array-min/-/ml-array-min-1.2.3.tgz#662f027c400105816b849cc3cd786915d0801495" - integrity sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q== - dependencies: - is-any-array "^2.0.0" - -ml-array-rescale@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz#c4d129320d113a732e62dd963dc1695bba9a5340" - integrity sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ== - dependencies: - is-any-array "^2.0.0" - ml-array-max "^1.2.4" - ml-array-min "^1.2.3" - -ml-array-sum@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/ml-array-sum/-/ml-array-sum-1.1.6.tgz#d1d89c20793cd29c37b09d40e85681aa4515a955" - integrity sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw== - dependencies: - is-any-array "^2.0.0" - -ml-cart@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ml-cart/-/ml-cart-2.1.1.tgz#18ff8d51f5002cb6c5caba0609ba4734f1fa07f3" - integrity sha512-f6rIj4EzbjqKLJa2Qmm5AjZ0WVgk+Y7J1N/+pQVaFr0d4oM1uZPLOh5h665LyH+bLBHTFEbvSR4OLKmJRQ8KfA== - dependencies: - ml-array-mean "^1.1.5" - ml-matrix "^6.8.2" - -ml-matrix@^6.8.2: - version "6.12.1" - resolved "https://registry.yarnpkg.com/ml-matrix/-/ml-matrix-6.12.1.tgz#8fc99365f7294d27076f0ce405b589e1c04ca1b0" - integrity sha512-TJ+8eOFdp+INvzR4zAuwBQJznDUfktMtOB6g/hUcGh3rcyjxbz4Te57Pgri8Q9bhSQ7Zys4IYOGhFdnlgeB6Lw== - dependencies: - is-any-array "^2.0.1" - ml-array-rescale "^1.3.7" - -mocha@^6.2.0: - version "6.2.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" - integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "2.2.0" - minimatch "3.0.4" - mkdirp "0.5.4" - ms "2.1.1" - node-environment-flags "1.0.5" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.0" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.3, ms@^2.1.1, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns@^7.2.5: - version "7.2.5" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" - integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== - dependencies: - dns-packet "^5.2.2" - thunky "^1.0.2" - -nan@^2.12.1: - version "2.22.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.22.2.tgz#6b504fd029fb8f38c0990e52ad5c26772fdacfbb" - integrity sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ== - -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" - -native-request@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/native-request/-/native-request-1.1.2.tgz#b677952757429db6cd41972a29c3b781977413ed" - integrity sha512-/etjwrK0J4Ebbcnt35VMWnfiUX/B04uwGJxyJInagxDqf2z5drSt/lsOvEMWGYunz1kaLZAFrV4NDAbOoDKvAQ== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -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== - -negotiator@~0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" - integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== - -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== - -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== - -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-environment-flags@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" - integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-fetch@~2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - integrity sha512-IHLHYskTc2arMYsHZH82PVX8CSKT5lzb7AXeyO06QnjGDKtkv+pv3mEki6S7reB/x1QPo+YPxQRNEVgR5V/w3Q== - -node-forge@^1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" - integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-notifier@^5.4.2: - version "5.4.5" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.5.tgz#0cbc1a2b0f658493b4025775a13ad938e96091ef" - integrity sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ== - dependencies: - growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" - -node-releases@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" - integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== - -normalize-package-data@^2.3.2: - 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-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - 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" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -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 sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.1: - 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" - -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.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - 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 sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== - -nwsapi@^2.0.7: - version "2.2.20" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.20.tgz#22e53253c61e7b0e7e93cef42c891154bcca11ef" - integrity sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA== - -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.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" - integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== - -object-inspect@^1.13.3: - version "1.13.4" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" - integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== - -object-keys@^1.0.11, 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 sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.assign@^4.1.0, object.assign@^4.1.7: - version "4.1.7" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" - integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - has-symbols "^1.1.0" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz#2f1fe0606ec1a7658154ccd4f728504f69667923" - integrity sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A== - dependencies: - array.prototype.reduce "^1.0.6" - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - gopd "^1.0.1" - safe-array-concat "^1.1.2" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" - integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -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-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - 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== - -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 sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.2: - 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" - -open@^8.0.9: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g== - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1: - 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, optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - 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.5" - -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== - -own-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" - integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== - dependencies: - get-intrinsic "^1.2.6" - object-keys "^1.1.1" - safe-push-apply "^1.0.0" - -p-each-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - integrity sha512-J/e9xiZZQNrt+958FFzJ+auItsBGq+UrQ7nE89AUP7UOTtjHnkISANXLdayhVzh538UnLMCSlf13lFfRIAKQOA== - dependencies: - p-reduce "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -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@^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-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ== - -p-retry@^4.5.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== - dependencies: - "@types/retry" "0.12.0" - retry "^0.13.1" - -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== - -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" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.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-uri@^1.0.0: - version "1.0.11" - resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.11.tgz#3ce39a3102dfe548cc693a914a01a36135063490" - integrity sha512-nQQNb6GJinexGecJEbfKJdoQ9mbwAHDbYUIDTB0y+DTQaxdZwERtx7LJ631QEBFDXkcxD5+ixBYmt0n2LkWcwQ== - -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw== - dependencies: - better-assert "~1.0.0" - -parseqs@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" - integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog== - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" - integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== - -parseurl@~1.3.2, 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== - -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" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -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: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -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 sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -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-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-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.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== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -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, picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -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== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -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== - -pirates@^4.0.1: - version "4.0.7" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" - integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== - -pixi.js@*, pixi.js@5.3.7: - version "5.3.7" - resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.7.tgz#d295076cdb631a0578ee5976d9da195087b6a50e" - integrity sha512-DyFTn6sHB6njtBd879OCx7UZpt8dpVtOSNuLAdVaWZ2GhAFsTY59n07Ol0f+zx07QtpCmSt1P3pXGHjt9sPzbw== - dependencies: - "@pixi/accessibility" "5.3.7" - "@pixi/app" "5.3.7" - "@pixi/constants" "5.3.7" - "@pixi/core" "5.3.7" - "@pixi/display" "5.3.7" - "@pixi/extract" "5.3.7" - "@pixi/filter-alpha" "5.3.7" - "@pixi/filter-blur" "5.3.7" - "@pixi/filter-color-matrix" "5.3.7" - "@pixi/filter-displacement" "5.3.7" - "@pixi/filter-fxaa" "5.3.7" - "@pixi/filter-noise" "5.3.7" - "@pixi/graphics" "5.3.7" - "@pixi/interaction" "5.3.7" - "@pixi/loaders" "5.3.7" - "@pixi/math" "5.3.7" - "@pixi/mesh" "5.3.7" - "@pixi/mesh-extras" "5.3.7" - "@pixi/mixin-cache-as-bitmap" "5.3.7" - "@pixi/mixin-get-child-by-name" "5.3.7" - "@pixi/mixin-get-global-position" "5.3.7" - "@pixi/particles" "5.3.7" - "@pixi/polyfill" "5.3.7" - "@pixi/prepare" "5.3.7" - "@pixi/runner" "5.3.7" - "@pixi/settings" "5.3.7" - "@pixi/sprite" "5.3.7" - "@pixi/sprite-animated" "5.3.7" - "@pixi/sprite-tiling" "5.3.7" - "@pixi/spritesheet" "5.3.7" - "@pixi/text" "5.3.7" - "@pixi/text-bitmap" "5.3.7" - "@pixi/ticker" "5.3.7" - "@pixi/utils" "5.3.7" - -pixi.js@5.3.12: - version "5.3.12" - resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.12.tgz#1ae667dc066665b536269b0695406811a63b92fe" - integrity sha512-XZzUhrq/m6fx3E0ESv/zXKEVR/GW82dPmbwdapIqsgAldKT2QqBYMfz1WuPf+Q9moPapywVNjjyxPvh+DNPmIg== - dependencies: - "@pixi/accessibility" "5.3.12" - "@pixi/app" "5.3.12" - "@pixi/constants" "5.3.12" - "@pixi/core" "5.3.12" - "@pixi/display" "5.3.12" - "@pixi/extract" "5.3.12" - "@pixi/filter-alpha" "5.3.12" - "@pixi/filter-blur" "5.3.12" - "@pixi/filter-color-matrix" "5.3.12" - "@pixi/filter-displacement" "5.3.12" - "@pixi/filter-fxaa" "5.3.12" - "@pixi/filter-noise" "5.3.12" - "@pixi/graphics" "5.3.12" - "@pixi/interaction" "5.3.12" - "@pixi/loaders" "5.3.12" - "@pixi/math" "5.3.12" - "@pixi/mesh" "5.3.12" - "@pixi/mesh-extras" "5.3.12" - "@pixi/mixin-cache-as-bitmap" "5.3.12" - "@pixi/mixin-get-child-by-name" "5.3.12" - "@pixi/mixin-get-global-position" "5.3.12" - "@pixi/particles" "5.3.12" - "@pixi/polyfill" "5.3.12" - "@pixi/prepare" "5.3.12" - "@pixi/runner" "5.3.12" - "@pixi/settings" "5.3.12" - "@pixi/sprite" "5.3.12" - "@pixi/sprite-animated" "5.3.12" - "@pixi/sprite-tiling" "5.3.12" - "@pixi/spritesheet" "5.3.12" - "@pixi/text" "5.3.12" - "@pixi/text-bitmap" "5.3.12" - "@pixi/ticker" "5.3.12" - "@pixi/utils" "5.3.12" - -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" - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -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 sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -possible-typed-array-names@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" - integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-flexbugs-fixes@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" - integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== - dependencies: - postcss "^7.0.26" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" - integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.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@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, 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" - -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 sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - -prettier-eslint@^16.3.0: - version "16.3.0" - resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-16.3.0.tgz#8f7bbc863f35939948e386eafe72ffd653b2d80b" - integrity sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg== - dependencies: - "@typescript-eslint/parser" "^6.7.5" - common-tags "^1.4.0" - dlv "^1.1.0" - eslint "^8.7.0" - indent-string "^4.0.0" - lodash.merge "^4.6.0" - loglevel-colored-level-prefix "^1.0.0" - prettier "^3.0.1" - pretty-format "^29.7.0" - require-relative "^0.8.7" - typescript "^5.2.2" - vue-eslint-parser "^9.1.0" - -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@^3.0.1, prettier@^3.2.5: - version "3.5.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" - integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== - -pretty-error@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" - integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== - dependencies: - lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -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== - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -prompts@^2.0.1: - 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" - -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" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - -psl@^1.1.28: - version "1.15.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" - integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== - dependencies: - punycode "^2.3.1" - -pump@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" - integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - -qjobs@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== - dependencies: - side-channel "^1.0.6" - -qs@^6.12.3: - version "6.14.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== - dependencies: - side-channel "^1.1.0" - -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== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -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" - -range-parser@^1.2.0, range-parser@^1.2.1, 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.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^16.8.4: - 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@^18.0.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -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" - -realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== - dependencies: - util.promisify "^1.0.0" - -rechoir@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" - integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== - dependencies: - resolve "^1.20.0" - -reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" - integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-abstract "^1.23.9" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.7" - get-proto "^1.0.1" - which-builtin-type "^1.2.1" - -regenerate-unicode-properties@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" - integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== - 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.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - 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.prototype.flags@^1.5.3: - version "1.5.4" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" - integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== - dependencies: - call-bind "^1.0.8" - define-properties "^1.2.1" - es-errors "^1.3.0" - get-proto "^1.0.1" - gopd "^1.2.0" - set-function-name "^2.0.2" - -regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -regexpu-core@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" - integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.0" - regjsgen "^0.8.0" - regjsparser "^0.12.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -regjsgen@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" - integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== - -regjsparser@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" - integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== - dependencies: - jsesc "~3.0.2" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -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 sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -renderkid@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" - integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^6.0.1" - -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.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.5: - version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.87.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 sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -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== - -require-relative@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" - integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== - -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== - -resize-observer-polyfill@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== - 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-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -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 sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== - -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: - version "1.22.10" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" - integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== - dependencies: - is-core-module "^2.16.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resource-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/resource-loader/-/resource-loader-3.0.1.tgz#33355bb5421e2994f59454bbc7f6dbff8df06d47" - integrity sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA== - dependencies: - mini-signals "^1.2.0" - parse-uri "^1.0.0" - -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== - -retry@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" - integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rfdc@^1.1.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" - integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== - -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, 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.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" - -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-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" - -safe-array-concat@^1.1.2, safe-array-concat@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" - integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - get-intrinsic "^1.2.6" - has-symbols "^1.1.0" - isarray "^2.0.5" - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, 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-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-push-apply@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" - integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== - dependencies: - es-errors "^1.3.0" - isarray "^2.0.5" - -safe-regex-test@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" - integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - is-regex "^1.2.1" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - 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" - -sax@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" - integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== - -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== - -schema-utils@^0.4.5: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.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.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0: - 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.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^4.0.0, schema-utils@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" - integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -scrollbarwidth@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/scrollbarwidth/-/scrollbarwidth-0.1.3.tgz#1b0de64e288c38c427f4a01fe00a462a04b94fdf" - integrity sha512-edjn9izGjWKgnZo7A3OFsAI6otfGWp/0JLrIhe7vE/CbHZF6rwsHARwxXek0sd7ZoJxHKPl+OEA6jbqJiQQGtw== - -seed-random@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/seed-random/-/seed-random-2.2.0.tgz#2a9b19e250a817099231a5b99a4daf80b7fbed54" - integrity sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ== - -seedrandom@2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc" - integrity sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q== - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^2.1.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" - integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== - dependencies: - "@types/node-forge" "^1.3.0" - node-forge "^1" - -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.6, semver@^7.5.4: - version "7.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" - integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== - -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== - 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@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== - dependencies: - encodeurl "~2.0.0" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.19.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-function-length@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-function-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -set-proto@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" - integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== - dependencies: - dunder-proto "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - -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" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - 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 sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -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.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" - integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== - -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== - -side-channel-list@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" - integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - -side-channel-map@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" - integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - -side-channel-weakmap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" - integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - side-channel-map "^1.0.1" - -side-channel@^1.0.6, side-channel@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" - integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - side-channel-list "^1.0.0" - side-channel-map "^1.0.1" - side-channel-weakmap "^1.0.2" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - 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-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -simplebar@^3.1.1: - version "3.1.5" - resolved "https://registry.yarnpkg.com/simplebar/-/simplebar-3.1.5.tgz#257f2d0836baa250cd2a8841892a10c3c3081b17" - integrity sha512-6hPEvcUEbgRWAyldqdd5yd1OcrnxelopEOKwMwOafLc0/Kc3Um2x1US8t+feUAA5ae+lTbrQwcGJvMH+9A23FA== - dependencies: - can-use-dom "^0.1.0" - core-js "^2.6.2" - lodash.debounce "^4.0.8" - lodash.memoize "^4.1.2" - lodash.throttle "^4.1.1" - resize-observer-polyfill "^1.5.0" - scrollbarwidth "^0.1.3" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -skmeans@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/skmeans/-/skmeans-0.11.3.tgz#6d4dafb8058520a792c10bae9d9b953a6b6379f4" - integrity sha512-nccEnlSeOMNAYM9ETMSq+m15u8g0KRCIvH2an/ROTx4Igmci/j3oYHBPGdAeGjhR7knAVoIIQwr/wy2dN/eKQA== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -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@^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" - -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" - -socket.io-adapter@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" - integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== - -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.2.0" - to-array "0.1.4" - -socket.io-client@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.5.0.tgz#34f486f3640dde9c2211fce885ac2746f9baf5cb" - integrity sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw== - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "~1.3.0" - debug "~3.1.0" - engine.io-client "~3.5.0" - has-binary2 "~1.0.2" - indexof "0.0.1" - parseqs "0.0.6" - parseuri "0.0.6" - socket.io-parser "~3.3.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io-parser@~3.3.0: - version "3.3.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.4.tgz#ab84236b6d06eaf1fb68b179b3a7501195886cc3" - integrity sha512-z/pFQB3x+EZldRRzORYW1vwVO8m/3ILkswtnpoeU6Ve3cbMWkmHEWDAVJn4QJtchiiFTo5j7UG2QvwxvaA9vow== - dependencies: - component-emitter "~1.3.0" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== - dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" - -sockjs@^0.3.24: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -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-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.20: - 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.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, 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.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== - -spdx-expression-parse@^3.0.0: - 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.21" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz#6d6e980c9df2b6fc905343a3b2d702a6239536c3" - integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -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.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sshpk@^1.7.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" - integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== - 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" - -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@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -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== - -"statuses@>= 1.4.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== - -streamroller@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.6.tgz#8167d8496ed9f19f05ee4b158d9611321b8cacd9" - integrity sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg== - dependencies: - async "^2.6.2" - date-format "^2.0.0" - debug "^3.2.6" - fs-extra "^7.0.1" - lodash "^4.17.14" - -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - integrity sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ== - dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" - -"string-width@^1.0.2 || 2": - 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.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.prototype.trim@^1.2.10: - version "1.2.10" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" - integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - define-data-property "^1.1.4" - define-properties "^1.2.1" - es-abstract "^1.23.5" - es-object-atoms "^1.0.0" - has-property-descriptors "^1.0.2" - -string.prototype.trimend@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" - integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.2" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string.prototype.trimstart@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" - integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^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" - -strip-ansi@^3.0.0: - 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-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - -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-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 sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -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== - -style-loader@^0.20.2: - version "0.20.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.3.tgz#ebef06b89dec491bcb1fdb3452e913a6fd1c10c4" - integrity sha512-2I7AVP73MvK33U7B9TKlYZAqdROyMXDYSMvHLX43qy3GCOaJNiV6i0v/sv9idWIaQ42Yn2dNv79Q5mKXbKhAZg== - dependencies: - loader-utils "^1.1.0" - schema-utils "^0.4.5" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== - dependencies: - has-flag "^3.0.0" - -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@^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.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-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.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== - -svgo@^1.0.0: - 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-tree@^3.2.2: - 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== - -synckit@^0.11.0: - version "0.11.2" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.2.tgz#2a8015ce5df8d5eb0cc47ee55924ad8f8756c24b" - integrity sha512-1IUffI8zZ8qUMB3NUJIjk0RpLroG/8NkQDAWH1NbB2iJ0/5pn3M8rxfNzMz4GH9OnYaGYn31LEDSXJp/qIlxgA== - dependencies: - "@pkgr/core" "^0.2.0" - tslib "^2.8.1" - -table@^6.0.9: - version "6.9.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.9.0.tgz#50040afa6264141c7566b3b81d4d82c47a8668f5" - integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== - 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" - -tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -terser-webpack-plugin@^5.3.11, terser-webpack-plugin@^5.3.9: - version "5.3.14" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" - integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.25" - jest-worker "^27.4.5" - schema-utils "^4.3.0" - serialize-javascript "^6.0.2" - terser "^5.31.1" - -terser@^5.10.0, terser@^5.31.1: - version "5.39.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" - integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" - integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA== - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -tiny-emitter@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tmp@0.0.33, tmp@0.0.x: - 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-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A== - -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 sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - 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 sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - 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== - -tough-cookie@^2.3.3, tough-cookie@^2.3.4, 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@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== - dependencies: - punycode "^2.1.0" - -ts-api-utils@^1.0.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" - integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== - -ts-loader@^9.4.3: - version "9.5.2" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.2.tgz#1f3d7f4bb709b487aaa260e8f19b301635d08020" - integrity sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - source-map "^0.7.4" - -tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.3, tslib@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -tsutils@^3.17.1: - 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" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -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 sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - -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 sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - -type-detect@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" - integrity sha512-5rqszGVwYgBoDkIm2oUtvkfZMQ0vk29iDMU0W2qCa3rG0vPDNczCMT4hV/bLBgLg8k8ri6+u3Zbt+S/14eMzlA== - -type-detect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" - integrity sha512-f9Uv6ezcpvCQjJU0Zqbg+65qdcszv3qUQsZfjdRbWiZ7AMenrX1u0lNk9EoWWX6e1F+NULyg27mtdeZ5WhpljA== - -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-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" - -typed-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" - integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== - dependencies: - call-bound "^1.0.3" - es-errors "^1.3.0" - is-typed-array "^1.1.14" - -typed-array-byte-length@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" - integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== - dependencies: - call-bind "^1.0.8" - for-each "^0.3.3" - gopd "^1.2.0" - has-proto "^1.2.0" - is-typed-array "^1.1.14" - -typed-array-byte-offset@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" - integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - for-each "^0.3.3" - gopd "^1.2.0" - has-proto "^1.2.0" - is-typed-array "^1.1.15" - reflect.getprototypeof "^1.0.9" - -typed-array-length@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" - integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - reflect.getprototypeof "^1.0.6" - -typed-function@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-2.1.0.tgz#ded6f8a442ba8749ff3fe75bc41419c8d46ccc3f" - integrity sha512-bctQIOqx2iVbWGDGPWwIm18QScpu2XRmkC19D8rQGFsjKSgteq/o1hTZvIG/wuDq8fanpBDrLkLq+aEN/6y5XQ== - -typescript@^4.7.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -typescript@^5.2.2: - version "5.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== - -ua-parser-js@^1.0.35: - version "1.0.40" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.40.tgz#ac6aff4fd8ea3e794a6aa743ec9c2fc29e75b675" - integrity sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew== - -uid@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/uid/-/uid-0.0.2.tgz#5e4a5d4b78138b4f70f89fd3c76fc59aa9d2f103" - integrity sha512-KerEqWSoUfzAYsB4RznGPygtEk1p04caicg8FxqzZ1VYI3GsYHPzouUO5jJvwwy4sg6B1jnSkSjYgGvE4CK6Gg== - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -unbox-primitive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" - integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== - dependencies: - call-bound "^1.0.3" - has-bigints "^1.0.2" - has-symbols "^1.1.0" - which-boxed-primitive "^1.1.1" - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" - integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== - -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.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" - integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -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== - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== - -universalify@^0.1.0: - 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 sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -update-browserslist-db@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" - integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - -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 sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -url-loader@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" - integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== - dependencies: - punycode "^1.4.1" - qs "^6.12.3" - -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== - -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - -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 sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util.promisify@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.3.tgz#3d77cf56628b4aad743e5acde8e5c44cea7dbf1c" - integrity sha512-GIEaZ6o86fj09Wtf0VfZ5XP7tmd4t3jM5aZCgmBi231D0DB1AEBa3Aa6MP48DMsAIi96WkpWLimIWVwOjbDMOw== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-data-property "^1.1.4" - define-properties "^1.2.1" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - for-each "^0.3.3" - get-intrinsic "^1.2.6" - has-proto "^1.2.0" - has-symbols "^1.1.0" - object.getownpropertydescriptors "^2.1.8" - safe-array-concat "^1.1.3" - -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" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== - -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.2: - 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: - version "2.4.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128" - integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== - -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.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== - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== - -vue-eslint-parser@^9.1.0: - version "9.4.3" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" - integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== - dependencies: - debug "^4.3.4" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.3.1" - esquery "^1.4.0" - lodash "^4.17.21" - semver "^7.3.6" - -w3c-hr-time@^1.0.1: - 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" - -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" - -watchpack@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" - integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webpack-cli@^5.1.1: - version "5.1.4" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" - integrity sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.1.1" - "@webpack-cli/info" "^2.0.2" - "@webpack-cli/serve" "^2.0.5" - colorette "^2.0.14" - commander "^10.0.1" - cross-spawn "^7.0.3" - envinfo "^7.7.3" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^3.1.1" - rechoir "^0.8.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^5.3.4: - version "5.3.4" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" - integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== - dependencies: - colorette "^2.0.10" - memfs "^3.4.3" - mime-types "^2.1.31" - range-parser "^1.2.1" - schema-utils "^4.0.0" - -webpack-dev-server@^4.15.0: - version "4.15.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" - integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== - dependencies: - "@types/bonjour" "^3.5.9" - "@types/connect-history-api-fallback" "^1.3.5" - "@types/express" "^4.17.13" - "@types/serve-index" "^1.9.1" - "@types/serve-static" "^1.13.10" - "@types/sockjs" "^0.3.33" - "@types/ws" "^8.5.5" - ansi-html-community "^0.0.8" - bonjour-service "^1.0.11" - chokidar "^3.5.3" - colorette "^2.0.10" - compression "^1.7.4" - connect-history-api-fallback "^2.0.0" - default-gateway "^6.0.3" - express "^4.17.3" - graceful-fs "^4.2.6" - html-entities "^2.3.2" - http-proxy-middleware "^2.0.3" - ipaddr.js "^2.0.1" - launch-editor "^2.6.0" - open "^8.0.9" - p-retry "^4.5.0" - rimraf "^3.0.2" - schema-utils "^4.0.0" - selfsigned "^2.1.1" - serve-index "^1.9.1" - sockjs "^0.3.24" - spdy "^4.0.2" - webpack-dev-middleware "^5.3.4" - ws "^8.13.0" - -webpack-manifest-plugin@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-5.0.1.tgz#8d401fec7fa587cba5af561eb60e39d6a8050e8a" - integrity sha512-xTlX7dC3hrASixA2inuWFMz6qHsNi6MT3Uiqw621sJjRTShtpMjbDYhPPZBwWUKdIYKIjSq9em6+uzWayf38aQ== - dependencies: - tapable "^2.0.0" - webpack-sources "^2.2.0" - -webpack-merge@^5.7.3, webpack-merge@^5.9.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" - integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== - dependencies: - clone-deep "^4.0.1" - flat "^5.0.2" - wildcard "^2.0.0" - -webpack-sources@^1.1.0: - 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.3: - 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-strip-block@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/webpack-strip-block/-/webpack-strip-block-0.3.0.tgz#e864c8d71fade02c55332f7fb34f7970ba5076c8" - integrity sha512-rXN+SI6S7tzUr1Jvhq3Rcl2bGfpY5ZC9XSRm2rH68eYkDheCczEs61iir1A00iv1Nt8FY1J6BDRgXKtil+fk+g== - dependencies: - loader-utils "^1.1.0" - -webpack@^5.85.0: - version "5.98.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.98.0.tgz#44ae19a8f2ba97537978246072fb89d10d1fbd17" - integrity sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA== - dependencies: - "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.6" - "@webassemblyjs/ast" "^1.14.1" - "@webassemblyjs/wasm-edit" "^1.14.1" - "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.14.0" - browserslist "^4.24.0" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.1" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^4.3.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.11" - watchpack "^2.4.1" - webpack-sources "^3.2.3" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - 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.1, whatwg-encoding@^1.0.3: - 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-fetch@>=0.10.0: - version "3.6.20" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" - integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.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@^6.4.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" - integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== - dependencies: - is-bigint "^1.1.0" - is-boolean-object "^1.2.1" - is-number-object "^1.1.1" - is-string "^1.1.1" - is-symbol "^1.1.1" - -which-builtin-type@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" - integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== - dependencies: - call-bound "^1.0.2" - function.prototype.name "^1.1.6" - has-tostringtag "^1.0.2" - is-async-function "^2.0.0" - is-date-object "^1.1.0" - is-finalizationregistry "^1.1.0" - is-generator-function "^1.0.10" - is-regex "^1.2.1" - is-weakref "^1.0.2" - isarray "^2.0.5" - which-boxed-primitive "^1.1.0" - which-collection "^1.0.2" - which-typed-array "^1.1.16" - -which-collection@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" - integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== - dependencies: - is-map "^2.0.3" - is-set "^2.0.3" - is-weakmap "^2.0.2" - is-weakset "^2.0.3" - -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.16, which-typed-array@^1.1.18: - version "1.1.19" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" - integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - call-bound "^1.0.4" - for-each "^0.3.5" - get-proto "^1.0.1" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - -which@1.3.1, which@^1.2.1, which@^1.2.9, which@^1.3.0: - 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: - 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" - -wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -wildcard@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -word-wrap@^1.2.5, word-wrap@~1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== - -worker-loader@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37" - integrity sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.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" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" - integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -ws@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.4.tgz#c7bea9f1cfb5f410de50e70e82662e562113f9a7" - integrity sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ== - dependencies: - async-limiter "~1.0.0" - -ws@^8.13.0: - version "8.18.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.1.tgz#ea131d3784e1dfdff91adb0a4a116b127515e3cb" - integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== - -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@~7.5.10: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -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== - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha512-/bFPLUgJrfGUL10AIv4Y7/CUt6so9CLtB/oFxQSHseSDNNCdC6vwwKEqwLN6wNPBg9YWXAiMu8jkf6RPRS/75Q== - -xmlhttprequest-ssl@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" - integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== - -xss-filters@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/xss-filters/-/xss-filters-1.2.7.tgz#59fa1de201f36f2f3470dcac5f58ccc2830b0a9a" - integrity sha512-KzcmYT/f+YzcYrYRqw6mXxd25BEZCxBQnf+uXTopQDIhrmiaLwO+f+yLsIvvNlPhYvgff8g3igqrBxYh9k8NbQ== - -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 sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yargs-parser@13.1.2, 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-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - -yargs@13.3.2, yargs@^13.3.0: - 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" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg== - -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== From 7f3f457224a77afab321ca9fbaf233e6c0fe4c50 Mon Sep 17 00:00:00 2001 From: hakueon Date: Mon, 14 Apr 2025 09:49:57 +0900 Subject: [PATCH 04/12] =?UTF-8?q?=ED=94=84=EB=A1=9C=EB=B3=B4=20=EC=BB=A4?= =?UTF-8?q?=EB=84=A5=ED=8A=B8=20=EB=9D=BC=EC=9D=B4=ED=8A=B8=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/hw_lite/alux_proboconnect_lite.png | Bin 0 -> 52160 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/hw_lite/alux_proboconnect_lite.png diff --git a/images/hw_lite/alux_proboconnect_lite.png b/images/hw_lite/alux_proboconnect_lite.png new file mode 100644 index 0000000000000000000000000000000000000000..d40b0e34479460b46f6a0c1bf41126b6a9788f80 GIT binary patch literal 52160 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 D9+ Date: Mon, 14 Apr 2025 16:22:06 +0900 Subject: [PATCH 05/12] =?UTF-8?q?ProboConnectLite=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hardwareLite/block_alux_connect_lite.js | 5478 +++++++++++++++++ .../metadata_alux_connect_lite.json | 9 + 2 files changed, 5487 insertions(+) create mode 100644 src/playground/blocks/hardwareLite/block_alux_connect_lite.js create mode 100644 src/playground/blocks/hardwareLite/metadata_alux_connect_lite.json diff --git a/src/playground/blocks/hardwareLite/block_alux_connect_lite.js b/src/playground/blocks/hardwareLite/block_alux_connect_lite.js new file mode 100644 index 0000000000..a664da4c39 --- /dev/null +++ b/src/playground/blocks/hardwareLite/block_alux_connect_lite.js @@ -0,0 +1,5478 @@ +'use strict'; + +const _throttle = require('lodash/throttle'); + +(function() { + const CONNECT_INDEX = 0x32; //50 + const RELEASE_VERSION = 17; + const SERIAL_INTERVAL = 32; + const EVENT_INTERVAL = 16; + const SEND_PACKET_LENGTH = 22; + const RECEIVED_PACKET_LENGTH = 26; + Entry.ProboConnectLite = new (class ProboConnectLite { + constructor() { + this.id = '270101'; + this.name = 'ProboConnectLite'; + this.url = 'https://imssam.me'; + this.imageName = 'alux_proboconnect_lite.png'; + this.title = { + ko: '프로보 커넥트', + en: 'Probo Connect', + }; + this.portData = { + baudRate: 115200, + duration: SERIAL_INTERVAL, + dataBits: 8, + parity: 'none', + stopBits: 1, + bufferSize: 128, + connectionType: 'bytestream', + constantServing: 'ReadOnly', + }; + + this.Color = { + Red: { Min: 13, Max: 37 }, + Green: { Min: 38, Max: 62 }, + Blue: { Min: 63, Max: 87 }, + Yellow: { Min: 88, Max: 112 }, + Black: { Min: 113, Max: 137 }, + White: { Min: 138, Max: 162 }, + }; + this.MultiSwitch = { + Key1: { Min: 1, Max: 19 }, + Key2: { Min: 26, Max: 44 }, + Key3: { Min: 53, Max: 77 }, + Key4: { Min: 83, Max: 101 }, + Key5: { Min: 107, Max: 125 }, + Key6: { Min: 139, Max: 157 }, + Key7: { Min: 160, Max: 178 }, + Key8: { Min: 191, Max: 209 } + }; + this.Note = { + n32: 48, + n16: 96, n16d: 144, n16t: 64, + n8: 192, n8d: 288, n8t: 128, + n4: 384, n4d: 576, n4t: 256, + n2: 768, n2d: 1152, n2t: 512, + n1: 1536, + }; + this.Rgb = { + Off: 0, + On: { Red: 1, Yellow: 12, Green: 23, Cyan: 34, Blue: 45, Magenta: 56, White: 67 }, + Dimming: { + Red: 90, + Yellow: 91, + Green: 92, + Cyan: 93, + Blue: 94, + Magenta: 95, + White: 96 + } + }; + this.Melody = [0, 35391, 33405, 31530, 29760, 28090, 26513, 25025, 23621, 22295, 21044, 19863, 18748]; + this.Track = [ + [0x451F, 0x3D95, 0x36DD, 0x33C8, 0x2E22, 0x291A, 0x249E], // Start : size 7, + [0x228F, 0x249E, 0x291A, 0x2E22, 0x33C8, 0x36DD, 0x3D95, 0x451F], // End : size 8, + [0x228F, 0x1B6E, 0x1711, 0x1147 ], // LevelUp : size 4, + [0x1147, 0x1711, 0x1B6E, 0x228F ], // LevelDwon : size 4, + ]; + + const eventSetting = { + leading: true, + trailing: false + } + this.remoteEvent = _throttle( + () => { + Entry.engine.fireEvent('connectlite_event_remote_input'); + }, + EVENT_INTERVAL, + eventSetting + ); + this.digitalEvent = _throttle( + () => { + Entry.engine.fireEvent('connectlite_event_digital_input'); + } + , + EVENT_INTERVAL, + eventSetting + ); + + this.qRear = 0; + this.qFront = 0; + this.qSize = 128; + this.qBuffer = new Uint8Array(this.qSize + 2).fill(-1); + this.inputPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); + this.pLength = 0; // packet length + this.process = false; // packet process + + this.version = 0; + this.sendFlag = true; + + this.blockMenuBlocks = [ + //dropdown + 'connectlite_dropdown_remote_key', + 'connectlite_dropdown_digital_key', + 'connectlite_dropdown_analog_key', + 'connectlite_dropdown_setting_sensor_key', + 'connectlite_dropdown_inNcom_sensor_key', + 'connectlite_dropdown_sensor_color_key', + 'connectlite_dropdown_rgb_color_key', + 'connectlite_dropdown_sensor_angle_key', + 'connectlite_dropdown_multikey_key', + 'connectlite_dropdown_extension_digital_key', + 'connectlite_dropdown_extension_analog_key', + 'connectlite_dropdown_dc_1_all_key', + 'connectlite_dropdown_port_1_4_key', + 'connectlite_dropdown_on_off_key', + 'connectlite_dropdown_velocity_key', + 'connectlite_dropdown_servo_position_key', + 'connectlite_dropdown_note_key', + 'connectlite_dropdown_time_1_key', + 'connectlite_dropdown_time_2_key', + 'connectlite_dropdown_time_3', + 'connectlite_dropdown_pitch_key', + 'connectlite_dropdown_melody_key', + + //event + 'connectlite_when_press_remote_key', + 'connectlite_when_input_digital_value', + + //setting + 'connectlite_set_sensor_setting', + + //input + 'connectlite_is_remote_key', + 'connectlite_is_digital_value', + 'connectlite_is_extension_digital_input', + 'connectlite_get_analog_value', + 'connectlite_get_extension_analog_input', + 'connectlite_get_tri_axis_acceler_x', + 'connectlite_get_tri_axis_acceler_y', + 'connectlite_get_tri_axis_acceler_z', + 'connectlite_get_value_mapping', + 'connectlite_is_color_value', + 'connectlite_get_color_value', + 'connectlite_set_infinite_setting', + 'connectlite_get_infinite_mm_diameter', + 'connectlite_get_infinite_transform_input', + 'connectlite_is_multi_sensor', + 'connectlite_is_multi_switch', + 'connectlite_set_eeprom_call', + 'connectlite_get_eeprom_address_value', + + //output + 'connectlite_set_dc_output', + 'connectlite_set_servo_output', + 'connectlite_set_s_dc_output', + 'connectlite_set_port_output', + 'connectlite_play_melody_note_output', + 'connectlite_play_melody_sec_output', + 'connectlite_play_melody_output', + 'connectlite_play_value_sec_output', + 'connectlite_play_value_output', + 'connectlite_play_melody_track_output', + 'connectlite_play_melody_off', + 'connectlite_set_rgbled_on_output', + 'connectlite_set_rgbled_off_output', + 'connectlite_set_rgbled_flashing_output', + 'connectlite_set_rgbled_dimming_output', + 'connectlite_set_fnd_output', + 'connectlite_set_fnd_off', + + //EEPROM + 'connectlite_set_eeprom_write', + ]; + } + + setLanguage() { + return { + ko: { + template: { + connectlite_item_switch: '스위치', + connectlite_item_infrared: '적외선', + connectlite_item_magnetic: '자석', + connectlite_item_rotation: '회전', + connectlite_item_color: '컬러', + connectlite_item_acceleration: '가속도', + connectlite_item_ultrasonic: '초음파', + connectlite_item_heart_rate: '심박', + connectlite_item_illuminance: '조도', + connectlite_item_temperature: '온도', + connectlite_item_sound: '소리', + connectlite_item_tilt: '기울기', + connectlite_item_pressure: '압력', + connectlite_item_multi_touch: '멀티키', + connectlite_item_compass: '나침반', + connectlite_item_tri_acceleration: '3가속', + connectlite_item_multi_switch: '분배기', + connectlite_item_infinite_rotation: '무한회전', + connectlite_item_extension_input: '확장입력', + connectlite_item_color_red: '빨간색', + connectlite_item_color_green: '초록색', + connectlite_item_color_blue: '파란색', + connectlite_item_color_cyan: '청녹색', + connectlite_item_color_magenta: '자홍색', + connectlite_item_color_yellow: '노란색', + connectlite_item_color_black: '검정색', + connectlite_item_color_white: '하얀색', + connectlite_item_value: '값', + connectlite_item_angle: '각도', + connectlite_item_absolute_angle: '절대각도', + connectlite_item_number_of_rotations: '회전 수', + connectlite_item_key_1: '키1', + connectlite_item_key_2: '키2', + connectlite_item_key_3: '키3', + connectlite_item_key_4: '키4', + connectlite_item_key_5: '키5', + connectlite_item_key_6: '키6', + connectlite_item_key_7: '키7', + connectlite_item_key_8: '키8', + connectlite_item_all: '모두', + connectlite_item_on: '켜기', + connectlite_item_off: '끄기', + connectlite_item_note_whole: '온', + connectlite_item_note_half: '2분', + connectlite_item_note_quarter: '4분', + connectlite_item_note_eighth: '8분', + connectlite_item_note_sixteenth: '16분', + connectlite_item_note_thirty_second: '32분', + connectlite_item_pitch_do: '도', + connectlite_item_pitch_do_sharp: '도#', + connectlite_item_pitch_re: '레', + connectlite_item_pitch_re_sharp: '레#', + connectlite_item_pitch_mi: '미', + connectlite_item_pitch_fa: '파', + connectlite_item_pitch_fa_sharp: '파#', + connectlite_item_pitch_sol: '솔', + connectlite_item_pitch_sol_sharp: '솔#', + connectlite_item_pitch_ra: '라', + connectlite_item_pitch_ra_sharp: '라#', + connectlite_item_pitch_si: '시', + connectlite_item_melody_start: '시작음', + connectlite_item_melody_end: '종료음', + connectlite_item_melody_level_up: '레벨 업', + connectlite_item_melody_level_down: '레벨 다운', + + connectlite_item_error: '오류', + connectlite_item_nothing: '없음', + + connectlite_when_press_remote_key: '%1 리모컨 %2 키를 눌렀을 때', + connectlite_when_input_digital_value: '%1 디지털 입력 %2 이(가) 들어왔을 때', + + connectlite_set_sensor_setting: '입력포트 %1 을(를) %2 센서로 설정 %3', + + connectlite_is_remote_key: '리모컨 입력 %1', + connectlite_is_digital_value: '디지털 입력 %1', + connectlite_is_extension_digital_input: '확장 디지털 입력 %1 의 %2', + connectlite_get_analog_value: '아날로그 입력 %1', + connectlite_get_extension_analog_input: '확장 아날로그 입력 %1 의 %2', + connectlite_get_tri_axis_acceler_x: '3가속도 %1의 X축', + connectlite_get_tri_axis_acceler_y: '3가속도 %1의 Y축', + connectlite_get_tri_axis_acceler_z: '3가속도 %1의 Z축', + connectlite_get_value_mapping: '%1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환', + connectlite_is_color_value: '컬러 센서 %1 이(가) %2 인가?', + connectlite_get_color_value: '컬러 센서 %1 의 색상', + connectlite_set_infinite_setting: '%1 센서 %2 을 %3 값으로 정하기 %4', + connectlite_get_infinite_mm_diameter: '%1 센서 %2 지름 %3 의 mm 값', + connectlite_get_infinite_transform_input: '%1 센서 %2 의 %3', + connectlite_is_multi_sensor: '멀티키 센서 %1의 %2', + connectlite_is_multi_switch: '분배 스위치 %1의 %2', + connectlite_set_eeprom_call: 'EEPROM %1 주소의 값 호출하기 %2', + connectlite_get_eeprom_address_value: 'EEPROM 주소의 값', + + connectlite_set_port_output: '출력핀 %1 을(를) %2 %3', + connectlite_set_servo_output: '서보 모터 %1 의 위치를 %2 로 이동 %3', + connectlite_set_s_dc_output: 'S 모터 %1 을(를) %2 속도로 회전 %3', + connectlite_set_dc_output: 'DC 모터 %1 을(를) %2 속도로 회전 %3', + connectlite_play_melody_note_output: '%1 을(를) %2 음표로 연주하기 %3', + connectlite_play_melody_sec_output: '%1 을(를) %2 초 동안 연주하기 %3', + connectlite_play_melody_output: '%1 을(를) 연주하기 %2', + connectlite_play_value_sec_output: '%1 값을(를) %2 초 동안 연주하기 %3', + connectlite_play_value_output: '%1 값을(를) 연주하기 %2', + connectlite_play_melody_track_output: '%1 을(를) %2초 간격으로 재생하기 %3', + connectlite_play_melody_off: '멜로디 중지 %1', + connectlite_set_rgbled_on_output: 'RGB LED %1 을(를) %2 으로 켜기 %3', + connectlite_set_rgbled_off_output: 'RGB LED %1 을(를) 끄기 %2', + connectlite_set_rgbled_dimming_output: 'RGB LED %1 을(를) %2 으로 디밍 %3', + connectlite_set_rgbled_flashing_output: 'RGB LED %1 %2 으로 %3 초 간격 %4', + connectlite_set_fnd_output: 'FND를 %1 (으)로 설정 %2', + connectlite_set_fnd_off: 'FND 끄기 %1', + connectlite_set_eeprom_write: 'EEPROM %1 주소에 %2 값 설정하기 %3', + }, + Device: { + probo_connect_lite: '프로보 커넥트', + }, + Menus: { + probo_connect_lite: '프로보 커넥트', + }, + }, + en: { + + template: { + connectlite_item_switch: 'Switch', + connectlite_item_infrared: 'Infrared', + connectlite_item_magnetic: 'Magnetic', + connectlite_item_rotation: 'Rotation', + connectlite_item_color: 'Color', + connectlite_item_acceleration: 'Acceleration', + connectlite_item_ultrasonic: 'Ultrasonic', + connectlite_item_heart_rate: 'Heart Rate', + connectlite_item_illuminance: 'Illuminance', + connectlite_item_temperature: 'Temperature', + connectlite_item_sound: 'Sound', + connectlite_item_tilt: 'Tilt', + connectlite_item_pressure: 'Pressure', + connectlite_item_multi_touch: 'Multi Touch', + connectlite_item_compass: 'Compass', + connectlite_item_tri_acceleration: '3Acceleration', + connectlite_item_multi_switch: 'Multi Switch', + connectlite_item_infinite_rotation: 'Infinite Rotation', + connectlite_item_extension_input: 'Extension Input', + connectlite_item_color_red: 'Red', + connectlite_item_color_green: 'Green', + connectlite_item_color_blue: 'Blue', + connectlite_item_color_cyan: 'Cyan', + connectlite_item_color_magenta: 'Magenta', + connectlite_item_color_yellow: 'Yellow', + connectlite_item_color_black: 'Black', + connectlite_item_color_white: 'White', + connectlite_item_value: 'Value', + connectlite_item_angle: 'Angle', + connectlite_item_absolute_angle: 'Absolute Angle', + connectlite_item_number_of_rotations: 'Number of Rotations', + connectlite_item_key_1: 'Key1', + connectlite_item_key_2: 'Key2', + connectlite_item_key_3: 'Key3', + connectlite_item_key_4: 'Key4', + connectlite_item_key_5: 'Key5', + connectlite_item_key_6: 'Key6', + connectlite_item_key_7: 'Key7', + connectlite_item_key_8: 'Key8', + connectlite_item_all: 'All', + connectlite_item_on: 'On', + connectlite_item_off: 'Off', + connectlite_item_note_whole: 'Whole', + connectlite_item_note_half: 'Half', + connectlite_item_note_quarter: 'Quarter', + connectlite_item_note_eighth: 'Eighth', + connectlite_item_note_sixteenth: 'Sixteenth', + connectlite_item_note_thirty_second: 'Thirty-Second', + connectlite_item_pitch_do: 'do', + connectlite_item_pitch_do_sharp: 'xdo', + connectlite_item_pitch_re: 're', + connectlite_item_pitch_re_sharp: 'xre', + connectlite_item_pitch_mi: 'mi', + connectlite_item_pitch_fa: 'fa', + connectlite_item_pitch_fa_sharp: 'xfa', + connectlite_item_pitch_sol: 'sol', + connectlite_item_pitch_sol_sharp: 'xsol', + connectlite_item_pitch_ra: 'ra', + connectlite_item_pitch_ra_sharp: 'xra', + connectlite_item_pitch_si: 'si', + connectlite_item_melody_start: 'Start', + connectlite_item_melody_end: 'End', + connectlite_item_melody_level_up: 'Level up', + connectlite_item_melody_level_down: 'Level down', + + connectlite_item_error: 'error', + connectlite_item_nothing: 'nothing', + + connectlite_when_press_remote_key: '%1 When %2 remote control key pressed', + connectlite_when_input_digital_value: '%1 When %2 digital pin input', + + connectlite_set_sensor_setting: 'Set input port %1 to %2 sensor %3', + + connectlite_is_remote_key: 'Remote control %1', + connectlite_is_digital_value: 'Read digital pin %1', + connectlite_is_extension_digital_input: 'Extension digital input %1 to %2', + connectlite_get_analog_value: 'Read analog pin %1', + connectlite_get_extension_analog_input: 'Extension analog input %1 to %2', + connectlite_get_tri_axis_acceler_x: '3acceleration %1 and X', + connectlite_get_tri_axis_acceler_y: '3acceleration %1 and Y', + connectlite_get_tri_axis_acceler_z: '3acceleration %1 and Z', + connectlite_get_value_mapping: '%1 to value %2 ~ %3 change %4 ~ %5', + connectlite_is_color_value: 'Is color sensor %1 %2 ?', + connectlite_get_color_value: 'Color of color sensor %1', + connectlite_set_infinite_setting: 'Set %1 sensor %2 to %3 value %4', + connectlite_get_infinite_mm_diameter: 'The move distance(in mm) when the %1 sensor %2 is %3 mm in diameter', + connectlite_get_infinite_transform_input: '%1 rotation sensor %2 to %3', + connectlite_is_multi_sensor: 'Multi sensor %1 key %2', + connectlite_is_multi_switch: 'A key number of the multi-switch sensor %1 = %2', + connectlite_set_eeprom_call:'Calling the value of EEPROM %1 address', + connectlite_get_eeprom_address_value: 'Value of EEPROM address', + + connectlite_set_dc_output: 'DC motor %1 velocity %2 %3', + connectlite_set_servo_output: 'Servo motor %1 position %2 %3', + connectlite_set_s_dc_output: 'Servo motor %1 speed %2 %3', + connectlite_set_port_output: 'Set digital pin %1 as %2 %3', + connectlite_play_melody_note_output: 'Play key %1 for %2 note %3', + connectlite_play_melody_sec_output: 'Play key %1 for %2 secs %3', + connectlite_play_melody_output: 'Play key %1 %2', + connectlite_play_value_sec_output: 'Play value %1 for %2 secs %3', + connectlite_play_value_output: 'Play value %1 %2', + connectlite_play_melody_track_output: 'Play sound %1 for %2 secs %3', + connectlite_play_melody_off: 'Stop tone %1', + connectlite_set_rgbled_on_output: 'Turn on RGB LED %1 to %2 %3', + connectlite_set_rgbled_off_output: 'Turn off RGB LED %1 %2', + connectlite_set_rgbled_dimming_output: 'Dimming RGB LED %1 to %2 %3', + connectlite_set_rgbled_flashing_output: 'RGB LED %1 Blinking %2 at %3 second intervals %4', + connectlite_set_fnd_output: 'Set FND to %1 %2', + connectlite_set_fnd_off: 'Turn off FND %1', + connectlite_set_eeprom_write: 'Set EEPROM %1 address to %2 %3', + }, + Device: { + probo_connect_lite: 'Probo Connect', + }, + Menus: { + probo_connect_lite: 'Probo Connect', + }, + }, + }; + } + + // 시작하기 및 정지하기 시 기기상태를 초기화한다. + setZero() { + this.Infinite = { + Buff: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Count: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Start: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + } + }; + this.SensorSet = { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }; + this.InputData = { + Analog: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Digital: { + A1: 0, + A2: 0, + A3: 0, + A4: 0, + FEA1: 0, + FEA2: 0, + FEA3: 0, + FEA4: 0, + REA1: 0, + REA2: 0, + REA3: 0, + REA4: 0, + BEA1: 0, + BEA2: 0, + BEA3: 0, + BEA4: 0 + }, + Remote: { + R_1: 0, + R_2: 0, + R_3: 0, + R_4: 0, + R_5: 0, + R_6: 0, + R_7: 0, + R_8: 0, + R_L1: 0, + R_L2: 0, + R_R1: 0, + R_R2: 0 + }, + EEPROM: { + EC: 0, + EEPR2: 0, + EEPR1: 0 + }, + Infinite:{ + ROTATION_1: 0, + ROTATION_2: 0, + ROTATION_3: 0, + ROTATION_4: 0 + }, + Acceler:{ + AXIS_X1: 0, + AXIS_X2: 0, + AXIS_X3: 0, + AXIS_X4: 0, + AXIS_Y1: 0, + AXIS_Y2: 0, + AXIS_Y3: 0, + AXIS_Y4: 0, + AXIS_Z1: 0, + AXIS_Z2: 0, + AXIS_Z3: 0, + AXIS_Z4: 0 + } + }; + this.RemoteData = { + B1: 0, + B2: 0, + B3: 0, + B4: 0, + Servo1: 0, + Servo2: 0, + Servo3: 0, + Servo4: 0, + DC1: 0, + DC2: 0, + DC3: 0, + DC4: 0, + MEL2: 0, + MEL1: 0, + FND: 100, + EEPR4: 0, + EEPR3: 0, + EEPR2: 0, + EEPR1: 0, + ASET2: 0, + ASET1: 0 + }; + this.EdgeFlag = { + FEA1: 0, + FEA2: 0, + FEA3: 0, + FEA4: 0, + REA1: 0, + REA2: 0, + REA3: 0, + REA4: 0, + BEA1: 0, + BEA2: 0, + BEA3: 0, + BEA4: 0 + }; + this.EEPROM = { + Buff: 0, + Count: 0 + }; + + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + }; + } + + // 하드웨어 연결 후 초기화한다. + async initialHandshake() { + const modePacket = new Uint8Array(2).fill(0); + modePacket[0] = 0x63; + modePacket[1] = 0x36; + + while(true) { + const response = await Entry.hwLite.serial.sendAsyncWithThrottle(modePacket); + if (response[0] !== CONNECT_INDEX) { + modePacket[0] = 0x24; + modePacket[1] = 0x42; + } else { + this.version = (response.length === 1) + ? 0 + : response[1]; + await Entry.Utils.sleep(1000); + break; + } + await Entry.Utils.sleep(100); + } + + Entry.addEventListener('run', this.handleRemoteEventInterval.bind(this)); + Entry.addEventListener('run', this.handleDigitalEventInterval.bind(this)); + Entry.addEventListener('beforeStop', clearInterval(this.remoteEventIntervalId)); + Entry.addEventListener('beforeStop', clearInterval(this.digitalEventIntervalId)); + + this.setZero(); + + if (this.version === 0) { + const packet = await Entry.hwLite.serial.reader.read(); + this.version = packet.value[0]; + if (this.version !== RELEASE_VERSION) { + const ko = `펌웨어를 업데이트 하세요.\n`; + const en = `(Please, Update your firmware.)\n`; + const version = ` - 현재(now): v.${this.version}\n - 최신(latest): v.${RELEASE_VERSION}`; + alert(`${ko}${en}${version}`); + } + } + + return true; + } + + handleRemoteEventInterval() { + this.remoteEventIntervalId = setInterval(this.remoteEvent.bind(this), EVENT_INTERVAL); + } + + handleDigitalEventInterval() { + this.digitalEventIntervalId = setInterval(this.digitalEvent.bind(this), EVENT_INTERVAL); + } + + // 디바이스에서 값을 읽어온다. + handleLocalData(buffer) { + buffer.forEach(b => this.qEnqueue(b)); + + while(this.qCount() >= this.inputPacket.length) { + if (!this.process) { + while(this.qCount() > 0) { + if (this.inputPacket[0] !== 0xCD) { + this.inputPacket[0] = this.qDequeue(); + } else if (this.inputPacket[1] !== 0xDA) { + this.inputPacket[1] = this.qDequeue(); + } else { + this.inputPacket[2] = this.qDequeue(); + this.pLength = this.inputPacket[2] + 3; + this.process = true; + break; + } + } + } + + if (this.process && (this.qCount() >= this.pLength)) { + for (let i = 3; i < this.pLength; i++) { + this.inputPacket[i] = this.qDequeue(); + } + if (this.checksumHandle(this.inputPacket)) { + this.processInputPacket(this.inputPacket); + } + + this.inputPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); + this.process = false; + this.sendFlag = true; + this.pLength = 0; + } + } + + if (this.sendFlag) { + setTimeout( + () => { + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + this.sendFlag = false; + } + }, + SERIAL_INTERVAL + ); + }; + } + + //디바이스에 값을 쓴다. + requestLocalData() { + if (this.sendFlag) { + return this.generateOutputPacket(this.RemoteData); + } + } + + qEnqueue(data) { + this.qBuffer[this.qRear] = data; + this.qRear = (this.qRear + 1) % this.qSize + } + + qDequeue() { + const data = this.qBuffer[this.qFront]; + this.qBuffer[this.qFront] = -1; + this.qFront = (this.qFront + 1) % this.qSize; + return data; + } + + qCount() { + return (this.qFront <= this.qRear) + ? (this.qRear - this.qFront) + : (this.qSize - this.qFront + this.qRear); + } + + checksumRequest(packet) { + const length = packet[2] + 2; + let checker = 0; + for(let i = 3; i < length; i++) { + checker += packet[i]; + } + return (checker & 0xFF); + + } + + checksumHandle(packet) { + let checker = 0; + const length = packet[2] + 2; + for(let i = 3; i < length ; i++ ) { + checker += packet[i]; + } + return (packet[length] === (checker & 0xFF)) + } + + processInputPacket(packet) { + const digitalByte1 = packet[8]; + const digitalByte2 = packet[9]; + const remoteByte1 = packet[10]; + const remoteByte2 = packet[11]; + const rotationByte = packet[16]; + + this.InputData.Analog.AA1 = packet[4]; + this.InputData.Analog.AA2 = packet[5]; + this.InputData.Analog.AA3 = packet[6]; + this.InputData.Analog.AA4 = packet[7]; + + this.InputData.Digital.A4 = (digitalByte1 >> 7) & 0x01; + this.InputData.Digital.A3 = (digitalByte1 >> 6) & 0x01; + this.InputData.Digital.A2 = (digitalByte1 >> 5) & 0x01; + this.InputData.Digital.A1 = (digitalByte1 >> 4) & 0x01; + this.InputData.Digital.FEA4 = (digitalByte1 >> 3) & 0x01; + this.InputData.Digital.FEA3 = (digitalByte1 >> 2) & 0x01; + this.InputData.Digital.FEA2 = (digitalByte1 >> 1) & 0x01; + this.InputData.Digital.FEA1 = digitalByte1 & 0x01; + this.InputData.Digital.REA4 = (digitalByte2 >> 7) & 0x01; + this.InputData.Digital.REA3 = (digitalByte2 >> 6) & 0x01; + this.InputData.Digital.REA2 = (digitalByte2 >> 5) & 0x01; + this.InputData.Digital.REA1 = (digitalByte2 >> 4) & 0x01; + this.InputData.Digital.BEA4 = (digitalByte2 >> 3) & 0x01; + this.InputData.Digital.BEA3 = (digitalByte2 >> 2) & 0x01; + this.InputData.Digital.BEA2 = (digitalByte2 >> 1) & 0x01; + this.InputData.Digital.BEA1 = digitalByte2 & 0x01; + + this.InputData.Remote.R_3 = (remoteByte1 >> 7) & 0x01; + this.InputData.Remote.R_2 = (remoteByte1 >> 6) & 0x01; + this.InputData.Remote.R_4 = (remoteByte1 >> 5) & 0x01; + this.InputData.Remote.R_1 = (remoteByte1 >> 4) & 0x01; + this.InputData.Remote.R_7 = (remoteByte2 >> 7) & 0x01; + this.InputData.Remote.R_6 = (remoteByte2 >> 6) & 0x01; + this.InputData.Remote.R_8 = (remoteByte2 >> 5) & 0x01; + this.InputData.Remote.R_5 = (remoteByte2 >> 4) & 0x01; + this.InputData.Remote.R_R1 = (remoteByte2 >> 3) & 0x01; + this.InputData.Remote.R_L1 = (remoteByte2 >> 2) & 0x01; + this.InputData.Remote.R_R2 = (remoteByte2 >> 1) & 0x01; + this.InputData.Remote.R_L2 = remoteByte2 & 0x01; + + this.InputData.EEPROM.EC = packet[13]; + this.InputData.EEPROM.EEPR2 = packet[14]; + this.InputData.EEPROM.EEPR1 = packet[15]; + + this.InputData.Infinite.ROTATION_1 = (rotationByte >> 6) & 0x0C; + this.InputData.Infinite.ROTATION_2 = (rotationByte >> 4) & 0x0C; + this.InputData.Infinite.ROTATION_3 = (rotationByte >> 2) & 0x0C; + this.InputData.Infinite.ROTATION_4 = rotationByte & 0x03; + + this.InputData.Acceler.AXIS_X1 = packet[4]; + this.InputData.Acceler.AXIS_X2 = packet[5]; + this.InputData.Acceler.AXIS_X3 = packet[6]; + this.InputData.Acceler.AXIS_X4 = packet[7]; + + this.InputData.Acceler.AXIS_Y1 = packet[17]; + this.InputData.Acceler.AXIS_Y2 = packet[19]; + this.InputData.Acceler.AXIS_Y3 = packet[21]; + this.InputData.Acceler.AXIS_Y4 = packet[23]; + + this.InputData.Acceler.AXIS_Z1 = packet[18]; + this.InputData.Acceler.AXIS_Z2 = packet[20]; + this.InputData.Acceler.AXIS_Z3 = packet[22]; + this.InputData.Acceler.AXIS_Z4 = packet[24]; + } + + generateOutputPacket(remoteData) { + + const outputPacket = new Uint8Array(SEND_PACKET_LENGTH).fill(-1); + + outputPacket[0] = 0xAD; + outputPacket[1] = 0xDA; + outputPacket[2] = outputPacket.length - 3; + + outputPacket[3] = 0xF0 | (remoteData.B4 << 3) | (remoteData.B3 << 2) | (remoteData.B2 << 1) | remoteData.B1; + + outputPacket[4] = remoteData.Servo1; + outputPacket[5] = remoteData.Servo2; + outputPacket[6] = remoteData.Servo3; + outputPacket[7] = remoteData.Servo4; + + outputPacket[8] = remoteData.DC1; + outputPacket[9] = remoteData.DC2; + outputPacket[10] = remoteData.DC3; + outputPacket[11] = remoteData.DC4; + + outputPacket[12] = remoteData.MEL2; + outputPacket[13] = remoteData.MEL1; + + outputPacket[14] = remoteData.FND; + + outputPacket[15] = remoteData.EEPR4; + outputPacket[16] = remoteData.EEPR3; + outputPacket[17] = remoteData.EEPR2; + outputPacket[18] = remoteData.EEPR1; + + outputPacket[19] = remoteData.ASET2; + outputPacket[20] = remoteData.ASET1; + + outputPacket[21] = this.checksumRequest(outputPacket); + + return outputPacket; + } + + getMonitorPort() { + return { ...this.InputData.Analog }; + } + + getRemoteKey(data) { + const num = Number(data); + + if (1 <= num && num <= 8) { + return `R_${num}`; + } else if (9 <= num && num <= 10) { + return `R_L${(num - 8)}`; + } else if (11 <= num && num <= 12) { + return `R_R${(num - 10)}`; + } else { + return data; + } + } + + getDigitalKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `A${num}`; + } else if (5 <= num && num <= 8) { + return `FEA${num - 4}`; + } else if (9 <= num && num <= 12) { + return `REA${num - 8}`; + } else if (13 <= num && num <= 16) { + return `BEA${num - 12}`; + } else { + return data; + } + } + + getDigitalStateValue(key) { + let value = false; + switch(key) { + case 'A1': + case 'A2': + case 'A3': + case 'A4': + value = (Entry.ProboConnectLite.InputData.Digital[key] === 1); + break; + default: + if (Entry.ProboConnectLite.InputData.Digital[key] === 1) { + if (Entry.ProboConnectLite.EdgeFlag[key] === 0) { + Entry.ProboConnectLite.EdgeFlag[key] = 1; + value = true; + } + } else { + Entry.ProboConnectLite.EdgeFlag[key] = 0; + } + break; + } + + return value; + } + + getAnalogKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `AA${num}`; + } else { + return data; + } + } + + getSettingSensorValue(key) { + switch (key) { + case '1': // 스위치 + case '2': // 적외선 + case '3': // 자석 + case '16': // 분배기 + case Lang.template.connectlite_item_switch: // 스위치 + case Lang.template.connectlite_item_infrared: // 적외선 + case Lang.template.connectlite_item_magnetic: // 자석 + case Lang.template.connectlite_item_multi_switch: // 분배기 + return 1; + case '4': // 회전 + case '7': // 조도 + case '9': // 초음파 + case Lang.template.connectlite_item_rotation: // 회전 + case Lang.template.connectlite_item_illuminance: // 조도 + case Lang.template.connectlite_item_ultrasonic: // 초음파 + return 2; + case '10': // 소리 + case Lang.template.connectlite_item_sound: // 소리 + return 3; + case '11': // 기울기 + case Lang.template.connectlite_item_tilt: // 기울기 + return 4; + case '12': // 압력 + case Lang.template.connectlite_item_pressure: // 압력 + return 5; + case '8': // 심박 + case Lang.template.connectlite_item_heart_rate: // 심박 + return 6; + case '5': // 컬러 + case Lang.template.connectlite_item_color: // 컬러 + return 7; + case '6': // 가속도 + case Lang.template.connectlite_item_acceleration: // 가속도 + return 8; + case '14': // 나침반 + case '15': // 3축 가속도 + case '17': // 확장 입력 + case Lang.template.connectlite_item_compass: + case Lang.template.connectlite_item_tri_acceleration: + case Lang.template.connectlite_item_extension_input: + return 9; + case '13': // 멀티터치(멀티키) + case Lang.template.connectlite_item_multi_touch: // 멀티터치(멀티키) + return 11; + default: + return key; + } + } + + getAxisKey(data, axis) { + switch (data) { + case 'AA1': + case 'AA2': + case 'AA3': + case 'AA4': + data = data.substr(2, 2); + break; + } + + return `AXIS_${axis}${data}`; + } + + getMultiKeyValue(key) { + const num = Number(key); + + if (1 <= num && num <= 8) { + return (num - 1); + } else { + switch (key) { + case Lang.template.connectlite_item_key_1: + return 0; + case Lang.template.connectlite_item_key_2: + return 1; + case Lang.template.connectlite_item_key_3: + return 2; + case Lang.template.connectlite_item_key_4: + return 3; + case Lang.template.connectlite_item_key_5: + return 4; + case Lang.template.connectlite_item_key_6: + return 5; + case Lang.template.connectlite_item_key_7: + return 6; + case Lang.template.connectlite_item_key_8: + return 7; + default: + return key; + } + } + } + + getExtentionDigitalValue(key) { + const num = Number(key); + if (1 <= num && num <= 8) { + return (num - 1); + } else if (9 <= num && num <= 16) { + return (num - 9); + } else { + switch (key) { + case 'EA1': + case 'ET1': + return 0; + case 'EA2': + case 'ET2': + return 1; + case 'EA3': + case 'ET3': + return 2; + case 'EA4': + case 'ET4': + return 3; + case 'EA5': + case 'ET5': + return 4; + case 'EA6': + case 'ET6': + return 5; + case 'EA7': + case 'ET7': + return 6; + case 'EA8': + case 'ET8': + return 7; + default: + return key; + } + } + } + + getExtentionAnalogKey(data) { + switch (data) { + case '1': + case 'EAA1': + return 'Y'; + case '2': + case 'EAA2': + return 'Z'; + default: + return data; + } + } + + getDckey(data) { + const num = Number(data); + + if (1 <= num && num <= 7) { + return `DC${num}`; + } else { + return data; + } + } + + getServoKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `Servo${num}`; + } else { + return data; + } + } + + getPortKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `B${num}`; + } else { + return data; + } + } + + getPortToggleValue(key) { + switch (key) { + case '1': + case Lang.template.connectlite_item_on: + return 1; + case '0': + case Lang.template.connectlite_item_off: + return 0; + default: + return key; + } + } + + getSensorAngleKey(data) { + switch (data) { + case '1': + case Lang.template.connectlite_item_value: + return 'IS1'; + case '2': + case Lang.template.connectlite_item_angle: + return 'IS2'; + case '3': + case Lang.template.connectlite_item_absolute_angle: + return 'IS3'; + case '4': + case Lang.template.connectlite_item_number_of_rotations: + return 'IS4'; + default: + return data; + } + } + + getPitchValue(pitch) { + // 배열의 인덱스 1번부터 음표 + const index = (pitch % 12) + 1; + + if (36 <= pitch && pitch <= 47) { + return Entry.ProboConnectLite.Melody[index]; + } else if (48 <= pitch && pitch <= 59) { + return Entry.ProboConnectLite.Melody[index] >> 1; + } else if (60 <= pitch && pitch <= 71) { + return Entry.ProboConnectLite.Melody[index] >> 2; + } else if (72 <= pitch && pitch <= 83) { + return Entry.ProboConnectLite.Melody[index] >> 3; + } else { + return Entry.ProboConnectLite.Melody[0]; + } + } + + getNoteKey(data) { + switch (data) { + case '1': + case Lang.template.connectlite_item_note_whole: + return 'n1'; + case '2': + case Lang.template.connectlite_item_note_half: + return 'n2'; + case '4': + case Lang.template.connectlite_item_note_quarter: + return 'n4'; + case '8': + case Lang.template.connectlite_item_note_eighth: + return 'n8'; + case '16': + case Lang.template.connectlite_item_note_sixteenth: + return 'n16'; + case '32': + case Lang.template.connectlite_item_note_thirty_second: + return 'n32'; + default: + return data; + } + } + + getMelodyValue(key) { + switch (key) { + case '1': + case Lang.template.connectlite_item_melody_start: + return 0; + case '2': + case Lang.template.connectlite_item_melody_end: + return 1; + case '3': + case Lang.template.connectlite_item_melody_level_up: + return 2; + case '4': + case Lang.template.connectlite_item_melody_level_down: + return 3; + default: + return key; + } + } + + getColorSensorKey(data) { + switch (data) { + case '1': + case Lang.template.connectlite_item_color_red: + return 'Red'; + case '2': + case Lang.template.connectlite_item_color_green: + return 'Green'; + case '3': + case Lang.template.connectlite_item_color_blue: + return 'Blue'; + case '4': + case Lang.template.connectlite_item_color_yellow: + return 'Yellow'; + case '5': + case Lang.template.connectlite_item_color_black: + return 'Black'; + case '6': + case Lang.template.connectlite_item_color_white: + return 'White'; + default: + return data; + } + } + + getRgbToggleValue(key) { + switch (key) { + case '0': + return this.Rgb.Off; + case '1': + case Lang.template.technicpowerlite_item_color_red: + return this.Rgb.On.Red; + case '2': + case Lang.template.technicpowerlite_item_color_green: + return this.Rgb.On.Green; + case '3': + case Lang.template.technicpowerlite_item_color_blue: + return this.Rgb.On.Blue; + case '4': + case Lang.template.technicpowerlite_item_color_cyan: + return this.Rgb.On.Cyan; + case '5': + case Lang.template.technicpowerlite_item_color_magenta: + return this.Rgb.On.Magenta; + case '6': + case Lang.template.technicpowerlite_item_color_yellow: + return this.Rgb.On.Yellow; + case '7': + case Lang.template.technicpowerlite_item_color_white: + return this.Rgb.On.White; + default: + return key; + } + } + + getRgbTwinkleValue(key, sec) { + let twinkle = 0; + switch (sec) { + case 0.05: + twinkle += 1; + break; + case 0.1: + twinkle += 2; + break; + case 0.2: + twinkle += 3; + break; + case 0.5: + twinkle += 4; + break; + case 1: + twinkle += 5; + break; + } + + return this.getRgbToggleValue(key) + twinkle; + } + + getRgbDimmingValue(key) { + switch (key) { + case '1': + case Lang.template.technicpowerlite_item_color_red: + return this.Rgb.Dimming.Red; + case '2': + case Lang.template.technicpowerlite_item_color_green: + return this.Rgb.Dimming.Green; + case '3': + case Lang.template.technicpowerlite_item_color_blue: + return this.Rgb.Dimming.Blue; + case '4': + case Lang.template.technicpowerlite_item_color_cyan: + return this.Rgb.Dimming.Cyan; + case '5': + case Lang.template.technicpowerlite_item_color_magenta: + return this.Rgb.Dimming.Magenta; + case '6': + case Lang.template.technicpowerlite_item_color_yellow: + return this.Rgb.Dimming.Yellow; + case '7': + case Lang.template.technicpowerlite_item_color_white: + return this.Rgb.Dimming.White; + default: + return key; + } + } + + getBlocks() { + return { + ///======================================================================================== + /// Dropdown block + ///======================================================================================== + connectlite_dropdown_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['R_1', '1'], + ['R_2', '2'], + ['R_3', '3'], + ['R_4', '4'], + ['R_5', '5'], + ['R_6', '6'], + ['R_7', '7'], + ['R_8', '8'], + ['R_L1', '9'], + ['R_L2', '10'], + ['R_R1', '11'], + ['R_R2', '12'], + ], + value: 1, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringValue('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['R_1', '1'], + ['R_2', '2'], + ['R_3', '3'], + ['R_4', '4'], + ['R_5', '5'], + ['R_6', '6'], + ['R_7', '7'], + ['R_8', '8'], + ['R_L1', '9'], + ['R_L2', '10'], + ['R_R1', '11'], + ['R_R2', '12'], + ], + value: 1, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_remote_key', + }, + ], + }, + }, + connectlite_dropdown_digital_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['A1', '1'], + ['A2', '2'], + ['A3', '3'], + ['A4', '4'], + ['FEA1', '5'], + ['FEA2', '6'], + ['FEA3', '7'], + ['FEA4', '8'], + ['REA1', '9'], + ['REA2', '10'], + ['REA3', '11'], + ['REA4', '12'], + ['BEA1', '13'], + ['BEA2', '14'], + ['BEA3', '15'], + ['BEA4', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['A1', '1'], + ['A2', '2'], + ['A3', '3'], + ['A4', '4'], + ['FEA1', '5'], + ['FEA2', '6'], + ['FEA3', '7'], + ['FEA4', '8'], + ['REA1', '9'], + ['REA2', '10'], + ['REA3', '11'], + ['REA4', '12'], + ['BEA1', '13'], + ['BEA2', '14'], + ['BEA3', '15'], + ['BEA4', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_digital_key', + }, + ], + } + }, + connectlite_dropdown_analog_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['AA1', '1'], + ['AA2', '2'], + ['AA3', '3'], + ['AA4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['AA1', '1'], + ['AA2', '2'], + ['AA3', '3'], + ['AA4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_analog_key', + }, + ], + }, + }, + connectlite_dropdown_setting_sensor_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_switch, '1'], + [Lang.template.connectlite_item_infrared, '2'], + [Lang.template.connectlite_item_magnetic, '3'], + [Lang.template.connectlite_item_rotation, '4'], + [Lang.template.connectlite_item_color, '5'], + [Lang.template.connectlite_item_acceleration, '6'], + [Lang.template.connectlite_item_ultrasonic, '7'], + [Lang.template.connectlite_item_heart_rate, '8'], + [Lang.template.connectlite_item_illuminance, '9'], + [Lang.template.connectlite_item_sound, '10'], + [Lang.template.connectlite_item_tilt, '11'], + [Lang.template.connectlite_item_pressure, '12'], + [Lang.template.connectlite_item_multi_touch, '13'], + [Lang.template.connectlite_item_compass, '14'], + [Lang.template.connectlite_item_tri_acceleration, '15'], + [Lang.template.connectlite_item_multi_switch, '16'], + [Lang.template.connectlite_item_extension_input, '17'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_switch, '1'], + [Lang.template.connectlite_item_infrared, '2'], + [Lang.template.connectlite_item_magnetic, '3'], + [Lang.template.connectlite_item_rotation, '4'], + [Lang.template.connectlite_item_color, '5'], + [Lang.template.connectlite_item_acceleration, '6'], + [Lang.template.connectlite_item_ultrasonic, '7'], + [Lang.template.connectlite_item_heart_rate, '8'], + [Lang.template.connectlite_item_illuminance, '9'], + [Lang.template.connectlite_item_sound, '10'], + [Lang.template.connectlite_item_tilt, '11'], + [Lang.template.connectlite_item_pressure, '12'], + [Lang.template.connectlite_item_multi_touch, '13'], + [Lang.template.connectlite_item_compass, '14'], + [Lang.template.connectlite_item_tri_acceleration, '15'], + [Lang.template.connectlite_item_multi_switch, '16'], + [Lang.template.connectlite_item_extension_input, '17'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_setting_sensor_key', + }, + ], + }, + }, + connectlite_dropdown_inNcom_sensor_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_infinite_rotation, '1'], + [Lang.template.connectlite_item_compass, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_infinite_rotation, '1'], + [Lang.template.connectlite_item_compass, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_inNcom_sensor_key', + }, + ], + }, + }, + connectlite_dropdown_sensor_color_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_color_red, '1'], + [Lang.template.connectlite_item_color_green, '2'], + [Lang.template.connectlite_item_color_blue, '3'], + [Lang.template.connectlite_item_color_yellow, '4'], + [Lang.template.connectlite_item_color_black, '5'], + [Lang.template.connectlite_item_color_white, '6'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_color_red, '1'], + [Lang.template.connectlite_item_color_green, '2'], + [Lang.template.connectlite_item_color_blue, '3'], + [Lang.template.connectlite_item_color_yellow, '4'], + [Lang.template.connectlite_item_color_black, '5'], + [Lang.template.connectlite_item_color_white, '6'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_sensor_color_key', + }, + ], + }, + }, + connectlite_dropdown_rgb_color_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_color_red, '1'], + [Lang.template.connectlite_item_color_green, '2'], + [Lang.template.connectlite_item_color_blue, '3'], + [Lang.template.connectlite_item_color_cyan, '4'], + [Lang.template.connectlite_item_color_magenta, '5'], + [Lang.template.connectlite_item_color_yellow, '6'], + [Lang.template.connectlite_item_color_white, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_color_red, '1'], + [Lang.template.connectlite_item_color_green, '2'], + [Lang.template.connectlite_item_color_blue, '3'], + [Lang.template.connectlite_item_color_cyan, '4'], + [Lang.template.connectlite_item_color_magenta, '5'], + [Lang.template.connectlite_item_color_yellow, '6'], + [Lang.template.connectlite_item_color_white, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_rgb_color_key', + }, + ], + }, + }, + connectlite_dropdown_sensor_angle_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_value, '1'], + [Lang.template.connectlite_item_angle, '2'], + [Lang.template.connectlite_item_absolute_angle, '3'], + [Lang.template.connectlite_item_number_of_rotations, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_value, '1'], + [Lang.template.connectlite_item_angle, '2'], + [Lang.template.connectlite_item_absolute_angle, '3'], + [Lang.template.connectlite_item_number_of_rotations, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_sensor_angle_key', + }, + ], + }, + }, + connectlite_dropdown_multikey_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_key_1, '1'], + [Lang.template.connectlite_item_key_2, '2'], + [Lang.template.connectlite_item_key_3, '3'], + [Lang.template.connectlite_item_key_4, '4'], + [Lang.template.connectlite_item_key_5, '5'], + [Lang.template.connectlite_item_key_6, '6'], + [Lang.template.connectlite_item_key_7, '7'], + [Lang.template.connectlite_item_key_8, '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_key_1, '1'], + [Lang.template.connectlite_item_key_2, '2'], + [Lang.template.connectlite_item_key_3, '3'], + [Lang.template.connectlite_item_key_4, '4'], + [Lang.template.connectlite_item_key_5, '5'], + [Lang.template.connectlite_item_key_6, '6'], + [Lang.template.connectlite_item_key_7, '7'], + [Lang.template.connectlite_item_key_8, '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_multikey_key', + }, + ], + }, + }, + connectlite_dropdown_extension_digital_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['EA1', '1'], + ['EA2', '2'], + ['EA3', '3'], + ['EA4', '4'], + ['EA5', '5'], + ['EA6', '6'], + ['EA7', '7'], + ['EA8', '8'], + ['ET1', '9'], + ['ET2', '10'], + ['ET3', '11'], + ['ET4', '12'], + ['ET5', '13'], + ['ET6', '14'], + ['ET7', '15'], + ['ET8', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['EA1', '1'], + ['EA2', '2'], + ['EA3', '3'], + ['EA4', '4'], + ['EA5', '5'], + ['EA6', '6'], + ['EA7', '7'], + ['EA8', '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_extension_digital_key', + }, + ], + }, + }, + connectlite_dropdown_extension_analog_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['EAA1', '1'], + ['EAA2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['EAA1', '1'], + ['EAA2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_extension_analog_key', + }, + ], + }, + }, + connectlite_dropdown_dc_1_all_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['1,2', '5'], + ['3,4', '6'], + [Lang.template.connectlite_item_all, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['1,2', '5'], + ['3,4', '6'], + [Lang.template.connectlite_item_all, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_dc_1_all_key', + }, + ], + }, + }, + connectlite_dropdown_velocity_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['20', '20'], + ['15', '15'], + ['10', '10'], + ['5', '5'], + ['0', '0'], + ['-5', '-5'], + ['-10', '-10'], + ['-15', '-15'], + ['-20', '-20'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['20', '20'], + ['15', '15'], + ['10', '10'], + ['5', '5'], + ['0', '0'], + ['-5', '-5'], + ['-10', '-10'], + ['-15', '-15'], + ['-20', '-20'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_velocity_key', + }, + ], + }, + }, + connectlite_dropdown_servo_position_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['20', '20'], + ['40', '40'], + ['60', '60'], + ['80', '80'], + ['100', '100'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['20', '20'], + ['40', '40'], + ['60', '60'], + ['80', '80'], + ['100', '100'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_servo_position_key', + }, + ], + }, + }, + connectlite_dropdown_port_1_4_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_port_1_4_key', + }, + ], + }, + }, + connectlite_dropdown_on_off_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_on, '1'], + [Lang.template.connectlite_item_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_on, '1'], + [Lang.template.connectlite_item_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_on_off_key', + }, + ], + }, + }, + connectlite_dropdown_note_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_note_whole, '1'], + [Lang.template.connectlite_item_note_half, '2'], + [Lang.template.connectlite_item_note_quarter, '4'], + [Lang.template.connectlite_item_note_eighth, '8'], + [Lang.template.connectlite_item_note_sixteenth, '16'], + [Lang.template.connectlite_item_note_thirty_second, '32'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_note_whole, '1'], + [Lang.template.connectlite_item_note_half, '2'], + [Lang.template.connectlite_item_note_quarter, '4'], + [Lang.template.connectlite_item_note_eighth, '8'], + [Lang.template.connectlite_item_note_sixteenth, '16'], + [Lang.template.connectlite_item_note_thirty_second, '32'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_note_key', + }, + ], + }, + }, + connectlite_dropdown_time_1_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_time_1_key', + }, + ], + }, + }, + connectlite_dropdown_time_2_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_time_2_key', + }, + ], + }, + }, + connectlite_dropdown_time_3: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.05', '0.05'], + ['0.1', '0.1'], + ['0.2', '0.2'], + ['0.5', '0.5'], + ['1', '1'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.05', '0.05'], + ['0.1', '0.1'], + ['0.2', '0.2'], + ['0.5', '0.5'], + ['1', '1'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_time_3', + }, + ], + }, + }, + connectlite_dropdown_pitch_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'DropdownExtra', + options: [ + [Lang.template.connectlite_item_pitch_do + ' (36)', '36'], + [Lang.template.connectlite_item_pitch_do_sharp + ' (37)', '37'], + [Lang.template.connectlite_item_pitch_re + ' (38)', '38'], + [Lang.template.connectlite_item_pitch_re_sharp + ' (39)', '39'], + [Lang.template.connectlite_item_pitch_mi + ' (40)', '40'], + [Lang.template.connectlite_item_pitch_fa + ' (41)', '41'], + [Lang.template.connectlite_item_pitch_fa_sharp + ' (42)', '42'], + [Lang.template.connectlite_item_pitch_sol + ' (43)', '43'], + [Lang.template.connectlite_item_pitch_sol_sharp + ' (44)', '44'], + [Lang.template.connectlite_item_pitch_ra + ' (45)', '45'], + [Lang.template.connectlite_item_pitch_ra_sharp + ' (46)', '46'], + [Lang.template.connectlite_item_pitch_si + ' (47)', '47'], + + [Lang.template.connectlite_item_pitch_do + ' (48)', '48'], + [Lang.template.connectlite_item_pitch_do_sharp + ' (49)', '49'], + [Lang.template.connectlite_item_pitch_re + ' (50)', '50'], + [Lang.template.connectlite_item_pitch_re_sharp + ' (51)', '51'], + [Lang.template.connectlite_item_pitch_mi + ' (52)', '52'], + [Lang.template.connectlite_item_pitch_fa + ' (53)', '53'], + [Lang.template.connectlite_item_pitch_fa_sharp + ' (54)', '54'], + [Lang.template.connectlite_item_pitch_sol + ' (55)', '55'], + [Lang.template.connectlite_item_pitch_sol_sharp + ' (56)', '56'], + [Lang.template.connectlite_item_pitch_ra + ' (57)', '57'], + [Lang.template.connectlite_item_pitch_ra_sharp + ' (58)', '58'], + [Lang.template.connectlite_item_pitch_si + ' (59)', '59'], + + [Lang.template.connectlite_item_pitch_do + ' (60)', '60'], + [Lang.template.connectlite_item_pitch_do_sharp + ' (61)', '61'], + [Lang.template.connectlite_item_pitch_re + ' (62)', '62'], + [Lang.template.connectlite_item_pitch_re_sharp + ' (63)', '63'], + [Lang.template.connectlite_item_pitch_mi + ' (64)', '64'], + [Lang.template.connectlite_item_pitch_fa + ' (65)', '65'], + [Lang.template.connectlite_item_pitch_fa_sharp + ' (66)', '66'], + [Lang.template.connectlite_item_pitch_sol + ' (67)', '67'], + [Lang.template.connectlite_item_pitch_sol_sharp + ' (68)', '68'], + [Lang.template.connectlite_item_pitch_ra + ' (69)', '69'], + [Lang.template.connectlite_item_pitch_ra_sharp + ' (70)', '70'], + [Lang.template.connectlite_item_pitch_si + ' (71)', '71'], + + [Lang.template.connectlite_item_pitch_do + ' (72)', '72'], + [Lang.template.connectlite_item_pitch_do_sharp + ' (73)', '73'], + [Lang.template.connectlite_item_pitch_re + ' (74)', '74'], + [Lang.template.connectlite_item_pitch_re_sharp + ' (75)', '75'], + [Lang.template.connectlite_item_pitch_mi + ' (76)', '76'], + [Lang.template.connectlite_item_pitch_fa + ' (77)', '77'], + [Lang.template.connectlite_item_pitch_fa_sharp + ' (78)', '78'], + [Lang.template.connectlite_item_pitch_sol + ' (79)', '79'], + [Lang.template.connectlite_item_pitch_sol_sharp + ' (80)', '80'], + [Lang.template.connectlite_item_pitch_ra + ' (81)', '81'], + [Lang.template.connectlite_item_pitch_ra_sharp + ' (82)', '82'], + [Lang.template.connectlite_item_pitch_si + ' (83)', '83'], + ], + value: '60', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + const value = script.getStringField('PARAM0'); + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_pitch_do + ' (36)', '36'], + [Lang.template.connectlite_item_pitch_do_sharp + ' (37)', '37'], + [Lang.template.connectlite_item_pitch_re + ' (38)', '38'], + [Lang.template.connectlite_item_pitch_re_sharp + ' (39)', '39'], + [Lang.template.connectlite_item_pitch_mi + ' (40)', '40'], + [Lang.template.connectlite_item_pitch_fa + ' (41)', '41'], + [Lang.template.connectlite_item_pitch_fa_sharp + ' (42)', '42'], + [Lang.template.connectlite_item_pitch_sol + ' (43)', '43'], + [Lang.template.connectlite_item_pitch_sol_sharp + ' (44)', '44'], + [Lang.template.connectlite_item_pitch_ra + ' (45)', '45'], + [Lang.template.connectlite_item_pitch_ra_sharp + ' (46)', '46'], + [Lang.template.connectlite_item_pitch_si + ' (47)', '47'], + + [Lang.template.connectlite_item_pitch_do + ' (48)', '48'], + [Lang.template.connectlite_item_pitch_do_sharp + ' (49)', '49'], + [Lang.template.connectlite_item_pitch_re + ' (50)', '50'], + [Lang.template.connectlite_item_pitch_re_sharp + ' (51)', '51'], + [Lang.template.connectlite_item_pitch_mi + ' (52)', '52'], + [Lang.template.connectlite_item_pitch_fa + ' (53)', '53'], + [Lang.template.connectlite_item_pitch_fa_sharp + ' (54)', '54'], + [Lang.template.connectlite_item_pitch_sol + ' (55)', '55'], + [Lang.template.connectlite_item_pitch_sol_sharp + ' (56)', '56'], + [Lang.template.connectlite_item_pitch_ra + ' (57)', '57'], + [Lang.template.connectlite_item_pitch_ra_sharp + ' (58)', '58'], + [Lang.template.connectlite_item_pitch_si + ' (59)', '59'], + + [Lang.template.connectlite_item_pitch_do + ' (60)', '60'], + [Lang.template.connectlite_item_pitch_do_sharp + ' (61)', '61'], + [Lang.template.connectlite_item_pitch_re + ' (62)', '62'], + [Lang.template.connectlite_item_pitch_re_sharp + ' (63)', '63'], + [Lang.template.connectlite_item_pitch_mi + ' (64)', '64'], + [Lang.template.connectlite_item_pitch_fa + ' (65)', '65'], + [Lang.template.connectlite_item_pitch_fa_sharp + ' (66)', '66'], + [Lang.template.connectlite_item_pitch_sol + ' (67)', '67'], + [Lang.template.connectlite_item_pitch_sol_sharp + ' (68)', '68'], + [Lang.template.connectlite_item_pitch_ra + ' (69)', '69'], + [Lang.template.connectlite_item_pitch_ra_sharp + ' (70)', '70'], + [Lang.template.connectlite_item_pitch_si + ' (71)', '71'], + + [Lang.template.connectlite_item_pitch_do + ' (72)', '72'], + [Lang.template.connectlite_item_pitch_do_sharp + ' (73)', '73'], + [Lang.template.connectlite_item_pitch_re + ' (74)', '74'], + [Lang.template.connectlite_item_pitch_re_sharp + ' (75)', '75'], + [Lang.template.connectlite_item_pitch_mi + ' (76)', '76'], + [Lang.template.connectlite_item_pitch_fa + ' (77)', '77'], + [Lang.template.connectlite_item_pitch_fa_sharp + ' (78)', '78'], + [Lang.template.connectlite_item_pitch_sol + ' (79)', '79'], + [Lang.template.connectlite_item_pitch_sol_sharp + ' (80)', '80'], + [Lang.template.connectlite_item_pitch_ra + ' (81)', '81'], + [Lang.template.connectlite_item_pitch_ra_sharp + ' (82)', '82'], + [Lang.template.connectlite_item_pitch_si + ' (83)', '83'], + ], + value: '60', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_pitch_key', + }, + ], + }, + }, + connectlite_dropdown_melody_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_melody_start, '1'], + [Lang.template.connectlite_item_melody_end, '2'], + [Lang.template.connectlite_item_melody_level_up, '3'], + [Lang.template.connectlite_item_melody_level_down, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.connectlite_item_melody_start, '1'], + [Lang.template.connectlite_item_melody_end, '2'], + [Lang.template.connectlite_item_melody_level_up, '3'], + [Lang.template.connectlite_item_melody_level_down, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'connectlite_dropdown_melody_key', + }, + ], + }, + }, + ///======================================================================================== + /// Event block + ///======================================================================================== + // %1 리모컨 %2 키를 눌렀을 때 + connectlite_when_press_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardwarelite.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'connectlite_dropdown_remote_key', + }, + ], + type: 'connectlite_when_press_remote_key', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'connectlite_event', + isNotFor: ['ProboConnectLite'], + event: 'connectlite_event_remote_input', + func(sprite, script) { + const key = Entry.ProboConnectLite.getRemoteKey(script.getStringValue('PARAM1')); + return (Entry.ProboConnectLite.InputData.Remote[key] === 1) + ? script.callReturn() + : this.die(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.when_press_remote_key(%2)', + blockType: 'event', + passTest: true, + textParams: [ + undefined, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 디지털 입력 %2 이(가) 들어왔을 때 + connectlite_when_input_digital_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardwarelite.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'connectlite_dropdown_digital_key', + }, + ], + type: 'connectlite_when_input_digital_value', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'connectlite_event', + isNotFor: ['ProboConnectLite'], + event: 'connectlite_event_digital_input', + func(sprite, script) { + const key = Entry.ProboConnectLite.getDigitalKey(script.getStringValue('PARAM1')); + const value = Entry.ProboConnectLite.getDigitalStateValue(key); + return (value) + ? script.callReturn() + : this.die(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.when_input_digital_value(%2)', + blockType: 'event', + passTest: true, + textParams: [ + undefined, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + ///======================================================================================== + /// Setting Block + ///======================================================================================== + // 입력포트 %1 을(를) %2 센서로 설정 %3 + connectlite_set_sensor_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'connectlite_dropdown_setting_sensor_key', + }, + null, + ], + type: 'connectlite_set_sensor_setting', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_setting', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboConnectLite.getSettingSensorValue(script.getStringValue('PARAM1')); + const sensorSet = Entry.ProboConnectLite.SensorSet; + sensorSet[key] = value; + Entry.ProboConnectLite.RemoteData.ASET2 = ((sensorSet.AA1 << 4) | sensorSet.AA2) & 0xFF; + Entry.ProboConnectLite.RemoteData.ASET1 = ((sensorSet.AA3 << 4) | sensorSet.AA4) & 0xFF; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_sensor_setting(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + ///======================================================================================== + /// Input block + ///======================================================================================== + // 리모컨 입력 %1 + connectlite_is_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_remote_key', + }, + ], + type: 'connectlite_is_remote_key', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getRemoteKey(script.getStringValue('PARAM0')); + return (Entry.ProboConnectLite.InputData.Remote[key] === 1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.is_remote_key(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 디지털 입력 %1 + connectlite_is_digital_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_digital_key', + }, + ], + type: 'connectlite_is_digital_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getDigitalKey(script.getStringValue('PARAM0')); + return Entry.ProboConnectLite.getDigitalStateValue(key);; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.is_digital_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 아날로그 입력 %1 + connectlite_get_analog_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + ], + type: 'connectlite_get_analog_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM0')); + return (Entry.ProboConnectLite.SensorSet[key] === 5) // 5: 압력 + ? 255 - Entry.ProboConnectLite.InputData.Analog[key] + : Entry.ProboConnectLite.InputData.Analog[key]; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_analog_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 X축 + connectlite_get_tri_axis_acceler_x: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + ], + type: 'connectlite_get_tri_axis_acceler_x', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAxisKey(script.getStringValue('PARAM0'), "X"); + const value = Entry.ProboConnectLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_tri_axis_acceler_x(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 Y축 + connectlite_get_tri_axis_acceler_y: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + ], + type: 'connectlite_get_tri_axis_acceler_y', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAxisKey(script.getStringValue('PARAM0'),"Y"); + const value = Entry.ProboConnectLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_tri_axis_acceler_y(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 Z축 + connectlite_get_tri_axis_acceler_z: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + ], + type: 'connectlite_get_tri_axis_acceler_z', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAxisKey(script.getStringValue('PARAM0'), "Z"); + const value = Entry.ProboConnectLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_tri_axis_acceler_z(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + + // %1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환 + connectlite_get_value_mapping: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 255 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 100 ], + }, + ], + type: 'connectlite_get_value_mapping', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + PARAM3: 3, + PARAM4: 4, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM0')); + const inMin = script.getNumberValue('PARAM1'); + const inMax = script.getNumberValue('PARAM2'); + const outMin = script.getNumberValue('PARAM3'); + const outMax = script.getNumberValue('PARAM4'); + const data = (Entry.ProboConnectLite.SensorSet[key] === 5) // 5: 압력 + ? 255 - Entry.ProboConnectLite.InputData.Analog[key] + : Entry.ProboConnectLite.InputData.Analog[key]; + return (data - inMin) * (outMax-outMin) / (inMax - inMin) + outMin; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_value_mapping(%1, %2, %3, %4, %5)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 컬러 센서 %1 이(가) %2 인가? + connectlite_is_color_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'connectlite_dropdown_sensor_color_key', + }, + ], + type: 'connectlite_is_color_value', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key0 = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM0')); + const key1 = Entry.ProboConnectLite.getColorSensorKey(script.getStringValue('PARAM1')); + const value = Entry.ProboConnectLite.InputData.Analog[key0]; + const color = Entry.ProboConnectLite.Color; + return ((color[key1].Min <= value) && (value <= color[key1].Max)); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.is_color_value(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 컬러 센서 %1 의 색상 + connectlite_get_color_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + ], + type: 'connectlite_get_color_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key0 = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboConnectLite.InputData.Analog[key0]; + const color = Entry.ProboConnectLite.Color; + + for (let i = 1; i < 7; i++) { + const key1 = Entry.ProboConnectLite.getColorSensorKey(i.toString()); + if ((color[key1].Min <= value) && (value <= color[key1].Max)) { + switch (i) { + case 1: + return Lang.template.connectlite_item_color_red; + case 2: + return Lang.template.connectlite_item_color_green; + case 3: + return Lang.template.connectlite_item_color_blue; + case 4: + return Lang.template.connectlite_item_color_yellow; + case 5: + return Lang.template.connectlite_item_color_black; + case 6: + return Lang.template.connectlite_item_color_white; + default: + return Lang.template.connectlite_item_error; + } + } + } + + return Lang.template.connectlite_item_nothing; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_color_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 을 %3 값으로 정하기 %4 + connectlite_set_infinite_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + } + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_inNcom_sensor_key', + }, + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'connectlite_set_infinite_setting', + }, + paramsKeyMap: { + PARAM1: 1, + PARAM2: 2, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM1')); + let count = 0; + let value = script.getNumberValue('PARAM2'); + + if (value != 0) { + count = Number(value / 255).toFixed(0); + value = value % 255; + } else { + count = 0; + value = 0; + } + + Entry.ProboConnectLite.Infinite.Buff[key] = Entry.ProboConnectLite.InputData.Analog[key]; + Entry.ProboConnectLite.Infinite.Start[key] = Entry.ProboConnectLite.InputData.Analog[key] - value; + Entry.ProboConnectLite.Infinite.Count[key] = count; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_infinite_setting(%1, %2, %3)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 지름 %3 의 mm 값 + connectlite_get_infinite_mm_diameter: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_inNcom_sensor_key', + }, + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 53.5 ], + }, + ], + type: 'connectlite_get_infinite_mm_diameter', + }, + paramsKeyMap: { + PARAM1: 1, + PARAM2: 2, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM1')); + const radius = script.getNumberValue('PARAM2') / 2; + const pi = 3.141592; + const infinite = Entry.ProboConnectLite.Infinite; + let value = Entry.ProboConnectLite.InputData.Analog[key]; + + if (value < infinite.Buff[key] - 150) { + infinite.Count[key]++; + } else if (value > infinite.Buff[key] + 150) { + infinite.Count[key]--; + } + infinite.Buff[key] = value; + value = (infinite.Buff[key] - infinite.Start[key]) + (infinite.Count[key] * 255); + + return Number((2 * pi * radius) / 255 * value).toFixed(3); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_infinite_mm_diameter(%1, %2, %3)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 의 %3 + connectlite_get_infinite_transform_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_inNcom_sensor_key', + }, + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'connectlite_dropdown_sensor_angle_key', + }, + ], + type: 'connectlite_get_infinite_transform_input', + }, + paramsKeyMap: { + PARAM1: 1, + PARAM2: 2, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key1 = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM1')); + const key2 = Entry.ProboConnectLite.getSensorAngleKey(script.getStringValue('PARAM2')); + const anlogValue = Entry.ProboConnectLite.InputData.Analog[key1]; + const infinite = Entry.ProboConnectLite.Infinite; + + if (anlogValue < (infinite.Buff[key1] - 150)) { + infinite.Count[key1]++; + } else if (anlogValue > (infinite.Buff[key1] + 150)) { + infinite.Count[key1]--; + } + infinite.Buff[key1] = anlogValue; + const value = (infinite.Buff[key1] - infinite.Start[key1]) + (infinite.Count[key1] * 255); + + switch (key2) { + case 'IS1': + return value; + case 'IS2': + return (value > 0) + ? Math.floor((value % 255) * 1.41732) + : Math.ceil((value % 255) * 1.41732) + case 'IS3': + return Number((360 / 255) * anlogValue).toFixed(0); + case 'IS4': + return (value > 0) + ? Math.floor(value / 255) + : Math.ceil(value / 255); + default: + return Lang.template.connectlite_item_nothing; + + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_infinite_transform_input(%1, %2, %3)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 멀티키 센서 %1의 %2 + connectlite_is_multi_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'connectlite_dropdown_multikey_key', + }, + ], + type: 'connectlite_is_multi_sensor', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboConnectLite.getMultiKeyValue(script.getStringValue('PARAM1')); + return (Entry.ProboConnectLite.InputData.Analog[key] >> value) & 0x01; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.is_multi_sensor(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 분배 스위치 %1의 %2 + connectlite_is_multi_switch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'connectlite_dropdown_multikey_key', + }, + ], + type: 'connectlite_is_multi_switch', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key0 = Entry.ProboConnectLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboConnectLite.getMultiKeyValue(script.getStringValue('PARAM1')); + const analog = Entry.ProboConnectLite.InputData.Analog[key0]; + const multySwitch = Entry.ProboConnectLite.MultiSwitch; + + for (let i = 0; i < 8; i++) { + const key = 'Key' + (i + 1).toString(); + if (multySwitch[key].Min <= analog && analog <= multySwitch[key].Max) { + return (value === i); + } + } + + return false; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.is_multi_switch(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 확장 디지털 입력 %1 의 %2 + connectlite_is_extension_digital_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'connectlite_dropdown_extension_digital_key', + }, + ], + type: 'connectlite_is_extension_digital_input', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAxisKey(script.getStringValue('PARAM0'), 'X'); + const shift = Entry.ProboConnectLite.getExtentionDigitalValue(script.getStringValue('PARAM1')); + const value = Entry.ProboConnectLite.InputData.Acceler[key]; + return ((value >> shift) === 1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.is_extension_digital_input(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 확장 아날로그 입력 %1 의 %2 + connectlite_get_extension_analog_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_analog_key', + }, + { + type: 'connectlite_dropdown_extension_analog_key', + }, + ], + type: 'connectlite_get_extension_analog_input', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getAxisKey( + script.getStringValue('PARAM0'), + Entry.ProboConnectLite.getExtentionAnalogKey(script.getStringValue('PARAM1')) + ); + const value = Entry.ProboConnectLite.InputData.Acceler[key]; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_extension_analog_input(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // EEPROM %1 주소의 값 호출하기 %2 + connectlite_set_eeprom_call: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['0'] + }, + null + ], + type: 'connectlite_set_eeprom_call', + }, + paramsKeyMap: { + ADDRESS: 0, + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const address = script.getNumberValue('ADDRESS', script); + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const ms = 50; + const fps = Entry.FPS || 60; + + Entry.ProboConnectLite.EEPROM.Count = Entry.ProboConnectLite.InputData.EEPROM.EC; + Entry.ProboConnectLite.RemoteData['EEPR4'] = 0x40; + Entry.ProboConnectLite.RemoteData['EEPR3'] = address; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboConnectLite.EEPROM.Buff = + (Entry.ProboConnectLite.InputData.EEPROM.EEPR2 << 8) + + Entry.ProboConnectLite.InputData.EEPROM.EEPR1; + Entry.ProboConnectLite.RemoteData['EEPR4'] = 0; + Entry.ProboConnectLite.RemoteData['EEPR3'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_eeprom_call(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // EEPROM 주소의 값 + connectlite_get_eeprom_address_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [], + events: {}, + def: { + type: 'connectlite_get_eeprom_address_value', + }, + class: 'connectlite_input', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const count = Entry.ProboConnectLite.EEPROM.Count; + + return (Entry.ProboConnectLite.InputData.EEPROM.EC != count) + ? Entry.ProboConnectLite.EEPROM.Buff + : 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.get_eeprom_address_value', + blockType: 'param', + textParams: [ null ], + }, + ], + }, + }, + + ///======================================================================================== + /// output block + ///======================================================================================== + // DC 모터 %1 을(를) %2 속도로 회전 %3 + connectlite_set_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_dc_1_all_key', + }, + { + type: 'connectlite_dropdown_velocity_key', + }, + null, + ], + type: 'connectlite_set_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getDckey(script.getStringValue('PARAM0')); + const value = script.getNumberValue('PARAM1'); + + switch (key) { + case 'DC5': + Entry.ProboConnectLite.RemoteData['DC1'] = value; + Entry.ProboConnectLite.RemoteData['DC2'] = value; + break; + case 'DC6': + Entry.ProboConnectLite.RemoteData['DC3'] = value; + Entry.ProboConnectLite.RemoteData['DC4'] = value; + break; + case 'DC7': + Entry.ProboConnectLite.RemoteData['DC1'] = value; + Entry.ProboConnectLite.RemoteData['DC2'] = value; + Entry.ProboConnectLite.RemoteData['DC3'] = value; + Entry.ProboConnectLite.RemoteData['DC4'] = value; + break; + default: + Entry.ProboConnectLite.RemoteData[key] = value; + break; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_dc_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 서보 모터 %1 의 위치를 %2 로 이동 %3 + connectlite_set_servo_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_port_1_4_key', + }, + { + type: 'connectlite_dropdown_servo_position_key', + }, + null, + ], + type: 'connectlite_set_servo_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getServoKey(script.getStringValue('PARAM0')); + const value = script.getNumberValue('PARAM1'); + Entry.ProboConnectLite.RemoteData[key] = Math.min(Math.max(value, 0), 100); + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_servo_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // S 모터 %1 을(를) %2 속도로 회전 %3 + connectlite_set_s_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_port_1_4_key', + }, + { + type: 'connectlite_dropdown_velocity_key', + }, + null, + ], + type: 'connectlite_set_s_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getServoKey(script.getStringValue('PARAM0')); + const speed = script.getNumberValue('PARAM1'); + const value = Math.min(Math.max(speed, -20), 20) + 148; + + switch (key) { + case 'Servo5': + Entry.ProboConnectLite.RemoteData['Servo1'] = value; + Entry.ProboConnectLite.RemoteData['Servo2'] = value; + break; + case 'Servo6': + Entry.ProboConnectLite.RemoteData['Servo3'] = value; + Entry.ProboConnectLite.RemoteData['Servo4'] = value; + break; + default: + Entry.ProboConnectLite.RemoteData[key] = value; + break; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_s_dc_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 출력핀 %1 을(를) %2 %3 + connectlite_set_port_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_port_1_4_key', + }, + { + type: 'connectlite_dropdown_on_off_key', + }, + null + ], + type: 'connectlite_set_port_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getPortKey(script.getStringValue('PARAM0')); + const value = Entry.ProboConnectLite.getPortToggleValue(script.getStringValue('PARAM1')); + + Entry.ProboConnectLite.RemoteData[key] = value; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_port_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2 음표로 연주하기 %3 + connectlite_play_melody_note_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_pitch_key', + }, + { + type: 'connectlite_dropdown_note_key', + }, + null + ], + type: 'connectlite_play_melody_note_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboConnectLite.getPitchValue(script.getNumberValue('PARAM0')); + const note = Entry.ProboConnectLite.getNoteKey(script.getStringValue('PARAM1')); + const ms = Entry.ProboConnectLite.Note[note]; + const fps = Entry.FPS || 60; + + Entry.ProboConnectLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboConnectLite.RemoteData['MEL1'] = pitch; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboConnectLite.RemoteData['MEL2'] = 0; + Entry.ProboConnectLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.play_melody_note_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2 초 동안 연주하기 %3 + connectlite_play_melody_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_pitch_key', + }, + { + type: 'connectlite_dropdown_time_1_key', + }, + null + ], + type: 'connectlite_play_melody_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboConnectLite.getPitchValue(script.getNumberValue('PARAM0')); + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + + Entry.ProboConnectLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboConnectLite.RemoteData['MEL1'] = pitch; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboConnectLite.RemoteData['MEL2'] = 0; + Entry.ProboConnectLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.play_melody_sec_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) 연주하기 %2 + connectlite_play_melody_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_pitch_key', + }, + null + ], + type: 'connectlite_play_melody_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const pitch = Entry.ProboConnectLite.getPitchValue(script.getNumberValue('PARAM0')); + Entry.ProboConnectLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboConnectLite.RemoteData['MEL1'] = pitch; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.play_melody_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 값을(를) %2 초 동안 연주하기 %3 + connectlite_play_value_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + { + type: 'connectlite_dropdown_time_1_key', + }, + null + ], + type: 'connectlite_play_value_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const melody = script.getNumberValue('PARAM0'); + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + + Entry.ProboConnectLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboConnectLite.RemoteData['MEL1'] = melody & 0xff; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboConnectLite.RemoteData['MEL2'] = 0; + Entry.ProboConnectLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.play_melody_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 1 값을(를) 연주하기 %2 + connectlite_play_value_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + null + ], + type: 'connectlite_play_value_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const melody = script.getNumberValue('PARAM0'); + Entry.ProboConnectLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboConnectLite.RemoteData['MEL1'] = melody & 0xff; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.play_melody_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2초 간격으로 재생하기 %3 + connectlite_play_melody_track_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_melody_key', + }, + { + type: 'connectlite_dropdown_time_2_key', + }, + null + ], + type: 'connectlite_play_melody_track_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + function getTrackStep(track,script){ + if(!script.isStart){ + script.isStart = true; + script.trackStep = 0; + } + else { + script.trackStep++; + } + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + const melody = Entry.ProboConnectLite.Track[track][script.trackStep]; + + Entry.ProboConnectLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboConnectLite.RemoteData['MEL1'] = melody & 0xff; + script.timeFlag = 1; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + } + const TR = Entry.ProboConnectLite.getMelodyValue( + script.getStringValue('PARAM0') + ); + if (!script.isStart) { + switch(TR) { + case 0 : + script.maxStep = 6; + break; + case 1 : + script.maxStep = 7; + break; + case 2 : + script.maxStep = 3; + break; + case 3 : + script.maxStep = 3; + break; + } + getTrackStep(TR,script); + return script; + } else if (script.timeFlag == 1) { + return script; + } else if (script.trackStep < script.maxStep){ + getTrackStep(TR,script); + return script; + } else { + Entry.ProboConnectLite.RemoteData['MEL2'] = 0; + Entry.ProboConnectLite.RemoteData['MEL1'] = 0; + + delete script.trackStep; + delete script.maxStep; + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.play_melody_track_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 멜로디 중지 %1 + connectlite_play_melody_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ null ], + type: 'connectlite_play_melody_off', + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + Entry.ProboConnectLite.RemoteData['MEL2'] = 0; + Entry.ProboConnectLite.RemoteData['MEL1'] = 0; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.play_melody_track_output', + textParams: [ null ], + }, + ], + }, + }, + // RGB LED %1 을(를) %2 으로 켜기 %3 + connectlite_set_rgbled_on_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_port_1_4_key', + }, + { + type: 'connectlite_dropdown_rgb_color_key', + }, + null + ], + type: 'connectlite_set_rgbled_on_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboConnectLite.getRgbToggleValue(script.getStringValue('PARAM1')); + Entry.ProboConnectLite.RemoteData[key] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_rgbled_on_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 을(를) 끄기 %2 + connectlite_set_rgbled_off_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_port_1_4_key', + }, + null + ], + type: 'connectlite_set_rgbled_off_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboConnectLite.getRgbToggleValue('0'); + Entry.ProboConnectLite.RemoteData[key] = value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_rgbled_off_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 %2 으로 %3 초 간격 %4 + connectlite_set_rgbled_flashing_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_port_1_4_key', + }, + { + type: 'connectlite_dropdown_rgb_color_key', + }, + { + type: 'connectlite_dropdown_time_3', + }, + null + ], + type: 'connectlite_set_rgbled_flashing_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboConnectLite.getRgbTwinkleValue( + script.getStringValue('PARAM1'), + script.getNumberValue('PARAM2') + ); + Entry.ProboConnectLite.RemoteData[key] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_rgbled_flashing_output(%1, %2, %3)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 을(를) %2 으로 디밍 %3 + connectlite_set_rgbled_dimming_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'connectlite_dropdown_port_1_4_key', + }, + { + type: 'connectlite_dropdown_rgb_color_key', + }, + null + ], + type: 'connectlite_set_rgbled_dimming_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const key = Entry.ProboConnectLite.getServoKey(script.getStringValue('PARAM0')); + const color = Entry.ProboConnectLite.getRgbDimmingValue(script.getStringValue('PARAM1')); + Entry.ProboConnectLite.RemoteData[key] = color; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_rgbled_dimming_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // FND를 %1 (으)로 설정 %2 + connectlite_set_fnd_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'connectlite_set_fnd_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const value = script.getNumberValue('PARAM0'); + Entry.ProboConnectLite.RemoteData['FND'] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_fnd_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // FND 끄기 %1 + connectlite_set_fnd_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null + ], + type: 'connectlite_set_fnd_off', + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + Entry.ProboConnectLite.RemoteData['FND'] = 100; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_fnd_off', + textParams: [ null ], + }, + ], + }, + }, + // EEPROM %1 주소에 %2 값 설정하기 %3 + connectlite_set_eeprom_write: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ] + }, + { + type: 'number', + params: [ 0 ] + }, + null, + ], + type: 'connectlite_set_eeprom_write', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'connectlite_output', + isNotFor: ['ProboConnectLite'], + func: function(sprite, script) { + const address = script.getNumberValue('PARAM0'); + const value = script.getNumberValue('PARAM1'); + + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const ms = 50; + const fps = Entry.FPS || 60; + + Entry.ProboConnectLite.RemoteData['EEPR4'] = 0x80; + Entry.ProboConnectLite.RemoteData['EEPR3'] = address; + Entry.ProboConnectLite.RemoteData['EEPR2'] = (value >> 8) & 0xff; + Entry.ProboConnectLite.RemoteData['EEPR1'] = value & 0xff; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboConnectLite.RemoteData['EEPR4'] = 0x40; + Entry.ProboConnectLite.RemoteData['EEPR3'] = address; + Entry.ProboConnectLite.RemoteData['EEPR2'] = 0; + Entry.ProboConnectLite.RemoteData['EEPR1'] = 0; + + setTimeout(function() { + Entry.ProboConnectLite.RemoteData['EEPR4'] = 0; + Entry.ProboConnectLite.RemoteData['EEPR3'] = 0; + Entry.ProboConnectLite.RemoteData['EEPR2'] = 0; + Entry.ProboConnectLite.RemoteData['EEPR1'] = 0; + }, 100); + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboConnectLite.set_eeprom_write(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + }; // getBlock() return; + } + })(); +})(); + +module.exports = Entry.ProboConnectLite; \ No newline at end of file diff --git a/src/playground/blocks/hardwareLite/metadata_alux_connect_lite.json b/src/playground/blocks/hardwareLite/metadata_alux_connect_lite.json new file mode 100644 index 0000000000..c3ad4b08a8 --- /dev/null +++ b/src/playground/blocks/hardwareLite/metadata_alux_connect_lite.json @@ -0,0 +1,9 @@ +{ + "name": "ProboConnectLite", + "version": "1.0.0", + "type": "hardware", + "title": "프로보 커넥트", + "description": "에이럭스", + "imageName": "alux_proboconnect_lite.png", + "moduleId": "270101" +} From ba4b726ef52709e25350b417beb79a1b9eebefa4 Mon Sep 17 00:00:00 2001 From: hakueon Date: Mon, 14 Apr 2025 16:30:26 +0900 Subject: [PATCH 06/12] =?UTF-8?q?ProboTechnicNormalLite=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/hw_lite/alux_technic_normal_lite.png | Bin 0 -> 47275 bytes .../block_alux_teachnic_normal_lite.js | 5542 +++++++++++++++++ .../metadata_alux_teachnic_normal_lite.json | 9 + 3 files changed, 5551 insertions(+) create mode 100644 images/hw_lite/alux_technic_normal_lite.png create mode 100644 src/playground/blocks/hardwareLite/block_alux_teachnic_normal_lite.js create mode 100644 src/playground/blocks/hardwareLite/metadata_alux_teachnic_normal_lite.json diff --git a/images/hw_lite/alux_technic_normal_lite.png b/images/hw_lite/alux_technic_normal_lite.png new file mode 100644 index 0000000000000000000000000000000000000000..4059689748c61f0ef555801aceff052b10dee498 GIT binary patch literal 47275 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 { + Entry.engine.fireEvent('technicnormallite_event_remote_input'); + }, + EVENT_INTERVAL, + eventSetting + ); + this.digitalEvent = _throttle( + () => { + Entry.engine.fireEvent('technicnormallite_event_digital_input'); + } + , + EVENT_INTERVAL, + eventSetting + ); + + this.qRear = 0; + this.qFront = 0; + this.qSize = 128; + this.qBuffer = new Uint8Array(this.qSize + 2).fill(-1); + this.inputPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); + this.pLength = 0; // packet length + this.process = false; // packet process + + this.version = 0; + this.sendFlag = true; + + this.blockMenuBlocks = [ + //dropdown + 'technicnormallite_dropdown_remote_key', + 'technicnormallite_dropdown_digital_key', + 'technicnormallite_dropdown_analog_key', + 'technicnormallite_dropdown_setting_sensor_key', + 'technicnormallite_dropdown_inNcom_sensor_key', + 'technicnormallite_dropdown_sensor_color_key', + 'technicnormallite_dropdown_rgb_color_key', + 'technicnormallite_dropdown_sensor_angle_key', + 'technicnormallite_dropdown_multikey_key', + 'technicnormallite_dropdown_extension_digital_key', + 'technicnormallite_dropdown_extension_analog_key', + 'technicnormallite_dropdown_dc_1_all_key', + 'technicnormallite_dropdown_port_1_4_key', + 'technicnormallite_dropdown_on_off_key', + 'technicnormallite_dropdown_velocity_key', + 'technicnormallite_dropdown_servo_position_key', + 'technicnormallite_dropdown_note_key', + 'technicnormallite_dropdown_time_1_key', + 'technicnormallite_dropdown_time_2_key', + 'technicnormallite_dropdown_time_3', + 'technicnormallite_dropdown_pitch_key', + 'technicnormallite_dropdown_melody_key', + + //event + 'technicnormallite_when_press_remote_key', + 'technicnormallite_when_input_digital_value', + + //setting + 'technicnormallite_set_senser_setting', + + //input + 'technicnormallite_is_remote_key', + 'technicnormallite_is_digital_value', + 'technicnormallite_is_extension_digital_input', + 'technicnormallite_get_analog_value', + 'technicnormallite_get_extension_analog_input', + // 'technicnormallite_get_tri_axis_acceler_x', // 테크닉 에서 사용하지 않음 + // 'technicnormallite_get_tri_axis_acceler_y', // 테크닉 에서 사용하지 않음 + // 'technicnormallite_get_tri_axis_acceler_z', // 테크닉 에서 사용하지 않음 + 'technicnormallite_get_value_mapping', + 'technicnormallite_is_color_value', + 'technicnormallite_get_color_value', + 'technicnormallite_set_infinite_setting', + 'technicnormallite_get_infinite_mm_diameter', + 'technicnormallite_get_infinite_transform_input', + // 'technicnormallite_is_multi_sensor', // 테크닉 에서 사용하지 않음 + // 'technicnormallite_is_multi_switch', // 테크닉 에서 사용하지 않음 + 'technicnormallite_set_eeprom_call', + 'technicnormallite_get_eeprom_address_value', + + //output + 'technicnormallite_set_dc_output', + 'technicnormallite_set_servo_output', + // 'technicnormallite_set_s_dc_output', // 테크닉 에서 사용하지 않음 + 'technicnormallite_set_port_output', + 'technicnormallite_play_melody_note_output', + 'technicnormallite_play_melody_sec_output', + 'technicnormallite_play_melody_output', + 'technicnormallite_play_value_sec_output', + 'technicnormallite_play_value_output', + 'technicnormallite_play_melody_track_output', + 'technicnormallite_play_melody_off', + 'technicnormallite_set_rgbled_on_output', + 'technicnormallite_set_rgbled_off_output', + 'technicnormallite_set_rgbled_flashing_output', + 'technicnormallite_set_rgbled_dimming_output', + // 'technicnormallite_set_fnd_output', // 테크닉 에서 사용하지 않음 + // 'technicnormallite_set_fnd_off', // 테크닉 에서 사용하지 않음 + + //EEPROM + 'technicnormallite_set_eeprom_write', + ]; + } + + setLanguage() { + return { + ko: { + template: { + technicnormallite_item_switch: '스위치', + technicnormallite_item_infrared: '적외선', + technicnormallite_item_magnetic: '자석', + technicnormallite_item_rotation: '회전', + technicnormallite_item_color: '컬러', + technicnormallite_item_acceleration: '가속도', + technicnormallite_item_ultrasonic: '초음파', + technicnormallite_item_heart_rate: '심박', + technicnormallite_item_illuminance: '조도', + technicnormallite_item_temperature: '온도', + technicnormallite_item_sound: '소리', + technicnormallite_item_tilt: '기울기', + technicnormallite_item_pressure: '압력', + technicnormallite_item_multi_touch: '멀티키', + technicnormallite_item_compass: '나침반', + technicnormallite_item_tri_acceleration: '3가속', + technicnormallite_item_multi_switch: '분배기', + technicnormallite_item_infinite_rotation: '무한회전', + technicnormallite_item_extension_input: '확장입력', + technicnormallite_item_color_red: '빨간색', + technicnormallite_item_color_green: '초록색', + technicnormallite_item_color_blue: '파란색', + technicnormallite_item_color_cyan: '청녹색', + technicnormallite_item_color_magenta: '자홍색', + technicnormallite_item_color_yellow: '노란색', + technicnormallite_item_color_black: '검정색', + technicnormallite_item_color_white: '하얀색', + technicnormallite_item_value: '값', + technicnormallite_item_angle: '각도', + technicnormallite_item_absolute_angle: '절대각도', + technicnormallite_item_number_of_rotations: '회전 수', + technicnormallite_item_key_1: '키1', + technicnormallite_item_key_2: '키2', + technicnormallite_item_key_3: '키3', + technicnormallite_item_key_4: '키4', + technicnormallite_item_key_5: '키5', + technicnormallite_item_key_6: '키6', + technicnormallite_item_key_7: '키7', + technicnormallite_item_key_8: '키8', + technicnormallite_item_all: '모두', + technicnormallite_item_on: '켜기', + technicnormallite_item_off: '끄기', + technicnormallite_item_note_whole: '온', + technicnormallite_item_note_half: '2분', + technicnormallite_item_note_quarter: '4분', + technicnormallite_item_note_eighth: '8분', + technicnormallite_item_note_sixteenth: '16분', + technicnormallite_item_note_thirty_second: '32분', + technicnormallite_item_pitch_do: '도', + technicnormallite_item_pitch_do_sharp: '도#', + technicnormallite_item_pitch_re: '레', + technicnormallite_item_pitch_re_sharp: '레#', + technicnormallite_item_pitch_mi: '미', + technicnormallite_item_pitch_fa: '파', + technicnormallite_item_pitch_fa_sharp: '파#', + technicnormallite_item_pitch_sol: '솔', + technicnormallite_item_pitch_sol_sharp: '솔#', + technicnormallite_item_pitch_ra: '라', + technicnormallite_item_pitch_ra_sharp: '라#', + technicnormallite_item_pitch_si: '시', + technicnormallite_item_melody_start: '시작음', + technicnormallite_item_melody_end: '종료음', + technicnormallite_item_melody_level_up: '레벨 업', + technicnormallite_item_melody_level_down: '레벨 다운', + + technicnormallite_item_error: '오류', + technicnormallite_item_nothing: '없음', + + technicnormallite_when_press_remote_key: '%1 리모컨 %2 키를 눌렀을 때', + technicnormallite_when_input_digital_value: '%1 디지털 입력 %2 이(가) 들어왔을 때', + + technicnormallite_set_senser_setting: '입력포트 %1 을(를) %2 센서로 설정 %3', + + technicnormallite_is_remote_key: '리모컨 입력 %1', + technicnormallite_is_digital_value: '디지털 입력 %1', + technicnormallite_is_extension_digital_input: '확장 디지털 입력 %1 의 %2', + technicnormallite_get_analog_value: '아날로그 입력 %1', + technicnormallite_get_extension_analog_input: '확장 아날로그 입력 %1 의 %2', + technicnormallite_get_tri_axis_acceler_x: '3가속도 %1의 X축', + technicnormallite_get_tri_axis_acceler_y: '3가속도 %1의 Y축', + technicnormallite_get_tri_axis_acceler_z: '3가속도 %1의 Z축', + technicnormallite_get_value_mapping: '%1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환', + technicnormallite_is_color_value: '컬러 센서 %1 이(가) %2 인가?', + technicnormallite_get_color_value: '컬러 센서 %1 의 색상', + technicnormallite_set_infinite_setting: '%1 센서 %2 을 %3 값으로 정하기 %4', + technicnormallite_get_infinite_mm_diameter: '%1 센서 %2 지름 %3 의 mm 값', + technicnormallite_get_infinite_transform_input: '%1 센서 %2 의 %3', + technicnormallite_is_multi_sensor: '멀티키 센서 %1의 %2', + technicnormallite_is_multi_switch: '분배 스위치 %1의 %2', + technicnormallite_set_eeprom_call: 'EEPROM %1 주소의 값 호출하기 %2', + technicnormallite_get_eeprom_address_value: 'EEPROM 주소의 값', + + technicnormallite_set_port_output: '출력핀 %1 을(를) %2 %3', + technicnormallite_set_servo_output: '서보 모터 %1 의 위치를 %2 로 이동 %3', + technicnormallite_set_s_dc_output: 'S 모터 %1 을(를) %2 속도로 회전 %3', + technicnormallite_set_dc_output: 'DC 모터 %1 을(를) %2 속도로 회전 %3', + technicnormallite_play_melody_note_output: '%1 을(를) %2 음표로 연주하기 %3', + technicnormallite_play_melody_sec_output: '%1 을(를) %2 초 동안 연주하기 %3', + technicnormallite_play_melody_output: '%1 을(를) 연주하기 %2', + technicnormallite_play_value_sec_output: '%1 값을(를) %2 초 동안 연주하기 %3', + technicnormallite_play_value_output: '%1 값을(를) 연주하기 %2', + technicnormallite_play_melody_track_output: '%1 을(를) %2초 간격으로 재생하기 %3', + technicnormallite_play_melody_off: '멜로디 중지 %1', + technicnormallite_set_rgbled_on_output: 'RGB LED %1 을(를) %2 으로 켜기 %3', + technicnormallite_set_rgbled_off_output: 'RGB LED %1 을(를) 끄기 %2', + technicnormallite_set_rgbled_dimming_output: 'RGB LED %1 을(를) %2 으로 디밍 %3', + technicnormallite_set_rgbled_flashing_output: 'RGB LED %1 %2 으로 %3 초 간격 %4', + technicnormallite_set_fnd_output: 'FND를 %1 (으)로 설정 %2', + technicnormallite_set_fnd_off: 'FND 끄기 %1', + technicnormallite_set_eeprom_write: 'EEPROM %1 주소에 %2 값 설정하기 %3', + }, + Device: { + probo_technic_normal: '프로보 테크닉(일반)', + }, + Menus: { + probo_technic_normal_lite: '프로보 테크닉(일반)', + }, + }, + en: { + + template: { + technicnormallite_item_switch: 'Switch', + technicnormallite_item_infrared: 'Infrared', + technicnormallite_item_magnetic: 'Magnetic', + technicnormallite_item_rotation: 'Rotation', + technicnormallite_item_color: 'Color', + technicnormallite_item_acceleration: 'Acceleration', + technicnormallite_item_ultrasonic: 'Ultrasonic', + technicnormallite_item_heart_rate: 'Heart Rate', + technicnormallite_item_illuminance: 'Illuminance', + technicnormallite_item_temperature: 'Temperature', + technicnormallite_item_sound: 'Sound', + technicnormallite_item_tilt: 'Tilt', + technicnormallite_item_pressure: 'Pressure', + technicnormallite_item_multi_touch: 'Multi Touch', + technicnormallite_item_compass: 'Compass', + technicnormallite_item_tri_acceleration: '3Acceleration', + technicnormallite_item_multi_switch: 'Multi Switch', + technicnormallite_item_infinite_rotation: 'Infinite Rotation', + technicnormallite_item_extension_input: 'Extension Input', + technicnormallite_item_color_red: 'Red', + technicnormallite_item_color_green: 'Green', + technicnormallite_item_color_blue: 'Blue', + technicnormallite_item_color_cyan: 'Cyan', + technicnormallite_item_color_magenta: 'Magenta', + technicnormallite_item_color_yellow: 'Yellow', + technicnormallite_item_color_black: 'Black', + technicnormallite_item_color_white: 'White', + technicnormallite_item_value: 'Value', + technicnormallite_item_angle: 'Angle', + technicnormallite_item_absolute_angle: 'Absolute Angle', + technicnormallite_item_number_of_rotations: 'Number of Rotations', + technicnormallite_item_key_1: 'Key1', + technicnormallite_item_key_2: 'Key2', + technicnormallite_item_key_3: 'Key3', + technicnormallite_item_key_4: 'Key4', + technicnormallite_item_key_5: 'Key5', + technicnormallite_item_key_6: 'Key6', + technicnormallite_item_key_7: 'Key7', + technicnormallite_item_key_8: 'Key8', + technicnormallite_item_all: 'All', + technicnormallite_item_on: 'On', + technicnormallite_item_off: 'Off', + technicnormallite_item_note_whole: 'Whole', + technicnormallite_item_note_half: 'Half', + technicnormallite_item_note_quarter: 'Quarter', + technicnormallite_item_note_eighth: 'Eighth', + technicnormallite_item_note_sixteenth: 'Sixteenth', + technicnormallite_item_note_thirty_second: 'Thirty-Second', + technicnormallite_item_pitch_do: 'do', + technicnormallite_item_pitch_do_sharp: 'xdo', + technicnormallite_item_pitch_re: 're', + technicnormallite_item_pitch_re_sharp: 'xre', + technicnormallite_item_pitch_mi: 'mi', + technicnormallite_item_pitch_fa: 'fa', + technicnormallite_item_pitch_fa_sharp: 'xfa', + technicnormallite_item_pitch_sol: 'sol', + technicnormallite_item_pitch_sol_sharp: 'xsol', + technicnormallite_item_pitch_ra: 'ra', + technicnormallite_item_pitch_ra_sharp: 'xra', + technicnormallite_item_pitch_si: 'si', + technicnormallite_item_melody_start: 'Start', + technicnormallite_item_melody_end: 'End', + technicnormallite_item_melody_level_up: 'Level up', + technicnormallite_item_melody_level_down: 'Level down', + + technicnormallite_item_error: 'error', + technicnormallite_item_nothing: 'nothing', + + technicnormallite_when_press_remote_key: '%1 When %2 remote control key pressed', + technicnormallite_when_input_digital_value: '%1 When %2 digital pin input', + + technicnormallite_set_senser_setting: 'Set input port %1 to %2 sensor %3', + + technicnormallite_is_remote_key: 'Remote control %1', + technicnormallite_is_digital_value: 'Read digital pin %1', + technicnormallite_is_extension_digital_input: 'Extension digital input %1 to %2', + technicnormallite_get_analog_value: 'Read analog pin %1', + technicnormallite_get_extension_analog_input: 'Extension analog input %1 to %2', + technicnormallite_get_tri_axis_acceler_x: '3acceleration %1 and X', + technicnormallite_get_tri_axis_acceler_y: '3acceleration %1 and Y', + technicnormallite_get_tri_axis_acceler_z: '3acceleration %1 and Z', + technicnormallite_get_value_mapping: '%1 to value %2 ~ %3 change %4 ~ %5', + technicnormallite_is_color_value: 'Is color sensor %1 %2 ?', + technicnormallite_get_color_value: 'Color of color sensor %1', + technicnormallite_set_infinite_setting: 'Set %1 sensor %2 to %3 value %4', + technicnormallite_get_infinite_mm_diameter: 'The move distance(in mm) when the %1 sensor %2 is %3 mm in diameter', + technicnormallite_get_infinite_transform_input: '%1 rotation sensor %2 to %3', + technicnormallite_is_multi_sensor: 'Multi sensor %1 key %2', + technicnormallite_is_multi_switch: 'A key number of the multi-switch sensor %1 = %2', + technicnormallite_set_eeprom_call:'Calling the value of EEPROM %1 address', + technicnormallite_get_eeprom_address_value: 'Value of EEPROM address', + + technicnormallite_set_dc_output: 'DC motor %1 velocity %2 %3', + technicnormallite_set_servo_output: 'Servo motor %1 position %2 %3', + technicnormallite_set_s_dc_output: 'Servo motor %1 speed %2 %3', + technicnormallite_set_port_output: 'Set digital pin %1 as %2 %3', + technicnormallite_play_melody_note_output: 'Play key %1 for %2 note %3', + technicnormallite_play_melody_sec_output: 'Play key %1 for %2 secs %3', + technicnormallite_play_melody_output: 'Play key %1 %2', + technicnormallite_play_value_sec_output: 'Play value %1 for %2 secs %3', + technicnormallite_play_value_output: 'Play value %1 %2', + technicnormallite_play_melody_track_output: 'Play sound %1 for %2 secs %3', + technicnormallite_play_melody_off: 'Stop tone %1', + technicnormallite_set_rgbled_on_output: 'Turn on RGB LED %1 to %2 %3', + technicnormallite_set_rgbled_off_output: 'Turn off RGB LED %1 %2', + technicnormallite_set_rgbled_dimming_output: 'Dimming RGB LED %1 to %2 %3', + technicnormallite_set_rgbled_flashing_output: 'RGB LED %1 Blinking %2 at %3 second intervals %4', + technicnormallite_set_fnd_output: 'Set FND to %1 %2', + technicnormallite_set_fnd_off: 'Turn off FND %1', + technicnormallite_set_eeprom_write: 'Set EEPROM %1 address to %2 %3', + }, + Device: { + probo_technic_normal_lite: 'Probo Technic(Normal)', + }, + Menus: { + probo_technic_normal_lite: 'Probo Technic(Normal)', + }, + }, + }; + } + + // 시작하기 및 정지하기 시 기기상태를 초기화한다. + setZero() { + this.Infinite = { + Buff: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Count: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Start: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + } + }; + this.SenserSet = { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }; + this.InputData = { + Analog: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Digital: { + A1: 0, + A2: 0, + A3: 0, + A4: 0, + FEA1: 0, + FEA2: 0, + FEA3: 0, + FEA4: 0, + REA1: 0, + REA2: 0, + REA3: 0, + REA4: 0, + BEA1: 0, + BEA2: 0, + BEA3: 0, + BEA4: 0 + }, + Remote: { + R_1: 0, + R_2: 0, + R_3: 0, + R_4: 0, + R_5: 0, + R_6: 0, + R_7: 0, + R_8: 0, + R_L1: 0, + R_L2: 0, + R_R1: 0, + R_R2: 0 + }, + EEPROM: { + EC: 0, + EEPR2: 0, + EEPR1: 0 + }, + Infinite:{ + ROTATION_1: 0, + ROTATION_2: 0, + ROTATION_3: 0, + ROTATION_4: 0 + }, + Acceler:{ + AXIS_X1: 0, + AXIS_X2: 0, + AXIS_X3: 0, + AXIS_X4: 0, + AXIS_Y1: 0, + AXIS_Y2: 0, + AXIS_Y3: 0, + AXIS_Y4: 0, + AXIS_Z1: 0, + AXIS_Z2: 0, + AXIS_Z3: 0, + AXIS_Z4: 0 + } + }; + this.RemoteData = { + B1: 0, + B2: 0, + B3: 0, + B4: 0, + Servo1: 0, + Servo2: 0, + Servo3: 0, + Servo4: 0, + DC1: 0, + DC2: 0, + DC3: 0, + DC4: 0, + MEL2: 0, + MEL1: 0, + FND: 100, + EEPR4: 0, + EEPR3: 0, + EEPR2: 0, + EEPR1: 0, + ASET2: 0, + ASET1: 0 + }; + this.EdgeFlag = { + FEA1: 0, + FEA2: 0, + FEA3: 0, + FEA4: 0, + REA1: 0, + REA2: 0, + REA3: 0, + REA4: 0, + BEA1: 0, + BEA2: 0, + BEA3: 0, + BEA4: 0 + }; + this.EEPROM = { + Buff: 0, + Count: 0 + }; + + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + }; + } + + // 하드웨어 연결 후 초기화한다. + async initialHandshake() { + const ko = `테크닉의 'Start' 버튼을 누른 후 확인을 클릭하세요.\n`; + const en = `(Please, After pushing the 'Start' button in Technic, click 'OK'.)`; + alert(`${ko}${en}`); + + const modePacket = new Uint8Array(2).fill(0); + modePacket[0] = 0x63; + modePacket[1] = 0x36; + + while(true) { + const response = await Entry.hwLite.serial.sendAsyncWithThrottle(modePacket); + + if (response[0] !== TECHNIC_NORMAL_INDEX) { + modePacket[0] = 0x24; + modePacket[1] = 0x42; + } else { + this.version = (response.length === 1) + ? RELEASE_VERSION + : response[1]; + await Entry.Utils.sleep(1000); + break; + } + await Entry.Utils.sleep(100); + } + + Entry.addEventListener('run', this.handleRemoteEventInterval.bind(this)); + Entry.addEventListener('run', this.handleDigitalEventInterval.bind(this)); + Entry.addEventListener('beforeStop', clearInterval(this.remoteEventIntervalId)); + Entry.addEventListener('beforeStop', clearInterval(this.digitalEventIntervalId)); + this.setZero(); + + if (this.version === 0) { + const packet = await Entry.hwLite.serial.reader.read(); + this.version = packet.value[0]; + if (this.version !== RELEASE_VERSION) { + const ko = `펌웨어를 업데이트 하세요.\n`; + const en = `(Please, Update your firmware.)\n`; + const version = ` - 현재(now): v.${this.version}\n - 최신(latest): v.${RELEASE_VERSION}`; + alert(`${ko}${en}${version}`); + } + } + return true; + } + + handleRemoteEventInterval() { + this.remoteEventIntervalId = setInterval(this.remoteEvent.bind(this), EVENT_INTERVAL); + } + + handleDigitalEventInterval() { + this.digitalEventIntervalId = setInterval(this.digitalEvent.bind(this), EVENT_INTERVAL); + } + + // 디바이스에서 값을 읽어온다. + handleLocalData(buffer) { + buffer.forEach(b => this.qEnqueue(b)); + + while(this.qCount() >= this.inputPacket.length) { + if (!this.process) { + while(this.qCount() > 0) { + if (this.inputPacket[0] !== 0xCD) { + this.inputPacket[0] = this.qDequeue(); + } else if (this.inputPacket[1] !== 0xDA) { + this.inputPacket[1] = this.qDequeue(); + } else { + this.inputPacket[2] = this.qDequeue(); + this.pLength = this.inputPacket[2] + 3; + this.process = true; + break; + } + } + } + + if (this.process && (this.qCount() >= this.pLength)) { + for (let i = 3; i < this.pLength; i++) { + this.inputPacket[i] = this.qDequeue(); + } + if (this.checksumHandle(this.inputPacket)) { + this.processInputPacket(this.inputPacket); + } + + this.inputPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); + this.process = false; + this.sendFlag = true; + this.pLength = 0; + } + } + + if (this.sendFlag) { + setTimeout( + () => { + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + this.sendFlag = false; + } + }, + SERIAL_INTERVAL + ); + }; + } + + //디바이스에 값을 쓴다. + requestLocalData() { + if (this.sendFlag) { + return this.generateOutputPacket(this.RemoteData); + } + } + + qEnqueue(data) { + this.qBuffer[this.qRear] = data; + this.qRear = (this.qRear + 1) % this.qSize + } + + qDequeue() { + const data = this.qBuffer[this.qFront]; + this.qBuffer[this.qFront] = -1; + this.qFront = (this.qFront + 1) % this.qSize; + return data; + } + + qCount() { + return (this.qFront <= this.qRear) + ? (this.qRear - this.qFront) + : (this.qSize - this.qFront + this.qRear); + } + + checksumRequest(packet) { + const length = packet[2] + 2; + let checker = 0; + for(let i = 3; i < length; i++) { + checker += packet[i]; + } + return (checker & 0xFF); + + } + + checksumHandle(packet) { + let checker = 0; + const length = packet[2] + 2; + for(let i = 3; i < length ; i++ ) { + checker += packet[i]; + } + return (packet[length] === (checker & 0xFF)) + } + + processInputPacket(packet) { + const digitalByte1 = packet[8]; + const digitalByte2 = packet[9]; + const remoteByte1 = packet[10]; + const remoteByte2 = packet[11]; + const rotationByte = packet[16]; + + this.InputData.Analog.AA1 = packet[4]; + this.InputData.Analog.AA2 = packet[5]; + this.InputData.Analog.AA3 = packet[6]; + this.InputData.Analog.AA4 = packet[7]; + + this.InputData.Digital.A4 = (digitalByte1 >> 7) & 0x01; + this.InputData.Digital.A3 = (digitalByte1 >> 6) & 0x01; + this.InputData.Digital.A2 = (digitalByte1 >> 5) & 0x01; + this.InputData.Digital.A1 = (digitalByte1 >> 4) & 0x01; + this.InputData.Digital.FEA4 = (digitalByte1 >> 3) & 0x01; + this.InputData.Digital.FEA3 = (digitalByte1 >> 2) & 0x01; + this.InputData.Digital.FEA2 = (digitalByte1 >> 1) & 0x01; + this.InputData.Digital.FEA1 = digitalByte1 & 0x01; + this.InputData.Digital.REA4 = (digitalByte2 >> 7) & 0x01; + this.InputData.Digital.REA3 = (digitalByte2 >> 6) & 0x01; + this.InputData.Digital.REA2 = (digitalByte2 >> 5) & 0x01; + this.InputData.Digital.REA1 = (digitalByte2 >> 4) & 0x01; + this.InputData.Digital.BEA4 = (digitalByte2 >> 3) & 0x01; + this.InputData.Digital.BEA3 = (digitalByte2 >> 2) & 0x01; + this.InputData.Digital.BEA2 = (digitalByte2 >> 1) & 0x01; + this.InputData.Digital.BEA1 = digitalByte2 & 0x01; + + this.InputData.Remote.R_3 = (remoteByte1 >> 7) & 0x01; + this.InputData.Remote.R_2 = (remoteByte1 >> 6) & 0x01; + this.InputData.Remote.R_4 = (remoteByte1 >> 5) & 0x01; + this.InputData.Remote.R_1 = (remoteByte1 >> 4) & 0x01; + this.InputData.Remote.R_7 = (remoteByte2 >> 7) & 0x01; + this.InputData.Remote.R_6 = (remoteByte2 >> 6) & 0x01; + this.InputData.Remote.R_8 = (remoteByte2 >> 5) & 0x01; + this.InputData.Remote.R_5 = (remoteByte2 >> 4) & 0x01; + this.InputData.Remote.R_R1 = (remoteByte2 >> 3) & 0x01; + this.InputData.Remote.R_L1 = (remoteByte2 >> 2) & 0x01; + this.InputData.Remote.R_R2 = (remoteByte2 >> 1) & 0x01; + this.InputData.Remote.R_L2 = remoteByte2 & 0x01; + + this.InputData.EEPROM.EC = packet[13]; + this.InputData.EEPROM.EEPR2 = packet[14]; + this.InputData.EEPROM.EEPR1 = packet[15]; + + this.InputData.Infinite.ROTATION_1 = (rotationByte >> 6) & 0x0C; + this.InputData.Infinite.ROTATION_2 = (rotationByte >> 4) & 0x0C; + this.InputData.Infinite.ROTATION_3 = (rotationByte >> 2) & 0x0C; + this.InputData.Infinite.ROTATION_4 = rotationByte & 0x03; + + this.InputData.Acceler.AXIS_X1 = packet[4]; + this.InputData.Acceler.AXIS_X2 = packet[5]; + this.InputData.Acceler.AXIS_X3 = packet[6]; + this.InputData.Acceler.AXIS_X4 = packet[7]; + + this.InputData.Acceler.AXIS_Y1 = packet[17]; + this.InputData.Acceler.AXIS_Y2 = packet[19]; + this.InputData.Acceler.AXIS_Y3 = packet[21]; + this.InputData.Acceler.AXIS_Y4 = packet[23]; + + this.InputData.Acceler.AXIS_Z1 = packet[18]; + this.InputData.Acceler.AXIS_Z2 = packet[20]; + this.InputData.Acceler.AXIS_Z3 = packet[22]; + this.InputData.Acceler.AXIS_Z4 = packet[24]; + } + + generateOutputPacket(remoteData) { + + const outputPacket = new Uint8Array(SEND_PACKET_LENGTH).fill(-1); + + outputPacket[0] = 0xAD; + outputPacket[1] = 0xDA; + outputPacket[2] = outputPacket.length - 3; + + outputPacket[3] = 0xF0 | (remoteData.B4 << 3) | (remoteData.B3 << 2) | (remoteData.B2 << 1) | remoteData.B1; + + outputPacket[4] = remoteData.Servo1; + outputPacket[5] = remoteData.Servo2; + outputPacket[6] = remoteData.Servo3; + outputPacket[7] = remoteData.Servo4; + + outputPacket[8] = remoteData.DC1; + outputPacket[9] = remoteData.DC2; + outputPacket[10] = remoteData.DC3; + outputPacket[11] = remoteData.DC4; + + outputPacket[12] = remoteData.MEL2; + outputPacket[13] = remoteData.MEL1; + + outputPacket[14] = remoteData.FND; + + outputPacket[15] = remoteData.EEPR4; + outputPacket[16] = remoteData.EEPR3; + outputPacket[17] = remoteData.EEPR2; + outputPacket[18] = remoteData.EEPR1; + + outputPacket[19] = remoteData.ASET2; + outputPacket[20] = remoteData.ASET1; + + outputPacket[21] = this.checksumRequest(outputPacket); + + return outputPacket; + } + + getMonitorPort() { + return { ...this.InputData.Analog }; + } + + getRemoteKey(data) { + const num = Number(data); + + if (1 <= num && num <= 8) { + return `R_${num}`; + } else if (9 <= num && num <= 10) { + return `R_L${(num - 8)}`; + } else if (11 <= num && num <= 12) { + return `R_R${(num - 10)}`; + } else { + return data; + } + } + + getDigitalKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `A${num}`; + } else if (5 <= num && num <= 8) { + return `FEA${num - 4}`; + } else if (9 <= num && num <= 12) { + return `REA${num - 8}`; + } else if (13 <= num && num <= 16) { + return `BEA${num - 12}`; + } else { + return data; + } + } + + getDigitalStateValue(key) { + let value = false; + switch(key) { + case 'A1': + case 'A2': + case 'A3': + case 'A4': + value = (Entry.ProboTechnicNormalLite.InputData.Digital[key] === 1); + break; + default: + if (Entry.ProboTechnicNormalLite.InputData.Digital[key] === 1) { + if (Entry.ProboTechnicNormalLite.EdgeFlag[key] === 0) { + Entry.ProboTechnicNormalLite.EdgeFlag[key] = 1; + value = true; + } + } else { + Entry.ProboTechnicNormalLite.EdgeFlag[key] = 0; + } + break; + } + + return value; + } + + getAnalogKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `AA${num}`; + } else { + return data; + } + } + + getSettingSensorValue(key) { + switch (key) { + case '1': // 스위치 + case '2': // 적외선 + case '3': // 자석 + case '16': // 분배기 + case Lang.template.technicnormallite_item_switch: // 스위치 + case Lang.template.technicnormallite_item_infrared: // 적외선 + case Lang.template.technicnormallite_item_magnetic: // 자석 + case Lang.template.technicnormallite_item_multi_switch: // 분배기 + return 1; + case '4': // 회전 + case '7': // 조도 + case '9': // 초음파 + case Lang.template.technicnormallite_item_rotation: // 회전 + case Lang.template.technicnormallite_item_illuminance: // 조도 + case Lang.template.technicnormallite_item_ultrasonic: // 초음파 + return 2; + case '10': // 소리 + case Lang.template.technicnormallite_item_sound: // 소리 + return 3; + case '11': // 기울기 + case Lang.template.technicnormallite_item_tilt: // 기울기 + return 4; + case '12': // 압력 + case Lang.template.technicnormallite_item_pressure: // 압력 + return 5; + case '8': // 심박 + case Lang.template.technicnormallite_item_heart_rate: // 심박 + return 6; + case '5': // 컬러 + case Lang.template.technicnormallite_item_color: // 컬러 + return 7; + case '6': // 가속도 + case Lang.template.technicnormallite_item_acceleration: // 가속도 + return 8; + case '14': // 나침반 + case '15': // 3축 가속도 + case '17': // 확장 입력 + case Lang.template.technicnormallite_item_compass: + case Lang.template.technicnormallite_item_tri_acceleration: + case Lang.template.technicnormallite_item_extension_input: + return 9; + case '13': // 멀티터치(멀티키) + case Lang.template.technicnormallite_item_multi_touch: // 멀티터치(멀티키) + return 11; + default: + return key; + } + } + + getAxisKey(data, axis) { + switch (data) { + case 'AA1': + case 'AA2': + case 'AA3': + case 'AA4': + data = data.substr(2, 2); + break; + } + + return `AXIS_${axis}${data}`; + } + + getMultiKeyValue(key) { + const num = Number(key); + + if (1 <= num && num <= 8) { + return (num - 1); + } else { + switch (key) { + case Lang.template.technicnormallite_item_key_1: + return 0; + case Lang.template.technicnormallite_item_key_2: + return 1; + case Lang.template.technicnormallite_item_key_3: + return 2; + case Lang.template.technicnormallite_item_key_4: + return 3; + case Lang.template.technicnormallite_item_key_5: + return 4; + case Lang.template.technicnormallite_item_key_6: + return 5; + case Lang.template.technicnormallite_item_key_7: + return 6; + case Lang.template.technicnormallite_item_key_8: + return 7; + default: + return key; + } + } + } + + getExtentionDigitalValue(key) { + const num = Number(key); + if (1 <= num && num <= 8) { + return (num - 1); + } else if (9 <= num && num <= 16) { + return (num - 9); + } else { + switch (key) { + case 'EA1': + case 'ET1': + return 0; + case 'EA2': + case 'ET2': + return 1; + case 'EA3': + case 'ET3': + return 2; + case 'EA4': + case 'ET4': + return 3; + case 'EA5': + case 'ET5': + return 4; + case 'EA6': + case 'ET6': + return 5; + case 'EA7': + case 'ET7': + return 6; + case 'EA8': + case 'ET8': + return 7; + default: + return key; + } + } + } + + getExtentionAnalogKey(data) { + switch (data) { + case '1': + case 'EAA1': + return 'Y'; + case '2': + case 'EAA2': + return 'Z'; + default: + return data; + } + } + + getDckey(data) { + const num = Number(data); + + if (1 <= num && num <= 7) { + return `DC${num}`; + } else { + return data; + } + } + + getServoKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `Servo${num}`; + } else { + return data; + } + } + + getPortKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `B${num}`; + } else { + return data; + } + } + + getPortToggleValue(key) { + switch (key) { + case '1': + case Lang.template.technicnormallite_item_on: + return 1; + case '0': + case Lang.template.technicnormallite_item_off: + return 0; + default: + return key; + } + } + + getSensorAngleKey(data) { + switch (data) { + case '1': + case Lang.template.technicnormallite_item_value: + return 'IS1'; + case '2': + case Lang.template.technicnormallite_item_angle: + return 'IS2'; + case '3': + case Lang.template.technicnormallite_item_absolute_angle: + return 'IS3'; + case '4': + case Lang.template.technicnormallite_item_number_of_rotations: + return 'IS4'; + default: + return data; + } + } + + getPitchValue(pitch) { + // 배열의 인덱스 1번부터 음표 + const index = (pitch % 12) + 1; + + if (36 <= pitch && pitch <= 47) { + return Entry.ProboTechnicNormalLite.Melody[index]; + } else if (48 <= pitch && pitch <= 59) { + return Entry.ProboTechnicNormalLite.Melody[index] >> 1; + } else if (60 <= pitch && pitch <= 71) { + return Entry.ProboTechnicNormalLite.Melody[index] >> 2; + } else if (72 <= pitch && pitch <= 83) { + return Entry.ProboTechnicNormalLite.Melody[index] >> 3; + } else { + return Entry.ProboTechnicNormalLite.Melody[0]; + } + } + + getNoteKey(data) { + switch (data) { + case '1': + case Lang.template.technicnormallite_item_note_whole: + return 'n1'; + case '2': + case Lang.template.technicnormallite_item_note_half: + return 'n2'; + case '4': + case Lang.template.technicnormallite_item_note_quarter: + return 'n4'; + case '8': + case Lang.template.technicnormallite_item_note_eighth: + return 'n8'; + case '16': + case Lang.template.technicnormallite_item_note_sixteenth: + return 'n16'; + case '32': + case Lang.template.technicnormallite_item_note_thirty_second: + return 'n32'; + default: + return data; + } + } + + getMelodyValue(key) { + switch (key) { + case '1': + case Lang.template.technicnormallite_item_melody_start: + return 0; + case '2': + case Lang.template.technicnormallite_item_melody_end: + return 1; + case '3': + case Lang.template.technicnormallite_item_melody_level_up: + return 2; + case '4': + case Lang.template.technicnormallite_item_melody_level_down: + return 3; + default: + return key; + } + } + + getColorSensorKey(data) { + switch (data) { + case '1': + case Lang.template.technicnormallite_item_color_red: + return 'Red'; + case '2': + case Lang.template.technicnormallite_item_color_green: + return 'Green'; + case '3': + case Lang.template.technicnormallite_item_color_blue: + return 'Blue'; + case '4': + case Lang.template.technicnormallite_item_color_yellow: + return 'Yellow'; + case '5': + case Lang.template.technicnormallite_item_color_black: + return 'Black'; + case '6': + case Lang.template.technicnormallite_item_color_white: + return 'White'; + default: + return data; + } + } + + getRgbToggleValue(key) { + switch (key) { + case '0': + return this.Rgb.Off; + case '1': + case Lang.template.technicnormallite_item_color_red: + return this.Rgb.On.Red; + case '2': + case Lang.template.technicnormallite_item_color_green: + return this.Rgb.On.Green; + case '3': + case Lang.template.technicnormallite_item_color_blue: + return this.Rgb.On.Blue; + case '4': + case Lang.template.technicnormallite_item_color_cyan: + return this.Rgb.On.Cyan; + case '5': + case Lang.template.technicnormallite_item_color_magenta: + return this.Rgb.On.Magenta; + case '6': + case Lang.template.technicnormallite_item_color_yellow: + return this.Rgb.On.Yellow; + case '7': + case Lang.template.technicnormallite_item_color_white: + return this.Rgb.On.White; + default: + return key; + } + } + + getRgbTwinkleValue(key, sec) { + let twinkle = 0; + switch (sec) { + case 0.05: + twinkle += 1; + break; + case 0.1: + twinkle += 2; + break; + case 0.2: + twinkle += 3; + break; + case 0.5: + twinkle += 4; + break; + case 1: + twinkle += 5; + break; + } + + return this.getRgbToggleValue(key) + twinkle; + } + + getRgbDimmingValue(key) { + switch (key) { + case '1': + case Lang.template.technicnormallite_item_color_red: + return this.Rgb.Dimming.Red; + case '2': + case Lang.template.technicnormallite_item_color_green: + return this.Rgb.Dimming.Green; + case '3': + case Lang.template.technicnormallite_item_color_blue: + return this.Rgb.Dimming.Blue; + case '4': + case Lang.template.technicnormallite_item_color_cyan: + return this.Rgb.Dimming.Cyan; + case '5': + case Lang.template.technicnormallite_item_color_magenta: + return this.Rgb.Dimming.Magenta; + case '6': + case Lang.template.technicnormallite_item_color_yellow: + return this.Rgb.Dimming.Yellow; + case '7': + case Lang.template.technicnormallite_item_color_white: + return this.Rgb.Dimming.White; + default: + return key; + } + } + + getBlocks() { + return { + ///======================================================================================== + /// Dropdown block + ///======================================================================================== + technicnormallite_dropdown_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['R_1', '1'], + ['R_2', '2'], + ['R_3', '3'], + ['R_4', '4'], + ['R_5', '5'], + ['R_6', '6'], + ['R_7', '7'], + ['R_8', '8'], + ['R_L1', '9'], + ['R_L2', '10'], + ['R_R1', '11'], + ['R_R2', '12'], + ], + value: 1, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringValue('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['R_1', '1'], + ['R_2', '2'], + ['R_3', '3'], + ['R_4', '4'], + ['R_5', '5'], + ['R_6', '6'], + ['R_7', '7'], + ['R_8', '8'], + ['R_L1', '9'], + ['R_L2', '10'], + ['R_R1', '11'], + ['R_R2', '12'], + ], + value: 1, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_remote_key', + }, + ], + }, + }, + technicnormallite_dropdown_digital_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['A1', '1'], + ['A2', '2'], + ['A3', '3'], + ['A4', '4'], + ['FEA1', '5'], + ['FEA2', '6'], + ['FEA3', '7'], + ['FEA4', '8'], + ['REA1', '9'], + ['REA2', '10'], + ['REA3', '11'], + ['REA4', '12'], + ['BEA1', '13'], + ['BEA2', '14'], + ['BEA3', '15'], + ['BEA4', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['A1', '1'], + ['A2', '2'], + ['A3', '3'], + ['A4', '4'], + ['FEA1', '5'], + ['FEA2', '6'], + ['FEA3', '7'], + ['FEA4', '8'], + ['REA1', '9'], + ['REA2', '10'], + ['REA3', '11'], + ['REA4', '12'], + ['BEA1', '13'], + ['BEA2', '14'], + ['BEA3', '15'], + ['BEA4', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_digital_key', + }, + ], + } + }, + technicnormallite_dropdown_analog_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['AA1', '1'], + ['AA2', '2'], + ['AA3', '3'], + ['AA4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['AA1', '1'], + ['AA2', '2'], + ['AA3', '3'], + ['AA4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_analog_key', + }, + ], + }, + }, + technicnormallite_dropdown_setting_sensor_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_switch, '1'], + [Lang.template.technicnormallite_item_infrared, '2'], + [Lang.template.technicnormallite_item_magnetic, '3'], + [Lang.template.technicnormallite_item_rotation, '4'], + [Lang.template.technicnormallite_item_color, '5'], + // [Lang.template.technicnormallite_item_acceleration, '6'], // 테크닉 에서 사용하지 않음 + [Lang.template.technicnormallite_item_ultrasonic, '7'], + [Lang.template.technicnormallite_item_heart_rate, '8'], + [Lang.template.technicnormallite_item_illuminance, '9'], + [Lang.template.technicnormallite_item_sound, '10'], + [Lang.template.technicnormallite_item_tilt, '11'], + [Lang.template.technicnormallite_item_pressure, '12'], + // [Lang.template.technicnormallite_item_multi_touch, '13'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicnormallite_item_compass, '14'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicnormallite_item_tri_acceleration, '15'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicnormallite_item_multi_switch, '16'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicnormallite_item_extension_input, '17'], // 테크닉 에서 사용하지 않음 + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_switch, '1'], + [Lang.template.technicnormallite_item_infrared, '2'], + [Lang.template.technicnormallite_item_magnetic, '3'], + [Lang.template.technicnormallite_item_rotation, '4'], + [Lang.template.technicnormallite_item_color, '5'], + // [Lang.template.technicnormallite_item_acceleration, '6'], // 테크닉 에서 사용하지 않음 + [Lang.template.technicnormallite_item_ultrasonic, '7'], + [Lang.template.technicnormallite_item_heart_rate, '8'], + [Lang.template.technicnormallite_item_illuminance, '9'], + [Lang.template.technicnormallite_item_sound, '10'], + [Lang.template.technicnormallite_item_tilt, '11'], + [Lang.template.technicnormallite_item_pressure, '12'], + // [Lang.template.technicnormallite_item_multi_touch, '13'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicnormallite_item_compass, '14'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicnormallite_item_tri_acceleration, '15'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicnormallite_item_multi_switch, '16'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicnormallite_item_extension_input, '17'], // 테크닉 에서 사용하지 않음 + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_setting_sensor_key', + }, + ], + }, + }, + technicnormallite_dropdown_inNcom_sensor_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_infinite_rotation, '1'], + //[Lang.template.technicnormallite_item_compass, '2'], // 테크닉 에서 사용하지 않음 + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_infinite_rotation, '1'], + [Lang.template.technicnormallite_item_compass, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_inNcom_sensor_key', + }, + ], + }, + }, + technicnormallite_dropdown_sensor_color_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_color_red, '1'], + [Lang.template.technicnormallite_item_color_green, '2'], + [Lang.template.technicnormallite_item_color_blue, '3'], + [Lang.template.technicnormallite_item_color_yellow, '4'], + [Lang.template.technicnormallite_item_color_black, '5'], + [Lang.template.technicnormallite_item_color_white, '6'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_color_red, '1'], + [Lang.template.technicnormallite_item_color_green, '2'], + [Lang.template.technicnormallite_item_color_blue, '3'], + [Lang.template.technicnormallite_item_color_yellow, '4'], + [Lang.template.technicnormallite_item_color_black, '5'], + [Lang.template.technicnormallite_item_color_white, '6'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_sensor_color_key', + }, + ], + }, + }, + technicnormallite_dropdown_rgb_color_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_color_red, '1'], + [Lang.template.technicnormallite_item_color_green, '2'], + [Lang.template.technicnormallite_item_color_blue, '3'], + [Lang.template.technicnormallite_item_color_cyan, '4'], + [Lang.template.technicnormallite_item_color_magenta, '5'], + [Lang.template.technicnormallite_item_color_yellow, '6'], + [Lang.template.technicnormallite_item_color_white, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_color_red, '1'], + [Lang.template.technicnormallite_item_color_green, '2'], + [Lang.template.technicnormallite_item_color_blue, '3'], + [Lang.template.technicnormallite_item_color_cyan, '4'], + [Lang.template.technicnormallite_item_color_magenta, '5'], + [Lang.template.technicnormallite_item_color_yellow, '6'], + [Lang.template.technicnormallite_item_color_white, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_rgb_color_key', + }, + ], + }, + }, + technicnormallite_dropdown_sensor_angle_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_value, '1'], + [Lang.template.technicnormallite_item_angle, '2'], + [Lang.template.technicnormallite_item_absolute_angle, '3'], + [Lang.template.technicnormallite_item_number_of_rotations, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_value, '1'], + [Lang.template.technicnormallite_item_angle, '2'], + [Lang.template.technicnormallite_item_absolute_angle, '3'], + [Lang.template.technicnormallite_item_number_of_rotations, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_sensor_angle_key', + }, + ], + }, + }, + technicnormallite_dropdown_multikey_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_key_1, '1'], + [Lang.template.technicnormallite_item_key_2, '2'], + [Lang.template.technicnormallite_item_key_3, '3'], + [Lang.template.technicnormallite_item_key_4, '4'], + [Lang.template.technicnormallite_item_key_5, '5'], + [Lang.template.technicnormallite_item_key_6, '6'], + [Lang.template.technicnormallite_item_key_7, '7'], + [Lang.template.technicnormallite_item_key_8, '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_key_1, '1'], + [Lang.template.technicnormallite_item_key_2, '2'], + [Lang.template.technicnormallite_item_key_3, '3'], + [Lang.template.technicnormallite_item_key_4, '4'], + [Lang.template.technicnormallite_item_key_5, '5'], + [Lang.template.technicnormallite_item_key_6, '6'], + [Lang.template.technicnormallite_item_key_7, '7'], + [Lang.template.technicnormallite_item_key_8, '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_multikey_key', + }, + ], + }, + }, + technicnormallite_dropdown_extension_digital_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['EA1', '1'], + ['EA2', '2'], + ['EA3', '3'], + ['EA4', '4'], + ['EA5', '5'], + ['EA6', '6'], + ['EA7', '7'], + ['EA8', '8'], + ['ET1', '9'], + ['ET2', '10'], + ['ET3', '11'], + ['ET4', '12'], + ['ET5', '13'], + ['ET6', '14'], + ['ET7', '15'], + ['ET8', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['EA1', '1'], + ['EA2', '2'], + ['EA3', '3'], + ['EA4', '4'], + ['EA5', '5'], + ['EA6', '6'], + ['EA7', '7'], + ['EA8', '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_extension_digital_key', + }, + ], + }, + }, + technicnormallite_dropdown_extension_analog_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['EAA1', '1'], + ['EAA2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['EAA1', '1'], + ['EAA2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_extension_analog_key', + }, + ], + }, + }, + technicnormallite_dropdown_dc_1_all_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['1,2', '5'], + ['3,4', '6'], + [Lang.template.technicnormallite_item_all, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['1,2', '5'], + ['3,4', '6'], + [Lang.template.technicnormallite_item_all, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_dc_1_all_key', + }, + ], + }, + }, + technicnormallite_dropdown_velocity_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['20', '20'], + ['15', '15'], + ['10', '10'], + ['5', '5'], + ['0', '0'], + ['-5', '-5'], + ['-10', '-10'], + ['-15', '-15'], + ['-20', '-20'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['20', '20'], + ['15', '15'], + ['10', '10'], + ['5', '5'], + ['0', '0'], + ['-5', '-5'], + ['-10', '-10'], + ['-15', '-15'], + ['-20', '-20'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_velocity_key', + }, + ], + }, + }, + technicnormallite_dropdown_servo_position_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['20', '20'], + ['40', '40'], + ['60', '60'], + ['80', '80'], + ['100', '100'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['20', '20'], + ['40', '40'], + ['60', '60'], + ['80', '80'], + ['100', '100'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_servo_position_key', + }, + ], + }, + }, + technicnormallite_dropdown_port_1_4_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_port_1_4_key', + }, + ], + }, + }, + technicnormallite_dropdown_on_off_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_on, '1'], + [Lang.template.technicnormallite_item_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_on, '1'], + [Lang.template.technicnormallite_item_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_on_off_key', + }, + ], + }, + }, + technicnormallite_dropdown_note_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_note_whole, '1'], + [Lang.template.technicnormallite_item_note_half, '2'], + [Lang.template.technicnormallite_item_note_quarter, '4'], + [Lang.template.technicnormallite_item_note_eighth, '8'], + [Lang.template.technicnormallite_item_note_sixteenth, '16'], + [Lang.template.technicnormallite_item_note_thirty_second, '32'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_note_whole, '1'], + [Lang.template.technicnormallite_item_note_half, '2'], + [Lang.template.technicnormallite_item_note_quarter, '4'], + [Lang.template.technicnormallite_item_note_eighth, '8'], + [Lang.template.technicnormallite_item_note_sixteenth, '16'], + [Lang.template.technicnormallite_item_note_thirty_second, '32'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_note_key', + }, + ], + }, + }, + technicnormallite_dropdown_time_1_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_time_1_key', + }, + ], + }, + }, + technicnormallite_dropdown_time_2_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_time_2_key', + }, + ], + }, + }, + technicnormallite_dropdown_time_3: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.05', '0.05'], + ['0.1', '0.1'], + ['0.2', '0.2'], + ['0.5', '0.5'], + ['1', '1'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.05', '0.05'], + ['0.1', '0.1'], + ['0.2', '0.2'], + ['0.5', '0.5'], + ['1', '1'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_time_3', + }, + ], + }, + }, + technicnormallite_dropdown_pitch_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'DropdownExtra', + options: [ + [Lang.template.technicnormallite_item_pitch_do + ' (36)', '36'], + [Lang.template.technicnormallite_item_pitch_do_sharp + ' (37)', '37'], + [Lang.template.technicnormallite_item_pitch_re + ' (38)', '38'], + [Lang.template.technicnormallite_item_pitch_re_sharp + ' (39)', '39'], + [Lang.template.technicnormallite_item_pitch_mi + ' (40)', '40'], + [Lang.template.technicnormallite_item_pitch_fa + ' (41)', '41'], + [Lang.template.technicnormallite_item_pitch_fa_sharp + ' (42)', '42'], + [Lang.template.technicnormallite_item_pitch_sol + ' (43)', '43'], + [Lang.template.technicnormallite_item_pitch_sol_sharp + ' (44)', '44'], + [Lang.template.technicnormallite_item_pitch_ra + ' (45)', '45'], + [Lang.template.technicnormallite_item_pitch_ra_sharp + ' (46)', '46'], + [Lang.template.technicnormallite_item_pitch_si + ' (47)', '47'], + + [Lang.template.technicnormallite_item_pitch_do + ' (48)', '48'], + [Lang.template.technicnormallite_item_pitch_do_sharp + ' (49)', '49'], + [Lang.template.technicnormallite_item_pitch_re + ' (50)', '50'], + [Lang.template.technicnormallite_item_pitch_re_sharp + ' (51)', '51'], + [Lang.template.technicnormallite_item_pitch_mi + ' (52)', '52'], + [Lang.template.technicnormallite_item_pitch_fa + ' (53)', '53'], + [Lang.template.technicnormallite_item_pitch_fa_sharp + ' (54)', '54'], + [Lang.template.technicnormallite_item_pitch_sol + ' (55)', '55'], + [Lang.template.technicnormallite_item_pitch_sol_sharp + ' (56)', '56'], + [Lang.template.technicnormallite_item_pitch_ra + ' (57)', '57'], + [Lang.template.technicnormallite_item_pitch_ra_sharp + ' (58)', '58'], + [Lang.template.technicnormallite_item_pitch_si + ' (59)', '59'], + + [Lang.template.technicnormallite_item_pitch_do + ' (60)', '60'], + [Lang.template.technicnormallite_item_pitch_do_sharp + ' (61)', '61'], + [Lang.template.technicnormallite_item_pitch_re + ' (62)', '62'], + [Lang.template.technicnormallite_item_pitch_re_sharp + ' (63)', '63'], + [Lang.template.technicnormallite_item_pitch_mi + ' (64)', '64'], + [Lang.template.technicnormallite_item_pitch_fa + ' (65)', '65'], + [Lang.template.technicnormallite_item_pitch_fa_sharp + ' (66)', '66'], + [Lang.template.technicnormallite_item_pitch_sol + ' (67)', '67'], + [Lang.template.technicnormallite_item_pitch_sol_sharp + ' (68)', '68'], + [Lang.template.technicnormallite_item_pitch_ra + ' (69)', '69'], + [Lang.template.technicnormallite_item_pitch_ra_sharp + ' (70)', '70'], + [Lang.template.technicnormallite_item_pitch_si + ' (71)', '71'], + + [Lang.template.technicnormallite_item_pitch_do + ' (72)', '72'], + [Lang.template.technicnormallite_item_pitch_do_sharp + ' (73)', '73'], + [Lang.template.technicnormallite_item_pitch_re + ' (74)', '74'], + [Lang.template.technicnormallite_item_pitch_re_sharp + ' (75)', '75'], + [Lang.template.technicnormallite_item_pitch_mi + ' (76)', '76'], + [Lang.template.technicnormallite_item_pitch_fa + ' (77)', '77'], + [Lang.template.technicnormallite_item_pitch_fa_sharp + ' (78)', '78'], + [Lang.template.technicnormallite_item_pitch_sol + ' (79)', '79'], + [Lang.template.technicnormallite_item_pitch_sol_sharp + ' (80)', '80'], + [Lang.template.technicnormallite_item_pitch_ra + ' (81)', '81'], + [Lang.template.technicnormallite_item_pitch_ra_sharp + ' (82)', '82'], + [Lang.template.technicnormallite_item_pitch_si + ' (83)', '83'], + ], + value: '60', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + const value = script.getStringField('PARAM0'); + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_pitch_do + ' (36)', '36'], + [Lang.template.technicnormallite_item_pitch_do_sharp + ' (37)', '37'], + [Lang.template.technicnormallite_item_pitch_re + ' (38)', '38'], + [Lang.template.technicnormallite_item_pitch_re_sharp + ' (39)', '39'], + [Lang.template.technicnormallite_item_pitch_mi + ' (40)', '40'], + [Lang.template.technicnormallite_item_pitch_fa + ' (41)', '41'], + [Lang.template.technicnormallite_item_pitch_fa_sharp + ' (42)', '42'], + [Lang.template.technicnormallite_item_pitch_sol + ' (43)', '43'], + [Lang.template.technicnormallite_item_pitch_sol_sharp + ' (44)', '44'], + [Lang.template.technicnormallite_item_pitch_ra + ' (45)', '45'], + [Lang.template.technicnormallite_item_pitch_ra_sharp + ' (46)', '46'], + [Lang.template.technicnormallite_item_pitch_si + ' (47)', '47'], + + [Lang.template.technicnormallite_item_pitch_do + ' (48)', '48'], + [Lang.template.technicnormallite_item_pitch_do_sharp + ' (49)', '49'], + [Lang.template.technicnormallite_item_pitch_re + ' (50)', '50'], + [Lang.template.technicnormallite_item_pitch_re_sharp + ' (51)', '51'], + [Lang.template.technicnormallite_item_pitch_mi + ' (52)', '52'], + [Lang.template.technicnormallite_item_pitch_fa + ' (53)', '53'], + [Lang.template.technicnormallite_item_pitch_fa_sharp + ' (54)', '54'], + [Lang.template.technicnormallite_item_pitch_sol + ' (55)', '55'], + [Lang.template.technicnormallite_item_pitch_sol_sharp + ' (56)', '56'], + [Lang.template.technicnormallite_item_pitch_ra + ' (57)', '57'], + [Lang.template.technicnormallite_item_pitch_ra_sharp + ' (58)', '58'], + [Lang.template.technicnormallite_item_pitch_si + ' (59)', '59'], + + [Lang.template.technicnormallite_item_pitch_do + ' (60)', '60'], + [Lang.template.technicnormallite_item_pitch_do_sharp + ' (61)', '61'], + [Lang.template.technicnormallite_item_pitch_re + ' (62)', '62'], + [Lang.template.technicnormallite_item_pitch_re_sharp + ' (63)', '63'], + [Lang.template.technicnormallite_item_pitch_mi + ' (64)', '64'], + [Lang.template.technicnormallite_item_pitch_fa + ' (65)', '65'], + [Lang.template.technicnormallite_item_pitch_fa_sharp + ' (66)', '66'], + [Lang.template.technicnormallite_item_pitch_sol + ' (67)', '67'], + [Lang.template.technicnormallite_item_pitch_sol_sharp + ' (68)', '68'], + [Lang.template.technicnormallite_item_pitch_ra + ' (69)', '69'], + [Lang.template.technicnormallite_item_pitch_ra_sharp + ' (70)', '70'], + [Lang.template.technicnormallite_item_pitch_si + ' (71)', '71'], + + [Lang.template.technicnormallite_item_pitch_do + ' (72)', '72'], + [Lang.template.technicnormallite_item_pitch_do_sharp + ' (73)', '73'], + [Lang.template.technicnormallite_item_pitch_re + ' (74)', '74'], + [Lang.template.technicnormallite_item_pitch_re_sharp + ' (75)', '75'], + [Lang.template.technicnormallite_item_pitch_mi + ' (76)', '76'], + [Lang.template.technicnormallite_item_pitch_fa + ' (77)', '77'], + [Lang.template.technicnormallite_item_pitch_fa_sharp + ' (78)', '78'], + [Lang.template.technicnormallite_item_pitch_sol + ' (79)', '79'], + [Lang.template.technicnormallite_item_pitch_sol_sharp + ' (80)', '80'], + [Lang.template.technicnormallite_item_pitch_ra + ' (81)', '81'], + [Lang.template.technicnormallite_item_pitch_ra_sharp + ' (82)', '82'], + [Lang.template.technicnormallite_item_pitch_si + ' (83)', '83'], + ], + value: '60', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_pitch_key', + }, + ], + }, + }, + technicnormallite_dropdown_melody_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_melody_start, '1'], + [Lang.template.technicnormallite_item_melody_end, '2'], + [Lang.template.technicnormallite_item_melody_level_up, '3'], + [Lang.template.technicnormallite_item_melody_level_down, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicnormallite_item_melody_start, '1'], + [Lang.template.technicnormallite_item_melody_end, '2'], + [Lang.template.technicnormallite_item_melody_level_up, '3'], + [Lang.template.technicnormallite_item_melody_level_down, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicnormallite_dropdown_melody_key', + }, + ], + }, + }, + ///======================================================================================== + /// Event block + ///======================================================================================== + // %1 리모컨 %2 키를 눌렀을 때 + technicnormallite_when_press_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardwarelite.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'technicnormallite_dropdown_remote_key', + }, + ], + type: 'technicnormallite_when_press_remote_key', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'technicnormallite_event', + isNotFor: ['ProboTechnicNormalLite'], + event: 'technicnormallite_event_remote_input', + func(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getRemoteKey(script.getStringValue('PARAM1')); + return (Entry.ProboTechnicNormalLite.InputData.Remote[key] === 1) + ? script.callReturn() + : this.die(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.when_press_remote_key(%2)', + blockType: 'event', + passTest: true, + textParams: [ + undefined, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 디지털 입력 %2 이(가) 들어왔을 때 + technicnormallite_when_input_digital_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardwarelite.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'technicnormallite_dropdown_digital_key', + }, + ], + type: 'technicnormallite_when_input_digital_value', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'technicnormallite_event', + isNotFor: ['ProboTechnicNormalLite'], + event: 'technicnormallite_event_digital_input', + func(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getDigitalKey(script.getStringValue('PARAM1')); + const value = Entry.ProboTechnicNormalLite.getDigitalStateValue(key); + return (value) + ? script.callReturn() + : this.die(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.when_input_digital_value(%2)', + blockType: 'event', + passTest: true, + textParams: [ + undefined, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + ///======================================================================================== + /// Setting Block + ///======================================================================================== + // 입력포트 %1 을(를) %2 센서로 설정 %3 + technicnormallite_set_senser_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'technicnormallite_dropdown_setting_sensor_key', + }, + null, + ], + type: 'technicnormallite_set_senser_setting', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_setting', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicNormalLite.getSettingSensorValue(script.getStringValue('PARAM1')); + const sensorSet = Entry.ProboTechnicNormalLite.SenserSet; + sensorSet[key] = value; + Entry.ProboTechnicNormalLite.RemoteData.ASET2 = ((sensorSet.AA1 << 4) | sensorSet.AA2) & 0xFF; + Entry.ProboTechnicNormalLite.RemoteData.ASET1 = ((sensorSet.AA3 << 4) | sensorSet.AA4) & 0xFF; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_sensor_setting(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + ///======================================================================================== + /// Input block + ///======================================================================================== + // 리모컨 입력 %1 + technicnormallite_is_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_remote_key', + }, + ], + type: 'technicnormallite_is_remote_key', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getRemoteKey(script.getStringValue('PARAM0')); + return (Entry.ProboTechnicNormalLite.InputData.Remote[key] === 1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.is_remote_key(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 디지털 입력 %1 + technicnormallite_is_digital_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_digital_key', + }, + ], + type: 'technicnormallite_is_digital_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getDigitalKey(script.getStringValue('PARAM0')); + return Entry.ProboTechnicNormalLite.getDigitalStateValue(key);; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.is_digital_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 아날로그 입력 %1 + technicnormallite_get_analog_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + ], + type: 'technicnormallite_get_analog_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM0')); + return (Entry.ProboTechnicNormalLite.SenserSet[key] === 5) // 5: 압력 + ? 255 - Entry.ProboTechnicNormalLite.InputData.Analog[key] + : Entry.ProboTechnicNormalLite.InputData.Analog[key]; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_analog_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 X축 + technicnormallite_get_tri_axis_acceler_x: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + ], + type: 'technicnormallite_get_tri_axis_acceler_x', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAxisKey(script.getStringValue('PARAM0'), "X"); + const value = Entry.ProboTechnicNormalLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_tri_axis_acceler_x(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 Y축 + technicnormallite_get_tri_axis_acceler_y: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + ], + type: 'technicnormallite_get_tri_axis_acceler_y', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAxisKey(script.getStringValue('PARAM0'),"Y"); + const value = Entry.ProboTechnicNormalLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_tri_axis_acceler_y(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 Z축 + technicnormallite_get_tri_axis_acceler_z: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + ], + type: 'technicnormallite_get_tri_axis_acceler_z', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAxisKey(script.getStringValue('PARAM0'), "Z"); + const value = Entry.ProboTechnicNormalLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_tri_axis_acceler_z(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + + // %1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환 + technicnormallite_get_value_mapping: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 255 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 100 ], + }, + ], + type: 'technicnormallite_get_value_mapping', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + PARAM3: 3, + PARAM4: 4, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM0')); + const inMin = script.getNumberValue('PARAM1'); + const inMax = script.getNumberValue('PARAM2'); + const outMin = script.getNumberValue('PARAM3'); + const outMax = script.getNumberValue('PARAM4'); + const data = (Entry.ProboTechnicNormalLite.SenserSet[key] === 5) // 5: 압력 + ? 255 - Entry.ProboTechnicNormalLite.InputData.Analog[key] + : Entry.ProboTechnicNormalLite.InputData.Analog[key]; + return (data - inMin) * (outMax-outMin) / (inMax - inMin) + outMin; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_value_mapping(%1, %2, %3, %4, %5)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 컬러 센서 %1 이(가) %2 인가? + technicnormallite_is_color_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'technicnormallite_dropdown_sensor_color_key', + }, + ], + type: 'technicnormallite_is_color_value', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key0 = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM0')); + const key1 = Entry.ProboTechnicNormalLite.getColorSensorKey(script.getStringValue('PARAM1')); + const value = Entry.ProboTechnicNormalLite.InputData.Analog[key0]; + const color = Entry.ProboTechnicNormalLite.Color; + return ((color[key1].Min <= value) && (value <= color[key1].Max)); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.is_color_value(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 컬러 센서 %1 의 색상 + technicnormallite_get_color_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + ], + type: 'technicnormallite_get_color_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key0 = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicNormalLite.InputData.Analog[key0]; + const color = Entry.ProboTechnicNormalLite.Color; + + for (let i = 1; i < 7; i++) { + const key1 = Entry.ProboTechnicNormalLite.getColorSensorKey(i.toString()); + if ((color[key1].Min <= value) && (value <= color[key1].Max)) { + switch (i) { + case 1: + return Lang.template.technicnormallite_item_color_red; + case 2: + return Lang.template.technicnormallite_item_color_green; + case 3: + return Lang.template.technicnormallite_item_color_blue; + case 4: + return Lang.template.technicnormallite_item_color_yellow; + case 5: + return Lang.template.technicnormallite_item_color_black; + case 6: + return Lang.template.technicnormallite_item_color_white; + default: + return Lang.template.technicnormallite_item_error; + } + } + } + + return Lang.template.technicnormallite_item_nothing; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_color_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 을 %3 값으로 정하기 %4 + technicnormallite_set_infinite_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + } + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_inNcom_sensor_key', + }, + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'technicnormallite_set_infinite_setting', + }, + paramsKeyMap: { + //PARAM0: 0, // 0을 쓰지 않음 + PARAM1: 1, + PARAM2: 2, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM1')); + let count = 0; + let value = script.getNumberValue('PARAM2'); + + if (value != 0) { + count = Number(value / 255).toFixed(0); + value = value % 255; + } else { + count = 0; + value = 0; + } + + Entry.ProboTechnicNormalLite.Infinite.Buff[key] = Entry.ProboTechnicNormalLite.InputData.Analog[key]; + Entry.ProboTechnicNormalLite.Infinite.Start[key] = Entry.ProboTechnicNormalLite.InputData.Analog[key] - value; + Entry.ProboTechnicNormalLite.Infinite.Count[key] = count; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_infinite_setting(%1, %2, %3)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 지름 %3 의 mm 값 + technicnormallite_get_infinite_mm_diameter: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_inNcom_sensor_key', + }, + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 53.5 ], + }, + ], + type: 'technicnormallite_get_infinite_mm_diameter', + }, + paramsKeyMap: { + //PARAM0: 0, // 0을 쓰지 않음 + PARAM1: 1, + PARAM2: 2, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM1')); + const radius = script.getNumberValue('PARAM2') / 2; + const pi = 3.141592; + const infinite = Entry.ProboTechnicNormalLite.Infinite; + let value = Entry.ProboTechnicNormalLite.InputData.Analog[key]; + + if (value < infinite.Buff[key] - 150) { + infinite.Count[key]++; + } else if (value > infinite.Buff[key] + 150) { + infinite.Count[key]--; + } + infinite.Buff[key] = value; + value = (infinite.Buff[key] - infinite.Start[key]) + (infinite.Count[key] * 255); + + return Number((2 * pi * radius) / 255 * value).toFixed(3); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_infinite_mm_diameter(%1, %2, %3)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 의 %3 + technicnormallite_get_infinite_transform_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_inNcom_sensor_key', + }, + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'technicnormallite_dropdown_sensor_angle_key', + }, + ], + type: 'technicnormallite_get_infinite_transform_input', + }, + paramsKeyMap: { + //PARAM0: 0, // 0을 쓰지 않음 + PARAM1: 1, + PARAM2: 2, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key1 = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM1')); + const key2 = Entry.ProboTechnicNormalLite.getSensorAngleKey(script.getStringValue('PARAM2')); + const anlogValue = Entry.ProboTechnicNormalLite.InputData.Analog[key1]; + const infinite = Entry.ProboTechnicNormalLite.Infinite; + + if (anlogValue < (infinite.Buff[key1] - 150)) { + infinite.Count[key1]++; + } else if (anlogValue > (infinite.Buff[key1] + 150)) { + infinite.Count[key1]--; + } + infinite.Buff[key1] = anlogValue; + const value = (infinite.Buff[key1] - infinite.Start[key1]) + (infinite.Count[key1] * 255); + + switch (key2) { + case 'IS1': + return value; + case 'IS2': + return (value > 0) + ? Math.floor((value % 255) * 1.41732) + : Math.ceil((value % 255) * 1.41732) + case 'IS3': + return Number((360 / 255) * anlogValue).toFixed(0); + case 'IS4': + return (value > 0) + ? Math.floor(value / 255) + : Math.ceil(value / 255); + default: + return Lang.template.technicnormallite_item_nothing; + + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_infinite_transform_input(%1, %2, %3)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 멀티키 센서 %1의 %2 + technicnormallite_is_multi_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'technicnormallite_dropdown_multikey_key', + }, + ], + type: 'technicnormallite_is_multi_sensor', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicNormalLite.getMultiKeyValue(script.getStringValue('PARAM1')); + return (Entry.ProboTechnicNormalLite.InputData.Analog[key] >> value) & 0x01; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.is_multi_sensor(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 분배 스위치 %1의 %2 + technicnormallite_is_multi_switch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'technicnormallite_dropdown_multikey_key', + }, + ], + type: 'technicnormallite_is_multi_switch', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key0 = Entry.ProboTechnicNormalLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicNormalLite.getMultiKeyValue(script.getStringValue('PARAM1')); + const analog = Entry.ProboTechnicNormalLite.InputData.Analog[key0]; + const multySwitch = Entry.ProboTechnicNormalLite.MultiSwitch; + + for (let i = 0; i < 8; i++) { + const key = 'Key' + (i + 1).toString(); + if (multySwitch[key].Min <= analog && analog <= multySwitch[key].Max) { + return (value === i); + } + } + + return false; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.is_multi_switch(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 확장 디지털 입력 %1 의 %2 + technicnormallite_is_extension_digital_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'technicnormallite_dropdown_extension_digital_key', + }, + ], + type: 'technicnormallite_is_extension_digital_input', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAxisKey(script.getStringValue('PARAM0'), 'X'); + const shift = Entry.ProboTechnicNormalLite.getExtentionDigitalValue(script.getStringValue('PARAM1')); + const value = Entry.ProboTechnicNormalLite.InputData.Acceler[key]; + return ((value >> shift) === 1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.is_extension_digital_input(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 확장 아날로그 입력 %1 의 %2 + technicnormallite_get_extension_analog_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_analog_key', + }, + { + type: 'technicnormallite_dropdown_extension_analog_key', + }, + ], + type: 'technicnormallite_get_extension_analog_input', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getAxisKey( + script.getStringValue('PARAM0'), + Entry.ProboTechnicNormalLite.getExtentionAnalogKey(script.getStringValue('PARAM1')) + ); + const value = Entry.ProboTechnicNormalLite.InputData.Acceler[key]; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_extension_analog_input(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // EEPROM %1 주소의 값 호출하기 %2 + technicnormallite_set_eeprom_call: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['0'] + }, + null + ], + type: 'technicnormallite_set_eeprom_call', + }, + paramsKeyMap: { + ADDRESS: 0, + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const address = script.getNumberValue('ADDRESS', script); + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const ms = 50; + const fps = Entry.FPS || 60; + + Entry.ProboTechnicNormalLite.EEPROM.Count = Entry.ProboTechnicNormalLite.InputData.EEPROM.EC; + Entry.ProboTechnicNormalLite.RemoteData['EEPR4'] = 0x40; + Entry.ProboTechnicNormalLite.RemoteData['EEPR3'] = address; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicNormalLite.EEPROM.Buff = + (Entry.ProboTechnicNormalLite.InputData.EEPROM.EEPR2 << 8) + + Entry.ProboTechnicNormalLite.InputData.EEPROM.EEPR1; + Entry.ProboTechnicNormalLite.RemoteData['EEPR4'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['EEPR3'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_eeprom_call(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // EEPROM 주소의 값 + technicnormallite_get_eeprom_address_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [], + events: {}, + def: { + type: 'technicnormallite_get_eeprom_address_value', + }, + class: 'technicnormallite_input', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const count = Entry.ProboTechnicNormalLite.EEPROM.Count; + + return (Entry.ProboTechnicNormalLite.InputData.EEPROM.EC != count) + ? Entry.ProboTechnicNormalLite.EEPROM.Buff + : 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.get_eeprom_address_value', + blockType: 'param', + textParams: [ null ], + }, + ], + }, + }, + + ///======================================================================================== + /// output block + ///======================================================================================== + // DC 모터 %1 을(를) %2 속도로 회전 %3 + technicnormallite_set_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_dc_1_all_key', + }, + { + type: 'technicnormallite_dropdown_velocity_key', + }, + null, + ], + type: 'technicnormallite_set_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getDckey(script.getStringValue('PARAM0')); + const value = script.getNumberValue('PARAM1'); + + switch (key) { + case 'DC5': + Entry.ProboTechnicNormalLite.RemoteData['DC1'] = value; + Entry.ProboTechnicNormalLite.RemoteData['DC2'] = value; + break; + case 'DC6': + Entry.ProboTechnicNormalLite.RemoteData['DC3'] = value; + Entry.ProboTechnicNormalLite.RemoteData['DC4'] = value; + break; + case 'DC7': + Entry.ProboTechnicNormalLite.RemoteData['DC1'] = value; + Entry.ProboTechnicNormalLite.RemoteData['DC2'] = value; + Entry.ProboTechnicNormalLite.RemoteData['DC3'] = value; + Entry.ProboTechnicNormalLite.RemoteData['DC4'] = value; + break; + default: + Entry.ProboTechnicNormalLite.RemoteData[key] = value; + break; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_dc_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 서보 모터 %1 의 위치를 %2 로 이동 %3 + technicnormallite_set_servo_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_port_1_4_key', + }, + { + type: 'technicnormallite_dropdown_servo_position_key', + }, + null, + ], + type: 'technicnormallite_set_servo_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getServoKey(script.getStringValue('PARAM0')); + const value = script.getNumberValue('PARAM1'); + Entry.ProboTechnicNormalLite.RemoteData[key] = Math.min(Math.max(value, 0), 100); + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_servo_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // S 모터 %1 을(를) %2 속도로 회전 %3 + technicnormallite_set_s_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_port_1_4_key', + }, + { + type: 'technicnormallite_dropdown_velocity_key', + }, + null, + ], + type: 'technicnormallite_set_s_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getServoKey(script.getStringValue('PARAM0')); + const speed = script.getNumberValue('PARAM1'); + const value = Math.min(Math.max(speed, -20), 20) + 148; + + switch (key) { + case 'Servo5': + Entry.ProboTechnicNormalLite.RemoteData['Servo1'] = value; + Entry.ProboTechnicNormalLite.RemoteData['Servo2'] = value; + break; + case 'Servo6': + Entry.ProboTechnicNormalLite.RemoteData['Servo3'] = value; + Entry.ProboTechnicNormalLite.RemoteData['Servo4'] = value; + break; + default: + Entry.ProboTechnicNormalLite.RemoteData[key] = value; + break; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_s_dc_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 출력핀 %1 을(를) %2 %3 + technicnormallite_set_port_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_port_1_4_key', + }, + { + type: 'technicnormallite_dropdown_on_off_key', + }, + null + ], + type: 'technicnormallite_set_port_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getPortKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicNormalLite.getPortToggleValue(script.getStringValue('PARAM1')); + + Entry.ProboTechnicNormalLite.RemoteData[key] = value; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_port_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2 음표로 연주하기 %3 + technicnormallite_play_melody_note_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_pitch_key', + }, + { + type: 'technicnormallite_dropdown_note_key', + }, + null + ], + type: 'technicnormallite_play_melody_note_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboTechnicNormalLite.getPitchValue(script.getNumberValue('PARAM0')); + const note = Entry.ProboTechnicNormalLite.getNoteKey(script.getStringValue('PARAM1')); + const ms = Entry.ProboTechnicNormalLite.Note[note]; + const fps = Entry.FPS || 60; + + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = pitch; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.play_melody_note_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2 초 동안 연주하기 %3 + technicnormallite_play_melody_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_pitch_key', + }, + { + type: 'technicnormallite_dropdown_time_1_key', + }, + null + ], + type: 'technicnormallite_play_melody_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboTechnicNormalLite.getPitchValue(script.getNumberValue('PARAM0')); + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = pitch; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.play_melody_sec_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) 연주하기 %2 + technicnormallite_play_melody_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_pitch_key', + }, + null + ], + type: 'technicnormallite_play_melody_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const pitch = Entry.ProboTechnicNormalLite.getPitchValue(script.getNumberValue('PARAM0')); + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = pitch; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.play_melody_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 값을(를) %2 초 동안 연주하기 %3 + technicnormallite_play_value_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + { + type: 'technicnormallite_dropdown_time_1_key', + }, + null + ], + type: 'technicnormallite_play_value_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const melody = script.getNumberValue('PARAM0'); + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = melody & 0xff; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.play_melody_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 1 값을(를) 연주하기 %2 + technicnormallite_play_value_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + null + ], + type: 'technicnormallite_play_value_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const melody = script.getNumberValue('PARAM0'); + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = melody & 0xff; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.play_melody_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2초 간격으로 재생하기 %3 + technicnormallite_play_melody_track_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_melody_key', + }, + { + type: 'technicnormallite_dropdown_time_2_key', + }, + null + ], + type: 'technicnormallite_play_melody_track_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + function getTrackStep(track,script){ + if(!script.isStart){ + script.isStart = true; + script.trackStep = 0; + } + else { + script.trackStep++; + } + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + const melody = Entry.ProboTechnicNormalLite.Track[track][script.trackStep]; + + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = melody & 0xff; + script.timeFlag = 1; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + } + const TR = Entry.ProboTechnicNormalLite.getMelodyValue( + script.getStringValue('PARAM0') + ); + if (!script.isStart) { + switch(TR) { + case 0 : + script.maxStep = 6; + break; + case 1 : + script.maxStep = 7; + break; + case 2 : + script.maxStep = 3; + break; + case 3 : + script.maxStep = 3; + break; + } + getTrackStep(TR,script); + return script; + } else if (script.timeFlag == 1) { + return script; + } else if (script.trackStep < script.maxStep){ + getTrackStep(TR,script); + return script; + } else { + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = 0; + + delete script.trackStep; + delete script.maxStep; + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.play_melody_track_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 멜로디 중지 %1 + technicnormallite_play_melody_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ null ], + type: 'technicnormallite_play_melody_off', + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + Entry.ProboTechnicNormalLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['MEL1'] = 0; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.play_melody_track_output', + textParams: [ null ], + }, + ], + }, + }, + // RGB LED %1 을(를) %2 으로 켜기 %3 + technicnormallite_set_rgbled_on_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_port_1_4_key', + }, + { + type: 'technicnormallite_dropdown_rgb_color_key', + }, + null + ], + type: 'technicnormallite_set_rgbled_on_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicNormalLite.getRgbToggleValue(script.getStringValue('PARAM1')); + Entry.ProboTechnicNormalLite.RemoteData[key] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_rgbled_on_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 을(를) 끄기 %2 + technicnormallite_set_rgbled_off_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_port_1_4_key', + }, + null + ], + type: 'technicnormallite_set_rgbled_off_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicNormalLite.getRgbToggleValue('0'); + Entry.ProboTechnicNormalLite.RemoteData[key] = value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_rgbled_off_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 %2 으로 %3 초 간격 %4 + technicnormallite_set_rgbled_flashing_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_port_1_4_key', + }, + { + type: 'technicnormallite_dropdown_rgb_color_key', + }, + { + type: 'technicnormallite_dropdown_time_3', + }, + null + ], + type: 'technicnormallite_set_rgbled_flashing_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicNormalLite.getRgbTwinkleValue( + script.getStringValue('PARAM1'), + script.getNumberValue('PARAM2') + ); + Entry.ProboTechnicNormalLite.RemoteData[key] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_rgbled_flashing_output(%1, %2, %3)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 을(를) %2 으로 디밍 %3 + technicnormallite_set_rgbled_dimming_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicnormallite_dropdown_port_1_4_key', + }, + { + type: 'technicnormallite_dropdown_rgb_color_key', + }, + null + ], + type: 'technicnormallite_set_rgbled_dimming_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicNormalLite.getServoKey(script.getStringValue('PARAM0')); + const color = Entry.ProboTechnicNormalLite.getRgbDimmingValue(script.getStringValue('PARAM1')); + Entry.ProboTechnicNormalLite.RemoteData[key] = color; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_rgbled_dimming_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // FND를 %1 (으)로 설정 %2 + technicnormallite_set_fnd_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'technicnormallite_set_fnd_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const value = script.getNumberValue('PARAM0'); + Entry.ProboTechnicNormalLite.RemoteData['FND'] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_fnd_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // FND 끄기 %1 + technicnormallite_set_fnd_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null + ], + type: 'technicnormallite_set_fnd_off', + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + Entry.ProboTechnicNormalLite.RemoteData['FND'] = 100; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_fnd_off', + textParams: [ null ], + }, + ], + }, + }, + // EEPROM %1 주소에 %2 값 설정하기 %3 + technicnormallite_set_eeprom_write: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ] + }, + { + type: 'number', + params: [ 0 ] + }, + null, + ], + type: 'technicnormallite_set_eeprom_write', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicnormallite_output', + isNotFor: ['ProboTechnicNormalLite'], + func: function(sprite, script) { + const address = script.getNumberValue('PARAM0'); + const value = script.getNumberValue('PARAM1'); + + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const ms = 50; + const fps = Entry.FPS || 60; + + Entry.ProboTechnicNormalLite.RemoteData['EEPR4'] = 0x80; + Entry.ProboTechnicNormalLite.RemoteData['EEPR3'] = address; + Entry.ProboTechnicNormalLite.RemoteData['EEPR2'] = (value >> 8) & 0xff; + Entry.ProboTechnicNormalLite.RemoteData['EEPR1'] = value & 0xff; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicNormalLite.RemoteData['EEPR4'] = 0x40; + Entry.ProboTechnicNormalLite.RemoteData['EEPR3'] = address; + Entry.ProboTechnicNormalLite.RemoteData['EEPR2'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['EEPR1'] = 0; + + setTimeout(function() { + Entry.ProboTechnicNormalLite.RemoteData['EEPR4'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['EEPR3'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['EEPR2'] = 0; + Entry.ProboTechnicNormalLite.RemoteData['EEPR1'] = 0; + }, 100); + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicNormalLite.set_eeprom_write(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + }; // getBlock() return; + } + })(); +})(); + +module.exports = Entry.ProboTechnicNormalLite; \ No newline at end of file diff --git a/src/playground/blocks/hardwareLite/metadata_alux_teachnic_normal_lite.json b/src/playground/blocks/hardwareLite/metadata_alux_teachnic_normal_lite.json new file mode 100644 index 0000000000..a88fc00c0e --- /dev/null +++ b/src/playground/blocks/hardwareLite/metadata_alux_teachnic_normal_lite.json @@ -0,0 +1,9 @@ +{ + "name": "ProboTechnicNormalLite", + "version": "1.0.0", + "type": "hardware", + "title": "프로보 테크닉(일반)", + "description": "에이럭스", + "imageName": "alux_technic_normal_lite.png", + "moduleId": "630301" +} From fc1fee438a7b6c588c8674cc579eccb240d046c9 Mon Sep 17 00:00:00 2001 From: hakueon Date: Mon, 14 Apr 2025 16:39:26 +0900 Subject: [PATCH 07/12] =?UTF-8?q?ProboTechnicPowrLite=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/hw_lite/alux_technic_power_lite.png | Bin 0 -> 56754 bytes .../block_alux_teachnic_power_lite.js | 5543 +++++++++++++++++ .../metadata_alux_teachnic_power_lite.json | 9 + 3 files changed, 5552 insertions(+) create mode 100644 images/hw_lite/alux_technic_power_lite.png create mode 100644 src/playground/blocks/hardwareLite/block_alux_teachnic_power_lite.js create mode 100644 src/playground/blocks/hardwareLite/metadata_alux_teachnic_power_lite.json diff --git a/images/hw_lite/alux_technic_power_lite.png b/images/hw_lite/alux_technic_power_lite.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5f11f2b554abdb0656f1918d45b7e7d0e2e604 GIT binary patch literal 56754 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 literal 0 HcmV?d00001 diff --git a/src/playground/blocks/hardwareLite/block_alux_teachnic_power_lite.js b/src/playground/blocks/hardwareLite/block_alux_teachnic_power_lite.js new file mode 100644 index 0000000000..39c572f00d --- /dev/null +++ b/src/playground/blocks/hardwareLite/block_alux_teachnic_power_lite.js @@ -0,0 +1,5543 @@ +'use strict'; + +const _throttle = require('lodash/throttle'); + +(function() { + const TECHNIC_POWER_INDEX = 0x22; //34 + const RELEASE_VERSION = 4; + const SERIAL_INTERVAL = 32; + const EVENT_INTERVAL = 16; + const SEND_PACKET_LENGTH = 22; + const RECEIVED_PACKET_LENGTH = 17; + Entry.ProboTechnicPowerLite = new (class ProboTechnicPowerLite { + constructor() { + this.id = '630201'; + this.name = 'ProboTechnicPowerLite'; + this.url = 'https://imssam.me'; + this.imageName = 'alux_technic_power_lite.png'; + this.title = { + ko: '프로보 테크닉(파워)', + en: 'Probo Technic(Power)', + }; + this.portData = { + baudRate: 115200, + duration: this.SERIAL_INTERVAL, + dataBits: 8, + parity: 'none', + stopBits: 1, + bufferSize: 128, + connectionType: 'bytestream', + constantServing: 'ReadOnly', + }; + + this.Color = { + Red: { + Min: 13, + Max: 37 + }, + Green: { + Min: 38, + Max: 62 + }, + Blue: { + Min: 63, + Max: 87 + }, + Yellow: { + Min: 88, + Max: 112 + }, + Black: { + Min: 113, + Max: 137 + }, + White: { + Min: 138, + Max: 162 + }, + }; + this.MultiSwitch = { + Key1: { + Min: 1, + Max: 19 + }, + Key2: { + Min: 26, + Max: 44 + }, + Key3: { + Min: 53, + Max: 77 + }, + Key4: { + Min: 83, + Max: 101 + }, + Key5: { + Min: 107, + Max: 125 + }, + Key6: { + Min: 139, + Max: 157 + }, + Key7: { + Min: 160, + Max: 178 + }, + Key8: { + Min: 191, + Max: 209 + } + }; + this.Note = { + n32: 48, // = 1*3*4*4, + n16: 96, // = 2*3*4*4, + n16d: 144, // = 3*3*4*4, + n16t: 64, // = 2*2*4*4, + n8: 192, // = 4*3*4*4, + n8d: 288, // = 6*3*4*4, + n8t: 128, // = 4*2*4*4, + n4: 384, // = 8*3*4*4, + n4d: 576, // = 12*3*4*4, + n4t: 256, // = 8*2*4*4, + n2: 768, // = 16*3*4*4, + n2d: 1152, // = 24*3*4*4, + n2t: 512, // = 16*2*4*4, + n1: 1536, // = 32*3*4*4 + }; + this.Rgb = { + Off: 0, + On: { + Red : 1, + Yellow: 12, + Green : 23, + Cyan : 34, + Blue: 45, + Magenta: 56, + White: 67 + }, + Dimming: { + Red: 90, + Yellow: 91, + Green: 92, + Cyan: 93, + Blue: 94, + Magenta: 95, + White: 96 + } + }; + this.Melody = [0, 35391, 33405, 31530, 29760, 28090, 26513, 25025, 23621, 22295, 21044, 19863, 18748]; + this.Track = [ + [0x451F, 0x3D95, 0x36DD, 0x33C8, 0x2E22, 0x291A, 0x249E], // Start : size 7, + [0x228F, 0x249E, 0x291A, 0x2E22, 0x33C8, 0x36DD, 0x3D95, 0x451F], // End : size 8, + [0x228F, 0x1B6E, 0x1711, 0x1147 ], // LevelUp : size 4, + [0x1147, 0x1711, 0x1B6E, 0x228F ], // LevelDwon : size 4, + ]; + + const eventSetting = { + leading: true, + trailing: false + } + this.remoteEvent = _throttle( + () => { + Entry.engine.fireEvent('technicpowerlite_event_remote_input'); + }, + EVENT_INTERVAL, + eventSetting + ); + this.digitalEvent = _throttle( + () => { + Entry.engine.fireEvent('technicpowerlite_event_digital_input'); + } + , + EVENT_INTERVAL, + eventSetting + ); + + this.qRear = 0; + this.qFront = 0; + this.qSize = 128; + this.qBuffer = new Uint8Array(this.qSize + 2).fill(-1); + this.inputPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); + this.pLength = 0; // packet length + this.process = false; // packet process + + this.version = 0; + this.sendFlag = true; + + this.blockMenuBlocks = [ + //dropdown + 'technicpowerlite_dropdown_remote_key', + 'technicpowerlite_dropdown_digital_key', + 'technicpowerlite_dropdown_analog_key', + 'technicpowerlite_dropdown_setting_sensor_key', + 'technicpowerlite_dropdown_inNcom_sensor_key', + 'technicpowerlite_dropdown_sensor_color_key', + 'technicpowerlite_dropdown_rgb_color_key', + 'technicpowerlite_dropdown_sensor_angle_key', + 'technicpowerlite_dropdown_multikey_key', + 'technicpowerlite_dropdown_extension_digital_key', + 'technicpowerlite_dropdown_extension_analog_key', + 'technicpowerlite_dropdown_dc_1_all_key', + 'technicpowerlite_dropdown_port_1_4_key', + 'technicpowerlite_dropdown_on_off_key', + 'technicpowerlite_dropdown_velocity_key', + 'technicpowerlite_dropdown_servo_position_key', + 'technicpowerlite_dropdown_note_key', + 'technicpowerlite_dropdown_time_1_key', + 'technicpowerlite_dropdown_time_2_key', + 'technicpowerlite_dropdown_time_3', + 'technicpowerlite_dropdown_pitch_key', + 'technicpowerlite_dropdown_melody_key', + + //event + 'technicpowerlite_when_press_remote_key', + 'technicpowerlite_when_input_digital_value', + + //setting + 'technicpowerlite_set_senser_setting', + + //input + 'technicpowerlite_is_remote_key', + 'technicpowerlite_is_digital_value', + 'technicpowerlite_is_extension_digital_input', + 'technicpowerlite_get_analog_value', + 'technicpowerlite_get_extension_analog_input', + // 'technicpowerlite_get_tri_axis_acceler_x', // 테크닉 에서 사용하지 않음 + // 'technicpowerlite_get_tri_axis_acceler_y', // 테크닉 에서 사용하지 않음 + // 'technicpowerlite_get_tri_axis_acceler_z', // 테크닉 에서 사용하지 않음 + 'technicpowerlite_get_value_mapping', + 'technicpowerlite_is_color_value', + 'technicpowerlite_get_color_value', + 'technicpowerlite_set_infinite_setting', + 'technicpowerlite_get_infinite_mm_diameter', + 'technicpowerlite_get_infinite_transform_input', + // 'technicpowerlite_is_multi_sensor', // 테크닉 에서 사용하지 않음 + // 'technicpowerlite_is_multi_switch', // 테크닉 에서 사용하지 않음 + 'technicpowerlite_set_eeprom_call', + 'technicpowerlite_get_eeprom_address_value', + + //output + 'technicpowerlite_set_dc_output', + 'technicpowerlite_set_servo_output', + // 'technicpowerlite_set_s_dc_output', // 테크닉 에서 사용하지 않음 + 'technicpowerlite_set_port_output', + 'technicpowerlite_play_melody_note_output', + 'technicpowerlite_play_melody_sec_output', + 'technicpowerlite_play_melody_output', + 'technicpowerlite_play_value_sec_output', + 'technicpowerlite_play_value_output', + 'technicpowerlite_play_melody_track_output', + 'technicpowerlite_play_melody_off', + 'technicpowerlite_set_rgbled_on_output', + 'technicpowerlite_set_rgbled_off_output', + 'technicpowerlite_set_rgbled_flashing_output', + 'technicpowerlite_set_rgbled_dimming_output', + // 'technicpowerlite_set_fnd_output', // 테크닉 에서 사용하지 않음 + // 'technicpowerlite_set_fnd_off', // 테크닉 에서 사용하지 않음 + + //EEPROM + 'technicpowerlite_set_eeprom_write', + ]; + } + + setLanguage() { + return { + ko: { + template: { + technicpowerlite_item_switch: '스위치', + technicpowerlite_item_infrared: '적외선', + technicpowerlite_item_magnetic: '자석', + technicpowerlite_item_rotation: '회전', + technicpowerlite_item_color: '컬러', + technicpowerlite_item_acceleration: '가속도', + technicpowerlite_item_ultrasonic: '초음파', + technicpowerlite_item_heart_rate: '심박', + technicpowerlite_item_illuminance: '조도', + technicpowerlite_item_temperature: '온도', + technicpowerlite_item_sound: '소리', + technicpowerlite_item_tilt: '기울기', + technicpowerlite_item_pressure: '압력', + technicpowerlite_item_multi_touch: '멀티키', + technicpowerlite_item_compass: '나침반', + technicpowerlite_item_tri_acceleration: '3가속', + technicpowerlite_item_multi_switch: '분배기', + technicpowerlite_item_infinite_rotation: '무한회전', + technicpowerlite_item_extension_input: '확장입력', + technicpowerlite_item_color_red: '빨간색', + technicpowerlite_item_color_green: '초록색', + technicpowerlite_item_color_blue: '파란색', + technicpowerlite_item_color_cyan: '청녹색', + technicpowerlite_item_color_magenta: '자홍색', + technicpowerlite_item_color_yellow: '노란색', + technicpowerlite_item_color_black: '검정색', + technicpowerlite_item_color_white: '하얀색', + technicpowerlite_item_value: '값', + technicpowerlite_item_angle: '각도', + technicpowerlite_item_absolute_angle: '절대각도', + technicpowerlite_item_number_of_rotations: '회전 수', + technicpowerlite_item_key_1: '키1', + technicpowerlite_item_key_2: '키2', + technicpowerlite_item_key_3: '키3', + technicpowerlite_item_key_4: '키4', + technicpowerlite_item_key_5: '키5', + technicpowerlite_item_key_6: '키6', + technicpowerlite_item_key_7: '키7', + technicpowerlite_item_key_8: '키8', + technicpowerlite_item_all: '모두', + technicpowerlite_item_on: '켜기', + technicpowerlite_item_off: '끄기', + technicpowerlite_item_note_whole: '온', + technicpowerlite_item_note_half: '2분', + technicpowerlite_item_note_quarter: '4분', + technicpowerlite_item_note_eighth: '8분', + technicpowerlite_item_note_sixteenth: '16분', + technicpowerlite_item_note_thirty_second: '32분', + technicpowerlite_item_pitch_do: '도', + technicpowerlite_item_pitch_do_sharp: '도#', + technicpowerlite_item_pitch_re: '레', + technicpowerlite_item_pitch_re_sharp: '레#', + technicpowerlite_item_pitch_mi: '미', + technicpowerlite_item_pitch_fa: '파', + technicpowerlite_item_pitch_fa_sharp: '파#', + technicpowerlite_item_pitch_sol: '솔', + technicpowerlite_item_pitch_sol_sharp: '솔#', + technicpowerlite_item_pitch_ra: '라', + technicpowerlite_item_pitch_ra_sharp: '라#', + technicpowerlite_item_pitch_si: '시', + technicpowerlite_item_melody_start: '시작음', + technicpowerlite_item_melody_end: '종료음', + technicpowerlite_item_melody_level_up: '레벨 업', + technicpowerlite_item_melody_level_down: '레벨 다운', + + technicpowerlite_item_error: '오류', + technicpowerlite_item_nothing: '없음', + + technicpowerlite_when_press_remote_key: '%1 리모컨 %2 키를 눌렀을 때', + technicpowerlite_when_input_digital_value: '%1 디지털 입력 %2 이(가) 들어왔을 때', + + technicpowerlite_set_senser_setting: '입력포트 %1 을(를) %2 센서로 설정 %3', + + technicpowerlite_is_remote_key: '리모컨 입력 %1', + technicpowerlite_is_digital_value: '디지털 입력 %1', + technicpowerlite_is_extension_digital_input: '확장 디지털 입력 %1 의 %2', + technicpowerlite_get_analog_value: '아날로그 입력 %1', + technicpowerlite_get_extension_analog_input: '확장 아날로그 입력 %1 의 %2', + technicpowerlite_get_tri_axis_acceler_x: '3가속도 %1의 X축', + technicpowerlite_get_tri_axis_acceler_y: '3가속도 %1의 Y축', + technicpowerlite_get_tri_axis_acceler_z: '3가속도 %1의 Z축', + technicpowerlite_get_value_mapping: '%1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환', + technicpowerlite_is_color_value: '컬러 센서 %1 이(가) %2 인가?', + technicpowerlite_get_color_value: '컬러 센서 %1 의 색상', + technicpowerlite_set_infinite_setting: '%1 센서 %2 을 %3 값으로 정하기 %4', + technicpowerlite_get_infinite_mm_diameter: '%1 센서 %2 지름 %3 의 mm 값', + technicpowerlite_get_infinite_transform_input: '%1 센서 %2 의 %3', + technicpowerlite_is_multi_sensor: '멀티키 센서 %1의 %2', + technicpowerlite_is_multi_switch: '분배 스위치 %1의 %2', + technicpowerlite_set_eeprom_call: 'EEPROM %1 주소의 값 호출하기 %2', + technicpowerlite_get_eeprom_address_value: 'EEPROM 주소의 값', + + technicpowerlite_set_port_output: '출력핀 %1 을(를) %2 %3', + technicpowerlite_set_servo_output: '서보 모터 %1 의 위치를 %2 로 이동 %3', + technicpowerlite_set_s_dc_output: 'S 모터 %1 을(를) %2 속도로 회전 %3', + technicpowerlite_set_dc_output: 'DC 모터 %1 을(를) %2 속도로 회전 %3', + technicpowerlite_play_melody_note_output: '%1 을(를) %2 음표로 연주하기 %3', + technicpowerlite_play_melody_sec_output: '%1 을(를) %2 초 동안 연주하기 %3', + technicpowerlite_play_melody_output: '%1 을(를) 연주하기 %2', + technicpowerlite_play_value_sec_output: '%1 값을(를) %2 초 동안 연주하기 %3', + technicpowerlite_play_value_output: '%1 값을(를) 연주하기 %2', + technicpowerlite_play_melody_track_output: '%1 을(를) %2초 간격으로 재생하기 %3', + technicpowerlite_play_melody_off: '멜로디 중지 %1', + technicpowerlite_set_rgbled_on_output: 'RGB LED %1 을(를) %2 으로 켜기 %3', + technicpowerlite_set_rgbled_off_output: 'RGB LED %1 을(를) 끄기 %2', + technicpowerlite_set_rgbled_dimming_output: 'RGB LED %1 을(를) %2 으로 디밍 %3', + technicpowerlite_set_rgbled_flashing_output: 'RGB LED %1 %2 으로 %3 초 간격 %4', + technicpowerlite_set_fnd_output: 'FND를 %1 (으)로 설정 %2', + technicpowerlite_set_fnd_off: 'FND 끄기 %1', + technicpowerlite_set_eeprom_write: 'EEPROM %1 주소에 %2 값 설정하기 %3', + }, + Device: { + probo_technic_power_lite: '프로보 테크닉(파워)', + }, + Menus: { + probo_technic_power_lite: '프로보 테크닉(파워)', + }, + }, + en: { + + template: { + technicpowerlite_item_switch: 'Switch', + technicpowerlite_item_infrared: 'Infrared', + technicpowerlite_item_magnetic: 'Magnetic', + technicpowerlite_item_rotation: 'Rotation', + technicpowerlite_item_color: 'Color', + technicpowerlite_item_acceleration: 'Acceleration', + technicpowerlite_item_ultrasonic: 'Ultrasonic', + technicpowerlite_item_heart_rate: 'Heart Rate', + technicpowerlite_item_illuminance: 'Illuminance', + technicpowerlite_item_temperature: 'Temperature', + technicpowerlite_item_sound: 'Sound', + technicpowerlite_item_tilt: 'Tilt', + technicpowerlite_item_pressure: 'Pressure', + technicpowerlite_item_multi_touch: 'Multi Touch', + technicpowerlite_item_compass: 'Compass', + technicpowerlite_item_tri_acceleration: '3Acceleration', + technicpowerlite_item_multi_switch: 'Multi Switch', + technicpowerlite_item_infinite_rotation: 'Infinite Rotation', + technicpowerlite_item_extension_input: 'Extension Input', + technicpowerlite_item_color_red: 'Red', + technicpowerlite_item_color_green: 'Green', + technicpowerlite_item_color_blue: 'Blue', + technicpowerlite_item_color_cyan: 'Cyan', + technicpowerlite_item_color_magenta: 'Magenta', + technicpowerlite_item_color_yellow: 'Yellow', + technicpowerlite_item_color_black: 'Black', + technicpowerlite_item_color_white: 'White', + technicpowerlite_item_value: 'Value', + technicpowerlite_item_angle: 'Angle', + technicpowerlite_item_absolute_angle: 'Absolute Angle', + technicpowerlite_item_number_of_rotations: 'Number of Rotations', + technicpowerlite_item_key_1: 'Key1', + technicpowerlite_item_key_2: 'Key2', + technicpowerlite_item_key_3: 'Key3', + technicpowerlite_item_key_4: 'Key4', + technicpowerlite_item_key_5: 'Key5', + technicpowerlite_item_key_6: 'Key6', + technicpowerlite_item_key_7: 'Key7', + technicpowerlite_item_key_8: 'Key8', + technicpowerlite_item_all: 'All', + technicpowerlite_item_on: 'On', + technicpowerlite_item_off: 'Off', + technicpowerlite_item_note_whole: 'Whole', + technicpowerlite_item_note_half: 'Half', + technicpowerlite_item_note_quarter: 'Quarter', + technicpowerlite_item_note_eighth: 'Eighth', + technicpowerlite_item_note_sixteenth: 'Sixteenth', + technicpowerlite_item_note_thirty_second: 'Thirty-Second', + technicpowerlite_item_pitch_do: 'do', + technicpowerlite_item_pitch_do_sharp: 'xdo', + technicpowerlite_item_pitch_re: 're', + technicpowerlite_item_pitch_re_sharp: 'xre', + technicpowerlite_item_pitch_mi: 'mi', + technicpowerlite_item_pitch_fa: 'fa', + technicpowerlite_item_pitch_fa_sharp: 'xfa', + technicpowerlite_item_pitch_sol: 'sol', + technicpowerlite_item_pitch_sol_sharp: 'xsol', + technicpowerlite_item_pitch_ra: 'ra', + technicpowerlite_item_pitch_ra_sharp: 'xra', + technicpowerlite_item_pitch_si: 'si', + technicpowerlite_item_melody_start: 'Start', + technicpowerlite_item_melody_end: 'End', + technicpowerlite_item_melody_level_up: 'Level up', + technicpowerlite_item_melody_level_down: 'Level down', + + technicpowerlite_item_error: 'error', + technicpowerlite_item_nothing: 'nothing', + + technicpowerlite_when_press_remote_key: '%1 When %2 remote control key pressed', + technicpowerlite_when_input_digital_value: '%1 When %2 digital pin input', + + technicpowerlite_set_senser_setting: 'Set input port %1 to %2 sensor %3', + + technicpowerlite_is_remote_key: 'Remote control %1', + technicpowerlite_is_digital_value: 'Read digital pin %1', + technicpowerlite_is_extension_digital_input: 'Extension digital input %1 to %2', + technicpowerlite_get_analog_value: 'Read analog pin %1', + technicpowerlite_get_extension_analog_input: 'Extension analog input %1 to %2', + technicpowerlite_get_tri_axis_acceler_x: '3acceleration %1 and X', + technicpowerlite_get_tri_axis_acceler_y: '3acceleration %1 and Y', + technicpowerlite_get_tri_axis_acceler_z: '3acceleration %1 and Z', + technicpowerlite_get_value_mapping: '%1 to value %2 ~ %3 change %4 ~ %5', + technicpowerlite_is_color_value: 'Is color sensor %1 %2 ?', + technicpowerlite_get_color_value: 'Color of color sensor %1', + technicpowerlite_set_infinite_setting: 'Set %1 sensor %2 to %3 value %4', + technicpowerlite_get_infinite_mm_diameter: 'The move distance(in mm) when the %1 sensor %2 is %3 mm in diameter', + technicpowerlite_get_infinite_transform_input: '%1 rotation sensor %2 to %3', + technicpowerlite_is_multi_sensor: 'Multi sensor %1 key %2', + technicpowerlite_is_multi_switch: 'A key number of the multi-switch sensor %1 = %2', + technicpowerlite_set_eeprom_call:'Calling the value of EEPROM %1 address', + technicpowerlite_get_eeprom_address_value: 'Value of EEPROM address', + + technicpowerlite_set_dc_output: 'DC motor %1 velocity %2 %3', + technicpowerlite_set_servo_output: 'Servo motor %1 position %2 %3', + technicpowerlite_set_s_dc_output: 'Servo motor %1 speed %2 %3', + technicpowerlite_set_port_output: 'Set digital pin %1 as %2 %3', + technicpowerlite_play_melody_note_output: 'Play key %1 for %2 note %3', + technicpowerlite_play_melody_sec_output: 'Play key %1 for %2 secs %3', + technicpowerlite_play_melody_output: 'Play key %1 %2', + technicpowerlite_play_value_sec_output: 'Play value %1 for %2 secs %3', + technicpowerlite_play_value_output: 'Play value %1 %2', + technicpowerlite_play_melody_track_output: 'Play sound %1 for %2 secs %3', + technicpowerlite_play_melody_off: 'Stop tone %1', + technicpowerlite_set_rgbled_on_output: 'Turn on RGB LED %1 to %2 %3', + technicpowerlite_set_rgbled_off_output: 'Turn off RGB LED %1 %2', + technicpowerlite_set_rgbled_dimming_output: 'Dimming RGB LED %1 to %2 %3', + technicpowerlite_set_rgbled_flashing_output: 'RGB LED %1 Blinking %2 at %3 second intervals %4', + technicpowerlite_set_fnd_output: 'Set FND to %1 %2', + technicpowerlite_set_fnd_off: 'Turn off FND %1', + technicpowerlite_set_eeprom_write: 'Set EEPROM %1 address to %2 %3', + }, + Device: { + probo_technic_power_lite: 'Probo Technic(Power)', + }, + Menus: { + probo_technic_power_lite: 'Probo Technic(Power)', + }, + }, + }; + } + + // 시작하기 및 정지하기 시 기기상태를 초기화한다. + setZero() { + this.Infinite = { + Buff: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Count: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Start: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + } + }; + this.SenserSet = { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }; + this.InputData = { + Analog: { + AA1: 0, + AA2: 0, + AA3: 0, + AA4: 0 + }, + Digital: { + A1: 0, + A2: 0, + A3: 0, + A4: 0, + FEA1: 0, + FEA2: 0, + FEA3: 0, + FEA4: 0, + REA1: 0, + REA2: 0, + REA3: 0, + REA4: 0, + BEA1: 0, + BEA2: 0, + BEA3: 0, + BEA4: 0 + }, + Remote: { + R_1: 0, + R_2: 0, + R_3: 0, + R_4: 0, + R_5: 0, + R_6: 0, + R_7: 0, + R_8: 0, + R_L1: 0, + R_L2: 0, + R_R1: 0, + R_R2: 0 + }, + EEPROM: { + EC: 0, + EEPR2: 0, + EEPR1: 0 + }, + Infinite:{ + ROTATION_1: 0, + ROTATION_2: 0, + ROTATION_3: 0, + ROTATION_4: 0 + }, + Acceler:{ + AXIS_X1: 0, + AXIS_X2: 0, + AXIS_X3: 0, + AXIS_X4: 0, + AXIS_Y1: 0, + AXIS_Y2: 0, + AXIS_Y3: 0, + AXIS_Y4: 0, + AXIS_Z1: 0, + AXIS_Z2: 0, + AXIS_Z3: 0, + AXIS_Z4: 0 + } + }; + this.RemoteData = { + B1: 0, + B2: 0, + B3: 0, + B4: 0, + Servo1: 0, + Servo2: 0, + Servo3: 0, + Servo4: 0, + DC1: 0, + DC2: 0, + DC3: 0, + DC4: 0, + MEL2: 0, + MEL1: 0, + FND: 100, + EEPR4: 0, + EEPR3: 0, + EEPR2: 0, + EEPR1: 0, + ASET2: 0, + ASET1: 0 + }; + this.EdgeFlag = { + FEA1: 0, + FEA2: 0, + FEA3: 0, + FEA4: 0, + REA1: 0, + REA2: 0, + REA3: 0, + REA4: 0, + BEA1: 0, + BEA2: 0, + BEA3: 0, + BEA4: 0 + }; + this.EEPROM = { + Buff: 0, + Count: 0 + }; + + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + }; + } + + // 하드웨어 연결 후 초기화한다. + async initialHandshake() { + const ko = `테크닉의 'Start' 버튼을 누른 후 확인을 클릭하세요.\n`; + const en = `(Please, After pushing the 'Start' button in Technic, click 'OK'.)`; + alert(`${ko}${en}`); + + const modePacket = new Uint8Array(2).fill(0); + modePacket[0] = 0x63; + modePacket[1] = 0x36; + + while(true) { + const response = await Entry.hwLite.serial.sendAsyncWithThrottle(modePacket); + + if (response[0] !== TECHNIC_POWER_INDEX) { + modePacket[0] = 0x24; + modePacket[1] = 0x42; + } else { + this.version = (response.length === 1) + ? RELEASE_VERSION + : response[1]; + await Entry.Utils.sleep(1000); + break; + } + await Entry.Utils.sleep(100); + } + + Entry.addEventListener('run', this.handleRemoteEventInterval.bind(this)); + Entry.addEventListener('run', this.handleDigitalEventInterval.bind(this)); + Entry.addEventListener('beforeStop', clearInterval(this.remoteEventIntervalId)); + Entry.addEventListener('beforeStop', clearInterval(this.digitalEventIntervalId)); + this.setZero(); + + if (this.version === 0) { + const packet = await Entry.hwLite.serial.reader.read(); + this.version = packet.value[0]; + if (this.version !== RELEASE_VERSION) { + const ko = `펌웨어를 업데이트 하세요.\n`; + const en = `(Please, Update your firmware.)\n`; + const version = ` - 현재(now): v.${this.version}\n - 최신(latest): v.${RELEASE_VERSION}`; + alert(`${ko}${en}${version}`); + } + } + + return true; + } + + handleRemoteEventInterval() { + this.remoteEventIntervalId = setInterval(this.remoteEvent.bind(this), EVENT_INTERVAL); + } + + handleDigitalEventInterval() { + this.digitalEventIntervalId = setInterval(this.digitalEvent.bind(this), EVENT_INTERVAL); + } + + // 디바이스에서 값을 읽어온다. + handleLocalData(buffer) { + buffer.forEach(b => this.qEnqueue(b)); + + while(this.qCount() >= this.inputPacket.length) { + if (!this.process) { + while(this.qCount() > 0) { + if (this.inputPacket[0] !== 0xCD) { + this.inputPacket[0] = this.qDequeue(); + } else if (this.inputPacket[1] !== 0xDA) { + this.inputPacket[1] = this.qDequeue(); + } else { + this.inputPacket[2] = this.qDequeue(); + this.pLength = this.inputPacket[2] + 3; + this.process = true; + break; + } + } + } + + if (this.process && (this.qCount() >= this.pLength)) { + for (let i = 3; i < this.pLength; i++) { + this.inputPacket[i] = this.qDequeue(); + } + if (this.checksumHandle(this.inputPacket)) { + this.processInputPacket(this.inputPacket); + } + + this.inputPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); + this.process = false; + this.sendFlag = true; + this.pLength = 0; + } + } + + if (this.sendFlag) { + setTimeout( + () => { + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + this.sendFlag = false; + } + }, + SERIAL_INTERVAL + ); + }; + } + + //디바이스에 값을 쓴다. + requestLocalData() { + if (this.sendFlag) { + return this.generateOutputPacket(this.RemoteData); + } + } + + qEnqueue(data) { + this.qBuffer[this.qRear] = data; + this.qRear = (this.qRear + 1) % this.qSize + } + + qDequeue() { + const data = this.qBuffer[this.qFront]; + this.qBuffer[this.qFront] = -1; + this.qFront = (this.qFront + 1) % this.qSize; + return data; + } + + qCount() { + return (this.qFront <= this.qRear) + ? (this.qRear - this.qFront) + : (this.qSize - this.qFront + this.qRear); + } + + checksumRequest(packet) { + const length = packet[2] + 2; + let checker = 0; + for(let i = 3; i < length; i++) { + checker += packet[i]; + } + return (checker & 0xFF); + + } + + checksumHandle(packet) { + let checker = 0; + const length = packet[2] + 2; + for(let i = 3; i < length ; i++ ) { + checker += packet[i]; + } + return (packet[length] === (checker & 0xFF)) + } + + processInputPacket(packet) { + const digitalByte1 = packet[8]; + const digitalByte2 = packet[9]; + const remoteByte1 = packet[10]; + const remoteByte2 = packet[11]; + const rotationByte = packet[16]; + + this.InputData.Analog.AA1 = packet[4]; + this.InputData.Analog.AA2 = packet[5]; + this.InputData.Analog.AA3 = packet[6]; + this.InputData.Analog.AA4 = packet[7]; + + this.InputData.Digital.A4 = (digitalByte1 >> 7) & 0x01; + this.InputData.Digital.A3 = (digitalByte1 >> 6) & 0x01; + this.InputData.Digital.A2 = (digitalByte1 >> 5) & 0x01; + this.InputData.Digital.A1 = (digitalByte1 >> 4) & 0x01; + this.InputData.Digital.FEA4 = (digitalByte1 >> 3) & 0x01; + this.InputData.Digital.FEA3 = (digitalByte1 >> 2) & 0x01; + this.InputData.Digital.FEA2 = (digitalByte1 >> 1) & 0x01; + this.InputData.Digital.FEA1 = digitalByte1 & 0x01; + this.InputData.Digital.REA4 = (digitalByte2 >> 7) & 0x01; + this.InputData.Digital.REA3 = (digitalByte2 >> 6) & 0x01; + this.InputData.Digital.REA2 = (digitalByte2 >> 5) & 0x01; + this.InputData.Digital.REA1 = (digitalByte2 >> 4) & 0x01; + this.InputData.Digital.BEA4 = (digitalByte2 >> 3) & 0x01; + this.InputData.Digital.BEA3 = (digitalByte2 >> 2) & 0x01; + this.InputData.Digital.BEA2 = (digitalByte2 >> 1) & 0x01; + this.InputData.Digital.BEA1 = digitalByte2 & 0x01; + + this.InputData.Remote.R_3 = (remoteByte1 >> 7) & 0x01; + this.InputData.Remote.R_2 = (remoteByte1 >> 6) & 0x01; + this.InputData.Remote.R_4 = (remoteByte1 >> 5) & 0x01; + this.InputData.Remote.R_1 = (remoteByte1 >> 4) & 0x01; + this.InputData.Remote.R_7 = (remoteByte2 >> 7) & 0x01; + this.InputData.Remote.R_6 = (remoteByte2 >> 6) & 0x01; + this.InputData.Remote.R_8 = (remoteByte2 >> 5) & 0x01; + this.InputData.Remote.R_5 = (remoteByte2 >> 4) & 0x01; + this.InputData.Remote.R_R1 = (remoteByte2 >> 3) & 0x01; + this.InputData.Remote.R_L1 = (remoteByte2 >> 2) & 0x01; + this.InputData.Remote.R_R2 = (remoteByte2 >> 1) & 0x01; + this.InputData.Remote.R_L2 = remoteByte2 & 0x01; + + this.InputData.EEPROM.EC = packet[13]; + this.InputData.EEPROM.EEPR2 = packet[14]; + this.InputData.EEPROM.EEPR1 = packet[15]; + + this.InputData.Infinite.ROTATION_1 = (rotationByte >> 6) & 0x0C; + this.InputData.Infinite.ROTATION_2 = (rotationByte >> 4) & 0x0C; + this.InputData.Infinite.ROTATION_3 = (rotationByte >> 2) & 0x0C; + this.InputData.Infinite.ROTATION_4 = rotationByte & 0x03; + + this.InputData.Acceler.AXIS_X1 = packet[4]; + this.InputData.Acceler.AXIS_X2 = packet[5]; + this.InputData.Acceler.AXIS_X3 = packet[6]; + this.InputData.Acceler.AXIS_X4 = packet[7]; + + this.InputData.Acceler.AXIS_Y1 = packet[17]; + this.InputData.Acceler.AXIS_Y2 = packet[19]; + this.InputData.Acceler.AXIS_Y3 = packet[21]; + this.InputData.Acceler.AXIS_Y4 = packet[23]; + + this.InputData.Acceler.AXIS_Z1 = packet[18]; + this.InputData.Acceler.AXIS_Z2 = packet[20]; + this.InputData.Acceler.AXIS_Z3 = packet[22]; + this.InputData.Acceler.AXIS_Z4 = packet[24]; + } + + generateOutputPacket(remoteData) { + + const outputPacket = new Uint8Array(SEND_PACKET_LENGTH).fill(-1); + + outputPacket[0] = 0xAD; + outputPacket[1] = 0xDA; + outputPacket[2] = outputPacket.length - 3; + + outputPacket[3] = 0xF0 | (remoteData.B4 << 3) | (remoteData.B3 << 2) | (remoteData.B2 << 1) | remoteData.B1; + + outputPacket[4] = remoteData.Servo1; + outputPacket[5] = remoteData.Servo2; + outputPacket[6] = remoteData.Servo3; + outputPacket[7] = remoteData.Servo4; + + outputPacket[8] = remoteData.DC1; + outputPacket[9] = remoteData.DC2; + outputPacket[10] = remoteData.DC3; + outputPacket[11] = remoteData.DC4; + + outputPacket[12] = remoteData.MEL2; + outputPacket[13] = remoteData.MEL1; + + outputPacket[14] = remoteData.FND; + + outputPacket[15] = remoteData.EEPR4; + outputPacket[16] = remoteData.EEPR3; + outputPacket[17] = remoteData.EEPR2; + outputPacket[18] = remoteData.EEPR1; + + outputPacket[19] = remoteData.ASET2; + outputPacket[20] = remoteData.ASET1; + + outputPacket[21] = this.checksumRequest(outputPacket); + + return outputPacket; + } + + getMonitorPort() { + return { ...this.InputData.Analog }; + } + + getRemoteKey(data) { + const num = Number(data); + + if (1 <= num && num <= 8) { + return `R_${num}`; + } else if (9 <= num && num <= 10) { + return `R_L${(num - 8)}`; + } else if (11 <= num && num <= 12) { + return `R_R${(num - 10)}`; + } else { + return data; + } + } + + getDigitalKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `A${num}`; + } else if (5 <= num && num <= 8) { + return `FEA${num - 4}`; + } else if (9 <= num && num <= 12) { + return `REA${num - 8}`; + } else if (13 <= num && num <= 16) { + return `BEA${num - 12}`; + } else { + return data; + } + } + + getDigitalStateValue(key) { + let value = false; + switch(key) { + case 'A1': + case 'A2': + case 'A3': + case 'A4': + value = (Entry.ProboTechnicPowerLite.InputData.Digital[key] === 1); + break; + default: + if (Entry.ProboTechnicPowerLite.InputData.Digital[key] === 1) { + if (Entry.ProboTechnicPowerLite.EdgeFlag[key] === 0) { + Entry.ProboTechnicPowerLite.EdgeFlag[key] = 1; + value = true; + } + } else { + Entry.ProboTechnicPowerLite.EdgeFlag[key] = 0; + } + break; + } + + return value; + } + + getAnalogKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `AA${num}`; + } else { + return data; + } + } + + getSettingSensorValue(key) { + switch (key) { + case '1': // 스위치 + case '2': // 적외선 + case '3': // 자석 + case '16': // 분배기 + case Lang.template.technicpowerlite_item_switch: // 스위치 + case Lang.template.technicpowerlite_item_infrared: // 적외선 + case Lang.template.technicpowerlite_item_magnetic: // 자석 + case Lang.template.technicpowerlite_item_multi_switch: // 분배기 + return 1; + case '4': // 회전 + case '7': // 조도 + case '9': // 초음파 + case Lang.template.technicpowerlite_item_rotation: // 회전 + case Lang.template.technicpowerlite_item_illuminance: // 조도 + case Lang.template.technicpowerlite_item_ultrasonic: // 초음파 + return 2; + case '10': // 소리 + case Lang.template.technicpowerlite_item_sound: // 소리 + return 3; + case '11': // 기울기 + case Lang.template.technicpowerlite_item_tilt: // 기울기 + return 4; + case '12': // 압력 + case Lang.template.technicpowerlite_item_pressure: // 압력 + return 5; + case '8': // 심박 + case Lang.template.technicpowerlite_item_heart_rate: // 심박 + return 6; + case '5': // 컬러 + case Lang.template.technicpowerlite_item_color: // 컬러 + return 7; + case '6': // 가속도 + case Lang.template.technicpowerlite_item_acceleration: // 가속도 + return 8; + case '14': // 나침반 + case '15': // 3축 가속도 + case '17': // 확장 입력 + case Lang.template.technicpowerlite_item_compass: + case Lang.template.technicpowerlite_item_tri_acceleration: + case Lang.template.technicpowerlite_item_extension_input: + return 9; + case '13': // 멀티터치(멀티키) + case Lang.template.technicpowerlite_item_multi_touch: // 멀티터치(멀티키) + return 11; + default: + return key; + } + } + + getAxisKey(data, axis) { + switch (data) { + case 'AA1': + case 'AA2': + case 'AA3': + case 'AA4': + data = data.substr(2, 2); + break; + } + + return `AXIS_${axis}${data}`; + } + + getMultiKeyValue(key) { + const num = Number(key); + + if (1 <= num && num <= 8) { + return (num - 1); + } else { + switch (key) { + case Lang.template.technicpowerlite_item_key_1: + return 0; + case Lang.template.technicpowerlite_item_key_2: + return 1; + case Lang.template.technicpowerlite_item_key_3: + return 2; + case Lang.template.technicpowerlite_item_key_4: + return 3; + case Lang.template.technicpowerlite_item_key_5: + return 4; + case Lang.template.technicpowerlite_item_key_6: + return 5; + case Lang.template.technicpowerlite_item_key_7: + return 6; + case Lang.template.technicpowerlite_item_key_8: + return 7; + default: + return key; + } + } + } + + getExtentionDigitalValue(key) { + const num = Number(key); + if (1 <= num && num <= 8) { + return (num - 1); + } else if (9 <= num && num <= 16) { + return (num - 9); + } else { + switch (key) { + case 'EA1': + case 'ET1': + return 0; + case 'EA2': + case 'ET2': + return 1; + case 'EA3': + case 'ET3': + return 2; + case 'EA4': + case 'ET4': + return 3; + case 'EA5': + case 'ET5': + return 4; + case 'EA6': + case 'ET6': + return 5; + case 'EA7': + case 'ET7': + return 6; + case 'EA8': + case 'ET8': + return 7; + default: + return key; + } + } + } + + getExtentionAnalogKey(data) { + switch (data) { + case '1': + case 'EAA1': + return 'Y'; + case '2': + case 'EAA2': + return 'Z'; + default: + return data; + } + } + + getDckey(data) { + const num = Number(data); + + if (1 <= num && num <= 7) { + return `DC${num}`; + } else { + return data; + } + } + + getServoKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `Servo${num}`; + } else { + return data; + } + } + + getPortKey(data) { + const num = Number(data); + + if (1 <= num && num <= 4) { + return `B${num}`; + } else { + return data; + } + } + + getPortToggleValue(key) { + switch (key) { + case '1': + case Lang.template.technicpowerlite_item_on: + return 1; + case '0': + case Lang.template.technicpowerlite_item_off: + return 0; + default: + return key; + } + } + + getSensorAngleKey(data) { + switch (data) { + case '1': + case Lang.template.technicpowerlite_item_value: + return 'IS1'; + case '2': + case Lang.template.technicpowerlite_item_angle: + return 'IS2'; + case '3': + case Lang.template.technicpowerlite_item_absolute_angle: + return 'IS3'; + case '4': + case Lang.template.technicpowerlite_item_number_of_rotations: + return 'IS4'; + default: + return data; + } + } + + getPitchValue(pitch) { + // 배열의 인덱스 1번부터 음표 + const index = (pitch % 12) + 1; + + if (36 <= pitch && pitch <= 47) { + return Entry.ProboTechnicPowerLite.Melody[index]; + } else if (48 <= pitch && pitch <= 59) { + return Entry.ProboTechnicPowerLite.Melody[index] >> 1; + } else if (60 <= pitch && pitch <= 71) { + return Entry.ProboTechnicPowerLite.Melody[index] >> 2; + } else if (72 <= pitch && pitch <= 83) { + return Entry.ProboTechnicPowerLite.Melody[index] >> 3; + } else { + return Entry.ProboTechnicPowerLite.Melody[0]; + } + } + + getNoteKey(data) { + switch (data) { + case '1': + case Lang.template.technicpowerlite_item_note_whole: + return 'n1'; + case '2': + case Lang.template.technicpowerlite_item_note_half: + return 'n2'; + case '4': + case Lang.template.technicpowerlite_item_note_quarter: + return 'n4'; + case '8': + case Lang.template.technicpowerlite_item_note_eighth: + return 'n8'; + case '16': + case Lang.template.technicpowerlite_item_note_sixteenth: + return 'n16'; + case '32': + case Lang.template.technicpowerlite_item_note_thirty_second: + return 'n32'; + default: + return data; + } + } + + getMelodyValue(key) { + switch (key) { + case '1': + case Lang.template.technicpowerlite_item_melody_start: + return 0; + case '2': + case Lang.template.technicpowerlite_item_melody_end: + return 1; + case '3': + case Lang.template.technicpowerlite_item_melody_level_up: + return 2; + case '4': + case Lang.template.technicpowerlite_item_melody_level_down: + return 3; + default: + return key; + } + } + + getColorSensorKey(data) { + switch (data) { + case '1': + case Lang.template.technicpowerlite_item_color_red: + return 'Red'; + case '2': + case Lang.template.technicpowerlite_item_color_green: + return 'Green'; + case '3': + case Lang.template.technicpowerlite_item_color_blue: + return 'Blue'; + case '4': + case Lang.template.technicpowerlite_item_color_yellow: + return 'Yellow'; + case '5': + case Lang.template.technicpowerlite_item_color_black: + return 'Black'; + case '6': + case Lang.template.technicpowerlite_item_color_white: + return 'White'; + default: + return data; + } + } + + getRgbToggleValue(key) { + switch (key) { + case '0': + return this.Rgb.Off; + case '1': + case Lang.template.technicpowerlite_item_color_red: + return this.Rgb.On.Red; + case '2': + case Lang.template.technicpowerlite_item_color_green: + return this.Rgb.On.Green; + case '3': + case Lang.template.technicpowerlite_item_color_blue: + return this.Rgb.On.Blue; + case '4': + case Lang.template.technicpowerlite_item_color_cyan: + return this.Rgb.On.Cyan; + case '5': + case Lang.template.technicpowerlite_item_color_magenta: + return this.Rgb.On.Magenta; + case '6': + case Lang.template.technicpowerlite_item_color_yellow: + return this.Rgb.On.Yellow; + case '7': + case Lang.template.technicpowerlite_item_color_white: + return this.Rgb.On.White; + default: + return key; + } + } + + getRgbTwinkleValue(key, sec) { + let twinkle = 0; + switch (sec) { + case 0.05: + twinkle += 1; + break; + case 0.1: + twinkle += 2; + break; + case 0.2: + twinkle += 3; + break; + case 0.5: + twinkle += 4; + break; + case 1: + twinkle += 5; + break; + } + + return this.getRgbToggleValue(key) + twinkle; + } + + getRgbDimmingValue(key) { + switch (key) { + case '1': + case Lang.template.technicpowerlite_item_color_red: + return this.Rgb.Dimming.Red; + case '2': + case Lang.template.technicpowerlite_item_color_green: + return this.Rgb.Dimming.Green; + case '3': + case Lang.template.technicpowerlite_item_color_blue: + return this.Rgb.Dimming.Blue; + case '4': + case Lang.template.technicpowerlite_item_color_cyan: + return this.Rgb.Dimming.Cyan; + case '5': + case Lang.template.technicpowerlite_item_color_magenta: + return this.Rgb.Dimming.Magenta; + case '6': + case Lang.template.technicpowerlite_item_color_yellow: + return this.Rgb.Dimming.Yellow; + case '7': + case Lang.template.technicpowerlite_item_color_white: + return this.Rgb.Dimming.White; + default: + return key; + } + } + + getBlocks() { + return { + ///======================================================================================== + /// Dropdown block + ///======================================================================================== + technicpowerlite_dropdown_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['R_1', '1'], + ['R_2', '2'], + ['R_3', '3'], + ['R_4', '4'], + ['R_5', '5'], + ['R_6', '6'], + ['R_7', '7'], + ['R_8', '8'], + ['R_L1', '9'], + ['R_L2', '10'], + ['R_R1', '11'], + ['R_R2', '12'], + ], + value: 1, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringValue('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['R_1', '1'], + ['R_2', '2'], + ['R_3', '3'], + ['R_4', '4'], + ['R_5', '5'], + ['R_6', '6'], + ['R_7', '7'], + ['R_8', '8'], + ['R_L1', '9'], + ['R_L2', '10'], + ['R_R1', '11'], + ['R_R2', '12'], + ], + value: 1, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_remote_key', + }, + ], + }, + }, + technicpowerlite_dropdown_digital_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['A1', '1'], + ['A2', '2'], + ['A3', '3'], + ['A4', '4'], + ['FEA1', '5'], + ['FEA2', '6'], + ['FEA3', '7'], + ['FEA4', '8'], + ['REA1', '9'], + ['REA2', '10'], + ['REA3', '11'], + ['REA4', '12'], + ['BEA1', '13'], + ['BEA2', '14'], + ['BEA3', '15'], + ['BEA4', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['A1', '1'], + ['A2', '2'], + ['A3', '3'], + ['A4', '4'], + ['FEA1', '5'], + ['FEA2', '6'], + ['FEA3', '7'], + ['FEA4', '8'], + ['REA1', '9'], + ['REA2', '10'], + ['REA3', '11'], + ['REA4', '12'], + ['BEA1', '13'], + ['BEA2', '14'], + ['BEA3', '15'], + ['BEA4', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_digital_key', + }, + ], + } + }, + technicpowerlite_dropdown_analog_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['AA1', '1'], + ['AA2', '2'], + ['AA3', '3'], + ['AA4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['AA1', '1'], + ['AA2', '2'], + ['AA3', '3'], + ['AA4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_analog_key', + }, + ], + }, + }, + technicpowerlite_dropdown_setting_sensor_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_switch, '1'], + [Lang.template.technicpowerlite_item_infrared, '2'], + [Lang.template.technicpowerlite_item_magnetic, '3'], + [Lang.template.technicpowerlite_item_rotation, '4'], + [Lang.template.technicpowerlite_item_color, '5'], + // [Lang.template.technicpowerlite_item_acceleration, '6'], // 테크닉 에서 사용하지 않음 + [Lang.template.technicpowerlite_item_ultrasonic, '7'], + [Lang.template.technicpowerlite_item_heart_rate, '8'], + [Lang.template.technicpowerlite_item_illuminance, '9'], + [Lang.template.technicpowerlite_item_sound, '10'], + [Lang.template.technicpowerlite_item_tilt, '11'], + [Lang.template.technicpowerlite_item_pressure, '12'], + // [Lang.template.technicpowerlite_item_multi_touch, '13'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicpowerlite_item_compass, '14'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicpowerlite_item_tri_acceleration, '15'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicpowerlite_item_multi_switch, '16'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicpowerlite_item_extension_input, '17'], // 테크닉 에서 사용하지 않음 + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_switch, '1'], + [Lang.template.technicpowerlite_item_infrared, '2'], + [Lang.template.technicpowerlite_item_magnetic, '3'], + [Lang.template.technicpowerlite_item_rotation, '4'], + [Lang.template.technicpowerlite_item_color, '5'], + // [Lang.template.technicpowerlite_item_acceleration, '6'], // 테크닉 에서 사용하지 않음 + [Lang.template.technicpowerlite_item_ultrasonic, '7'], + [Lang.template.technicpowerlite_item_heart_rate, '8'], + [Lang.template.technicpowerlite_item_illuminance, '9'], + [Lang.template.technicpowerlite_item_sound, '10'], + [Lang.template.technicpowerlite_item_tilt, '11'], + [Lang.template.technicpowerlite_item_pressure, '12'], + // [Lang.template.technicpowerlite_item_multi_touch, '13'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicpowerlite_item_compass, '14'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicpowerlite_item_tri_acceleration, '15'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicpowerlite_item_multi_switch, '16'], // 테크닉 에서 사용하지 않음 + // [Lang.template.technicpowerlite_item_extension_input, '17'], // 테크닉 에서 사용하지 않음 + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_setting_sensor_key', + }, + ], + }, + }, + technicpowerlite_dropdown_inNcom_sensor_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_infinite_rotation, '1'], + //[Lang.template.technicpowerlite_item_compass, '2'], // 테크닉 에서 사용하지 않음 + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_infinite_rotation, '1'], + [Lang.template.technicpowerlite_item_compass, '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_inNcom_sensor_key', + }, + ], + }, + }, + technicpowerlite_dropdown_sensor_color_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_color_red, '1'], + [Lang.template.technicpowerlite_item_color_green, '2'], + [Lang.template.technicpowerlite_item_color_blue, '3'], + [Lang.template.technicpowerlite_item_color_yellow, '4'], + [Lang.template.technicpowerlite_item_color_black, '5'], + [Lang.template.technicpowerlite_item_color_white, '6'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_color_red, '1'], + [Lang.template.technicpowerlite_item_color_green, '2'], + [Lang.template.technicpowerlite_item_color_blue, '3'], + [Lang.template.technicpowerlite_item_color_yellow, '4'], + [Lang.template.technicpowerlite_item_color_black, '5'], + [Lang.template.technicpowerlite_item_color_white, '6'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_sensor_color_key', + }, + ], + }, + }, + technicpowerlite_dropdown_rgb_color_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_color_red, '1'], + [Lang.template.technicpowerlite_item_color_green, '2'], + [Lang.template.technicpowerlite_item_color_blue, '3'], + [Lang.template.technicpowerlite_item_color_cyan, '4'], + [Lang.template.technicpowerlite_item_color_magenta, '5'], + [Lang.template.technicpowerlite_item_color_yellow, '6'], + [Lang.template.technicpowerlite_item_color_white, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_color_red, '1'], + [Lang.template.technicpowerlite_item_color_green, '2'], + [Lang.template.technicpowerlite_item_color_blue, '3'], + [Lang.template.technicpowerlite_item_color_cyan, '4'], + [Lang.template.technicpowerlite_item_color_magenta, '5'], + [Lang.template.technicpowerlite_item_color_yellow, '6'], + [Lang.template.technicpowerlite_item_color_white, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_rgb_color_key', + }, + ], + }, + }, + technicpowerlite_dropdown_sensor_angle_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_value, '1'], + [Lang.template.technicpowerlite_item_angle, '2'], + [Lang.template.technicpowerlite_item_absolute_angle, '3'], + [Lang.template.technicpowerlite_item_number_of_rotations, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_value, '1'], + [Lang.template.technicpowerlite_item_angle, '2'], + [Lang.template.technicpowerlite_item_absolute_angle, '3'], + [Lang.template.technicpowerlite_item_number_of_rotations, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_sensor_angle_key', + }, + ], + }, + }, + technicpowerlite_dropdown_multikey_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_key_1, '1'], + [Lang.template.technicpowerlite_item_key_2, '2'], + [Lang.template.technicpowerlite_item_key_3, '3'], + [Lang.template.technicpowerlite_item_key_4, '4'], + [Lang.template.technicpowerlite_item_key_5, '5'], + [Lang.template.technicpowerlite_item_key_6, '6'], + [Lang.template.technicpowerlite_item_key_7, '7'], + [Lang.template.technicpowerlite_item_key_8, '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_key_1, '1'], + [Lang.template.technicpowerlite_item_key_2, '2'], + [Lang.template.technicpowerlite_item_key_3, '3'], + [Lang.template.technicpowerlite_item_key_4, '4'], + [Lang.template.technicpowerlite_item_key_5, '5'], + [Lang.template.technicpowerlite_item_key_6, '6'], + [Lang.template.technicpowerlite_item_key_7, '7'], + [Lang.template.technicpowerlite_item_key_8, '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_multikey_key', + }, + ], + }, + }, + technicpowerlite_dropdown_extension_digital_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['EA1', '1'], + ['EA2', '2'], + ['EA3', '3'], + ['EA4', '4'], + ['EA5', '5'], + ['EA6', '6'], + ['EA7', '7'], + ['EA8', '8'], + ['ET1', '9'], + ['ET2', '10'], + ['ET3', '11'], + ['ET4', '12'], + ['ET5', '13'], + ['ET6', '14'], + ['ET7', '15'], + ['ET8', '16'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['EA1', '1'], + ['EA2', '2'], + ['EA3', '3'], + ['EA4', '4'], + ['EA5', '5'], + ['EA6', '6'], + ['EA7', '7'], + ['EA8', '8'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_extension_digital_key', + }, + ], + }, + }, + technicpowerlite_dropdown_extension_analog_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['EAA1', '1'], + ['EAA2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['EAA1', '1'], + ['EAA2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_extension_analog_key', + }, + ], + }, + }, + technicpowerlite_dropdown_dc_1_all_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['1,2', '5'], + ['3,4', '6'], + [Lang.template.technicpowerlite_item_all, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ['1,2', '5'], + ['3,4', '6'], + [Lang.template.technicpowerlite_item_all, '7'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_dc_1_all_key', + }, + ], + }, + }, + technicpowerlite_dropdown_velocity_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['20', '20'], + ['15', '15'], + ['10', '10'], + ['5', '5'], + ['0', '0'], + ['-5', '-5'], + ['-10', '-10'], + ['-15', '-15'], + ['-20', '-20'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['20', '20'], + ['15', '15'], + ['10', '10'], + ['5', '5'], + ['0', '0'], + ['-5', '-5'], + ['-10', '-10'], + ['-15', '-15'], + ['-20', '-20'], + ], + value: '0', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_velocity_key', + }, + ], + }, + }, + technicpowerlite_dropdown_servo_position_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['20', '20'], + ['40', '40'], + ['60', '60'], + ['80', '80'], + ['100', '100'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['20', '20'], + ['40', '40'], + ['60', '60'], + ['80', '80'], + ['100', '100'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_servo_position_key', + }, + ], + }, + }, + technicpowerlite_dropdown_port_1_4_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', '1'], + ['2', '2'], + ['3', '3'], + ['4', '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_port_1_4_key', + }, + ], + }, + }, + technicpowerlite_dropdown_on_off_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_on, '1'], + [Lang.template.technicpowerlite_item_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_on, '1'], + [Lang.template.technicpowerlite_item_off, '0'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_on_off_key', + }, + ], + }, + }, + technicpowerlite_dropdown_note_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_note_whole, '1'], + [Lang.template.technicpowerlite_item_note_half, '2'], + [Lang.template.technicpowerlite_item_note_quarter, '4'], + [Lang.template.technicpowerlite_item_note_eighth, '8'], + [Lang.template.technicpowerlite_item_note_sixteenth, '16'], + [Lang.template.technicpowerlite_item_note_thirty_second, '32'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_note_whole, '1'], + [Lang.template.technicpowerlite_item_note_half, '2'], + [Lang.template.technicpowerlite_item_note_quarter, '4'], + [Lang.template.technicpowerlite_item_note_eighth, '8'], + [Lang.template.technicpowerlite_item_note_sixteenth, '16'], + [Lang.template.technicpowerlite_item_note_thirty_second, '32'], + ], + value: '4', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_note_key', + }, + ], + }, + }, + technicpowerlite_dropdown_time_1_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_time_1_key', + }, + ], + }, + }, + technicpowerlite_dropdown_time_2_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.1', '0.1'], + ['0.3', '0.3'], + ['0.5', '0.5'], + ['0.7', '0.7'], + ['1', '1'], + ['2', '2'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_time_2_key', + }, + ], + }, + }, + technicpowerlite_dropdown_time_3: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0.05', '0.05'], + ['0.1', '0.1'], + ['0.2', '0.2'], + ['0.5', '0.5'], + ['1', '1'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0.05', '0.05'], + ['0.1', '0.1'], + ['0.2', '0.2'], + ['0.5', '0.5'], + ['1', '1'], + ], + value: '0.5', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_time_3', + }, + ], + }, + }, + technicpowerlite_dropdown_pitch_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'DropdownExtra', + options: [ + [Lang.template.technicpowerlite_item_pitch_do + ' (36)', '36'], + [Lang.template.technicpowerlite_item_pitch_do_sharp + ' (37)', '37'], + [Lang.template.technicpowerlite_item_pitch_re + ' (38)', '38'], + [Lang.template.technicpowerlite_item_pitch_re_sharp + ' (39)', '39'], + [Lang.template.technicpowerlite_item_pitch_mi + ' (40)', '40'], + [Lang.template.technicpowerlite_item_pitch_fa + ' (41)', '41'], + [Lang.template.technicpowerlite_item_pitch_fa_sharp + ' (42)', '42'], + [Lang.template.technicpowerlite_item_pitch_sol + ' (43)', '43'], + [Lang.template.technicpowerlite_item_pitch_sol_sharp + ' (44)', '44'], + [Lang.template.technicpowerlite_item_pitch_ra + ' (45)', '45'], + [Lang.template.technicpowerlite_item_pitch_ra_sharp + ' (46)', '46'], + [Lang.template.technicpowerlite_item_pitch_si + ' (47)', '47'], + + [Lang.template.technicpowerlite_item_pitch_do + ' (48)', '48'], + [Lang.template.technicpowerlite_item_pitch_do_sharp + ' (49)', '49'], + [Lang.template.technicpowerlite_item_pitch_re + ' (50)', '50'], + [Lang.template.technicpowerlite_item_pitch_re_sharp + ' (51)', '51'], + [Lang.template.technicpowerlite_item_pitch_mi + ' (52)', '52'], + [Lang.template.technicpowerlite_item_pitch_fa + ' (53)', '53'], + [Lang.template.technicpowerlite_item_pitch_fa_sharp + ' (54)', '54'], + [Lang.template.technicpowerlite_item_pitch_sol + ' (55)', '55'], + [Lang.template.technicpowerlite_item_pitch_sol_sharp + ' (56)', '56'], + [Lang.template.technicpowerlite_item_pitch_ra + ' (57)', '57'], + [Lang.template.technicpowerlite_item_pitch_ra_sharp + ' (58)', '58'], + [Lang.template.technicpowerlite_item_pitch_si + ' (59)', '59'], + + [Lang.template.technicpowerlite_item_pitch_do + ' (60)', '60'], + [Lang.template.technicpowerlite_item_pitch_do_sharp + ' (61)', '61'], + [Lang.template.technicpowerlite_item_pitch_re + ' (62)', '62'], + [Lang.template.technicpowerlite_item_pitch_re_sharp + ' (63)', '63'], + [Lang.template.technicpowerlite_item_pitch_mi + ' (64)', '64'], + [Lang.template.technicpowerlite_item_pitch_fa + ' (65)', '65'], + [Lang.template.technicpowerlite_item_pitch_fa_sharp + ' (66)', '66'], + [Lang.template.technicpowerlite_item_pitch_sol + ' (67)', '67'], + [Lang.template.technicpowerlite_item_pitch_sol_sharp + ' (68)', '68'], + [Lang.template.technicpowerlite_item_pitch_ra + ' (69)', '69'], + [Lang.template.technicpowerlite_item_pitch_ra_sharp + ' (70)', '70'], + [Lang.template.technicpowerlite_item_pitch_si + ' (71)', '71'], + + [Lang.template.technicpowerlite_item_pitch_do + ' (72)', '72'], + [Lang.template.technicpowerlite_item_pitch_do_sharp + ' (73)', '73'], + [Lang.template.technicpowerlite_item_pitch_re + ' (74)', '74'], + [Lang.template.technicpowerlite_item_pitch_re_sharp + ' (75)', '75'], + [Lang.template.technicpowerlite_item_pitch_mi + ' (76)', '76'], + [Lang.template.technicpowerlite_item_pitch_fa + ' (77)', '77'], + [Lang.template.technicpowerlite_item_pitch_fa_sharp + ' (78)', '78'], + [Lang.template.technicpowerlite_item_pitch_sol + ' (79)', '79'], + [Lang.template.technicpowerlite_item_pitch_sol_sharp + ' (80)', '80'], + [Lang.template.technicpowerlite_item_pitch_ra + ' (81)', '81'], + [Lang.template.technicpowerlite_item_pitch_ra_sharp + ' (82)', '82'], + [Lang.template.technicpowerlite_item_pitch_si + ' (83)', '83'], + ], + value: '60', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ + null + ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + const value = script.getStringField('PARAM0'); + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_pitch_do + ' (36)', '36'], + [Lang.template.technicpowerlite_item_pitch_do_sharp + ' (37)', '37'], + [Lang.template.technicpowerlite_item_pitch_re + ' (38)', '38'], + [Lang.template.technicpowerlite_item_pitch_re_sharp + ' (39)', '39'], + [Lang.template.technicpowerlite_item_pitch_mi + ' (40)', '40'], + [Lang.template.technicpowerlite_item_pitch_fa + ' (41)', '41'], + [Lang.template.technicpowerlite_item_pitch_fa_sharp + ' (42)', '42'], + [Lang.template.technicpowerlite_item_pitch_sol + ' (43)', '43'], + [Lang.template.technicpowerlite_item_pitch_sol_sharp + ' (44)', '44'], + [Lang.template.technicpowerlite_item_pitch_ra + ' (45)', '45'], + [Lang.template.technicpowerlite_item_pitch_ra_sharp + ' (46)', '46'], + [Lang.template.technicpowerlite_item_pitch_si + ' (47)', '47'], + + [Lang.template.technicpowerlite_item_pitch_do + ' (48)', '48'], + [Lang.template.technicpowerlite_item_pitch_do_sharp + ' (49)', '49'], + [Lang.template.technicpowerlite_item_pitch_re + ' (50)', '50'], + [Lang.template.technicpowerlite_item_pitch_re_sharp + ' (51)', '51'], + [Lang.template.technicpowerlite_item_pitch_mi + ' (52)', '52'], + [Lang.template.technicpowerlite_item_pitch_fa + ' (53)', '53'], + [Lang.template.technicpowerlite_item_pitch_fa_sharp + ' (54)', '54'], + [Lang.template.technicpowerlite_item_pitch_sol + ' (55)', '55'], + [Lang.template.technicpowerlite_item_pitch_sol_sharp + ' (56)', '56'], + [Lang.template.technicpowerlite_item_pitch_ra + ' (57)', '57'], + [Lang.template.technicpowerlite_item_pitch_ra_sharp + ' (58)', '58'], + [Lang.template.technicpowerlite_item_pitch_si + ' (59)', '59'], + + [Lang.template.technicpowerlite_item_pitch_do + ' (60)', '60'], + [Lang.template.technicpowerlite_item_pitch_do_sharp + ' (61)', '61'], + [Lang.template.technicpowerlite_item_pitch_re + ' (62)', '62'], + [Lang.template.technicpowerlite_item_pitch_re_sharp + ' (63)', '63'], + [Lang.template.technicpowerlite_item_pitch_mi + ' (64)', '64'], + [Lang.template.technicpowerlite_item_pitch_fa + ' (65)', '65'], + [Lang.template.technicpowerlite_item_pitch_fa_sharp + ' (66)', '66'], + [Lang.template.technicpowerlite_item_pitch_sol + ' (67)', '67'], + [Lang.template.technicpowerlite_item_pitch_sol_sharp + ' (68)', '68'], + [Lang.template.technicpowerlite_item_pitch_ra + ' (69)', '69'], + [Lang.template.technicpowerlite_item_pitch_ra_sharp + ' (70)', '70'], + [Lang.template.technicpowerlite_item_pitch_si + ' (71)', '71'], + + [Lang.template.technicpowerlite_item_pitch_do + ' (72)', '72'], + [Lang.template.technicpowerlite_item_pitch_do_sharp + ' (73)', '73'], + [Lang.template.technicpowerlite_item_pitch_re + ' (74)', '74'], + [Lang.template.technicpowerlite_item_pitch_re_sharp + ' (75)', '75'], + [Lang.template.technicpowerlite_item_pitch_mi + ' (76)', '76'], + [Lang.template.technicpowerlite_item_pitch_fa + ' (77)', '77'], + [Lang.template.technicpowerlite_item_pitch_fa_sharp + ' (78)', '78'], + [Lang.template.technicpowerlite_item_pitch_sol + ' (79)', '79'], + [Lang.template.technicpowerlite_item_pitch_sol_sharp + ' (80)', '80'], + [Lang.template.technicpowerlite_item_pitch_ra + ' (81)', '81'], + [Lang.template.technicpowerlite_item_pitch_ra_sharp + ' (82)', '82'], + [Lang.template.technicpowerlite_item_pitch_si + ' (83)', '83'], + ], + value: '60', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_pitch_key', + }, + ], + }, + }, + technicpowerlite_dropdown_melody_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_melody_start, '1'], + [Lang.template.technicpowerlite_item_melody_end, '2'], + [Lang.template.technicpowerlite_item_melody_level_up, '3'], + [Lang.template.technicpowerlite_item_melody_level_down, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + events: {}, + def: { + params: [ null ], + }, + paramsKeyMap: { + PARAM0: 0, + }, + func: function(sprite, script) { + return script.getStringField('PARAM0'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + blockType: 'param', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.technicpowerlite_item_melody_start, '1'], + [Lang.template.technicpowerlite_item_melody_end, '2'], + [Lang.template.technicpowerlite_item_melody_level_up, '3'], + [Lang.template.technicpowerlite_item_melody_level_down, '4'], + ], + value: '1', + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'technicpowerlite_dropdown_melody_key', + }, + ], + }, + }, + ///======================================================================================== + /// Event block + ///======================================================================================== + // %1 리모컨 %2 키를 눌렀을 때 + technicpowerlite_when_press_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardwarelite.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'technicpowerlite_dropdown_remote_key', + }, + ], + type: 'technicpowerlite_when_press_remote_key', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'technicpowerlite_event', + isNotFor: ['ProboTechnicPowerLite'], + event: 'technicpowerlite_event_remote_input', + func(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getRemoteKey(script.getStringValue('PARAM1')); + return (Entry.ProboTechnicPowerLite.InputData.Remote[key] === 1) + ? script.callReturn() + : this.die(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.when_press_remote_key(%2)', + blockType: 'event', + passTest: true, + textParams: [ + undefined, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 디지털 입력 %2 이(가) 들어왔을 때 + technicpowerlite_when_input_digital_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardwarelite.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'technicpowerlite_dropdown_digital_key', + }, + ], + type: 'technicpowerlite_when_input_digital_value', + }, + paramsKeyMap: { + PARAM1: 1, + }, + class: 'technicpowerlite_event', + isNotFor: ['ProboTechnicPowerLite'], + event: 'technicpowerlite_event_digital_input', + func(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getDigitalKey(script.getStringValue('PARAM1')); + const value = Entry.ProboTechnicPowerLite.getDigitalStateValue(key); + return (value) + ? script.callReturn() + : this.die(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.when_input_digital_value(%2)', + blockType: 'event', + passTest: true, + textParams: [ + undefined, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + ///======================================================================================== + /// Setting Block + ///======================================================================================== + // 입력포트 %1 을(를) %2 센서로 설정 %3 + technicpowerlite_set_senser_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'technicpowerlite_dropdown_setting_sensor_key', + }, + null, + ], + type: 'technicpowerlite_set_senser_setting', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_setting', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicPowerLite.getSettingSensorValue(script.getStringValue('PARAM1')); + const sensorSet = Entry.ProboTechnicPowerLite.SenserSet; + sensorSet[key] = value; + Entry.ProboTechnicPowerLite.RemoteData.ASET2 = ((sensorSet.AA1 << 4) | sensorSet.AA2) & 0xFF; + Entry.ProboTechnicPowerLite.RemoteData.ASET1 = ((sensorSet.AA3 << 4) | sensorSet.AA4) & 0xFF; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_sensor_setting(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + ///======================================================================================== + /// Input block + ///======================================================================================== + // 리모컨 입력 %1 + technicpowerlite_is_remote_key: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_remote_key', + }, + ], + type: 'technicpowerlite_is_remote_key', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getRemoteKey(script.getStringValue('PARAM0')); + return (Entry.ProboTechnicPowerLite.InputData.Remote[key] === 1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.is_remote_key(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 디지털 입력 %1 + technicpowerlite_is_digital_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_digital_key', + }, + ], + type: 'technicpowerlite_is_digital_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getDigitalKey(script.getStringValue('PARAM0')); + return Entry.ProboTechnicPowerLite.getDigitalStateValue(key);; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.is_digital_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 아날로그 입력 %1 + technicpowerlite_get_analog_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + ], + type: 'technicpowerlite_get_analog_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM0')); + return (Entry.ProboTechnicPowerLite.SenserSet[key] === 5) // 5: 압력 + ? 255 - Entry.ProboTechnicPowerLite.InputData.Analog[key] + : Entry.ProboTechnicPowerLite.InputData.Analog[key]; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_analog_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 X축 + technicpowerlite_get_tri_axis_acceler_x: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + ], + type: 'technicpowerlite_get_tri_axis_acceler_x', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAxisKey(script.getStringValue('PARAM0'), "X"); + const value = Entry.ProboTechnicPowerLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_tri_axis_acceler_x(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 Y축 + technicpowerlite_get_tri_axis_acceler_y: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + ], + type: 'technicpowerlite_get_tri_axis_acceler_y', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAxisKey(script.getStringValue('PARAM0'),"Y"); + const value = Entry.ProboTechnicPowerLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_tri_axis_acceler_y(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 3가속도 %1의 Z축 + technicpowerlite_get_tri_axis_acceler_z: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + ], + type: 'technicpowerlite_get_tri_axis_acceler_z', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAxisKey(script.getStringValue('PARAM0'), "Z"); + const value = Entry.ProboTechnicPowerLite.InputData.Acceler[key]; + return (value & 0x80) + ? Number((value - 255) / 10).toFixed(1) + : Number(value / 10).toFixed(1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_tri_axis_acceler_z(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + + // %1 의 %2 ~ %3 값을 %4 ~ %5 (으)로 변환 + technicpowerlite_get_value_mapping: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 255 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 100 ], + }, + ], + type: 'technicpowerlite_get_value_mapping', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + PARAM3: 3, + PARAM4: 4, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM0')); + const inMin = script.getNumberValue('PARAM1'); + const inMax = script.getNumberValue('PARAM2'); + const outMin = script.getNumberValue('PARAM3'); + const outMax = script.getNumberValue('PARAM4'); + const data = (Entry.ProboTechnicPowerLite.SenserSet[key] === 5) // 5: 압력 + ? 255 - Entry.ProboTechnicPowerLite.InputData.Analog[key] + : Entry.ProboTechnicPowerLite.InputData.Analog[key]; + return (data - inMin) * (outMax-outMin) / (inMax - inMin) + outMin; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_value_mapping(%1, %2, %3, %4, %5)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 컬러 센서 %1 이(가) %2 인가? + technicpowerlite_is_color_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'technicpowerlite_dropdown_sensor_color_key', + }, + ], + type: 'technicpowerlite_is_color_value', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key0 = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM0')); + const key1 = Entry.ProboTechnicPowerLite.getColorSensorKey(script.getStringValue('PARAM1')); + const value = Entry.ProboTechnicPowerLite.InputData.Analog[key0]; + const color = Entry.ProboTechnicPowerLite.Color; + return ((color[key1].Min <= value) && (value <= color[key1].Max)); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.is_color_value(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 컬러 센서 %1 의 색상 + technicpowerlite_get_color_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + ], + type: 'technicpowerlite_get_color_value', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key0 = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicPowerLite.InputData.Analog[key0]; + const color = Entry.ProboTechnicPowerLite.Color; + + for (let i = 1; i < 7; i++) { + const key1 = Entry.ProboTechnicPowerLite.getColorSensorKey(i.toString()); + if ((color[key1].Min <= value) && (value <= color[key1].Max)) { + switch (i) { + case 1: + return Lang.template.technicpowerlite_item_color_red; + case 2: + return Lang.template.technicpowerlite_item_color_green; + case 3: + return Lang.template.technicpowerlite_item_color_blue; + case 4: + return Lang.template.technicpowerlite_item_color_yellow; + case 5: + return Lang.template.technicpowerlite_item_color_black; + case 6: + return Lang.template.technicpowerlite_item_color_white; + default: + return Lang.template.technicpowerlite_item_error; + } + } + } + + return Lang.template.technicpowerlite_item_nothing; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_color_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 을 %3 값으로 정하기 %4 + technicpowerlite_set_infinite_setting: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + } + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_inNcom_sensor_key', + }, + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'technicpowerlite_set_infinite_setting', + }, + paramsKeyMap: { + //PARAM0: 0, // 0을 쓰지 않음 + PARAM1: 1, + PARAM2: 2, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM1')); + let count = 0; + let value = script.getNumberValue('PARAM2'); + + if (value != 0) { + count = Number(value / 255).toFixed(0); + value = value % 255; + } else { + count = 0; + value = 0; + } + + Entry.ProboTechnicPowerLite.Infinite.Buff[key] = Entry.ProboTechnicPowerLite.InputData.Analog[key]; + Entry.ProboTechnicPowerLite.Infinite.Start[key] = Entry.ProboTechnicPowerLite.InputData.Analog[key] - value; + Entry.ProboTechnicPowerLite.Infinite.Count[key] = count; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_infinite_setting(%1, %2, %3)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 지름 %3 의 mm 값 + technicpowerlite_get_infinite_mm_diameter: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_inNcom_sensor_key', + }, + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'number', + params: [ 53.5 ], + }, + ], + type: 'technicpowerlite_get_infinite_mm_diameter', + }, + paramsKeyMap: { + //PARAM0: 0, // 0을 쓰지 않음 + PARAM1: 1, + PARAM2: 2, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM1')); + const radius = script.getNumberValue('PARAM2') / 2; + const pi = 3.141592; + const infinite = Entry.ProboTechnicPowerLite.Infinite; + let value = Entry.ProboTechnicPowerLite.InputData.Analog[key]; + + if (value < infinite.Buff[key] - 150) { + infinite.Count[key]++; + } else if (value > infinite.Buff[key] + 150) { + infinite.Count[key]--; + } + infinite.Buff[key] = value; + value = (infinite.Buff[key] - infinite.Start[key]) + (infinite.Count[key] * 255); + + return Number((2 * pi * radius) / 255 * value).toFixed(3); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_infinite_mm_diameter(%1, %2, %3)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 센서 %2 의 %3 + technicpowerlite_get_infinite_transform_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_inNcom_sensor_key', + }, + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'technicpowerlite_dropdown_sensor_angle_key', + }, + ], + type: 'technicpowerlite_get_infinite_transform_input', + }, + paramsKeyMap: { + //PARAM0: 0, // 0을 쓰지 않음 + PARAM1: 1, + PARAM2: 2, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key1 = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM1')); + const key2 = Entry.ProboTechnicPowerLite.getSensorAngleKey(script.getStringValue('PARAM2')); + const anlogValue = Entry.ProboTechnicPowerLite.InputData.Analog[key1]; + const infinite = Entry.ProboTechnicPowerLite.Infinite; + + if (anlogValue < (infinite.Buff[key1] - 150)) { + infinite.Count[key1]++; + } else if (anlogValue > (infinite.Buff[key1] + 150)) { + infinite.Count[key1]--; + } + infinite.Buff[key1] = anlogValue; + const value = (infinite.Buff[key1] - infinite.Start[key1]) + (infinite.Count[key1] * 255); + + switch (key2) { + case 'IS1': + return value; + case 'IS2': + return (value > 0) + ? Math.floor((value % 255) * 1.41732) + : Math.ceil((value % 255) * 1.41732) + case 'IS3': + return Number((360 / 255) * anlogValue).toFixed(0); + case 'IS4': + return (value > 0) + ? Math.floor(value / 255) + : Math.ceil(value / 255); + default: + return Lang.template.technicpowerlite_item_nothing; + + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_infinite_transform_input(%1, %2, %3)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 멀티키 센서 %1의 %2 + technicpowerlite_is_multi_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'technicpowerlite_dropdown_multikey_key', + }, + ], + type: 'technicpowerlite_is_multi_sensor', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicPowerLite.getMultiKeyValue(script.getStringValue('PARAM1')); + return (Entry.ProboTechnicPowerLite.InputData.Analog[key] >> value) & 0x01; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.is_multi_sensor(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 분배 스위치 %1의 %2 + technicpowerlite_is_multi_switch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'technicpowerlite_dropdown_multikey_key', + }, + ], + type: 'technicpowerlite_is_multi_switch', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key0 = Entry.ProboTechnicPowerLite.getAnalogKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicPowerLite.getMultiKeyValue(script.getStringValue('PARAM1')); + const analog = Entry.ProboTechnicPowerLite.InputData.Analog[key0]; + const multySwitch = Entry.ProboTechnicPowerLite.MultiSwitch; + + for (let i = 0; i < 8; i++) { + const key = 'Key' + (i + 1).toString(); + if (multySwitch[key].Min <= analog && analog <= multySwitch[key].Max) { + return (value === i); + } + } + + return false; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.is_multi_switch(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 확장 디지털 입력 %1 의 %2 + technicpowerlite_is_extension_digital_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'technicpowerlite_dropdown_extension_digital_key', + }, + ], + type: 'technicpowerlite_is_extension_digital_input', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAxisKey(script.getStringValue('PARAM0'), 'X'); + const shift = Entry.ProboTechnicPowerLite.getExtentionDigitalValue(script.getStringValue('PARAM1')); + const value = Entry.ProboTechnicPowerLite.InputData.Acceler[key]; + return ((value >> shift) === 1); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.is_extension_digital_input(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 확장 아날로그 입력 %1 의 %2 + technicpowerlite_get_extension_analog_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_analog_key', + }, + { + type: 'technicpowerlite_dropdown_extension_analog_key', + }, + ], + type: 'technicpowerlite_get_extension_analog_input', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getAxisKey( + script.getStringValue('PARAM0'), + Entry.ProboTechnicPowerLite.getExtentionAnalogKey(script.getStringValue('PARAM1')) + ); + const value = Entry.ProboTechnicPowerLite.InputData.Acceler[key]; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_extension_analog_input(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // EEPROM %1 주소의 값 호출하기 %2 + technicpowerlite_set_eeprom_call: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['0'] + }, + null + ], + type: 'technicpowerlite_set_eeprom_call', + }, + paramsKeyMap: { + ADDRESS: 0, + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const address = script.getNumberValue('ADDRESS', script); + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const ms = 50; + const fps = Entry.FPS || 60; + + Entry.ProboTechnicPowerLite.EEPROM.Count = Entry.ProboTechnicPowerLite.InputData.EEPROM.EC; + Entry.ProboTechnicPowerLite.RemoteData['EEPR4'] = 0x40; + Entry.ProboTechnicPowerLite.RemoteData['EEPR3'] = address; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicPowerLite.EEPROM.Buff = + (Entry.ProboTechnicPowerLite.InputData.EEPROM.EEPR2 << 8) + + Entry.ProboTechnicPowerLite.InputData.EEPROM.EEPR1; + Entry.ProboTechnicPowerLite.RemoteData['EEPR4'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['EEPR3'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_eeprom_call(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // EEPROM 주소의 값 + technicpowerlite_get_eeprom_address_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + params: [], + events: {}, + def: { + type: 'technicpowerlite_get_eeprom_address_value', + }, + class: 'technicpowerlite_input', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const count = Entry.ProboTechnicPowerLite.EEPROM.Count; + + return (Entry.ProboTechnicPowerLite.InputData.EEPROM.EC != count) + ? Entry.ProboTechnicPowerLite.EEPROM.Buff + : 0; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.get_eeprom_address_value', + blockType: 'param', + textParams: [ null ], + }, + ], + }, + }, + + ///======================================================================================== + /// output block + ///======================================================================================== + // DC 모터 %1 을(를) %2 속도로 회전 %3 + technicpowerlite_set_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_dc_1_all_key', + }, + { + type: 'technicpowerlite_dropdown_velocity_key', + }, + null, + ], + type: 'technicpowerlite_set_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getDckey(script.getStringValue('PARAM0')); + const value = script.getNumberValue('PARAM1'); + + switch (key) { + case 'DC5': + Entry.ProboTechnicPowerLite.RemoteData['DC1'] = value; + Entry.ProboTechnicPowerLite.RemoteData['DC2'] = value; + break; + case 'DC6': + Entry.ProboTechnicPowerLite.RemoteData['DC3'] = value; + Entry.ProboTechnicPowerLite.RemoteData['DC4'] = value; + break; + case 'DC7': + Entry.ProboTechnicPowerLite.RemoteData['DC1'] = value; + Entry.ProboTechnicPowerLite.RemoteData['DC2'] = value; + Entry.ProboTechnicPowerLite.RemoteData['DC3'] = value; + Entry.ProboTechnicPowerLite.RemoteData['DC4'] = value; + break; + default: + Entry.ProboTechnicPowerLite.RemoteData[key] = value; + break; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_dc_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 서보 모터 %1 의 위치를 %2 로 이동 %3 + technicpowerlite_set_servo_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_port_1_4_key', + }, + { + type: 'technicpowerlite_dropdown_servo_position_key', + }, + null, + ], + type: 'technicpowerlite_set_servo_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getServoKey(script.getStringValue('PARAM0')); + const value = script.getNumberValue('PARAM1'); + Entry.ProboTechnicPowerLite.RemoteData[key] = Math.min(Math.max(value, 0), 100); + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_servo_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // S 모터 %1 을(를) %2 속도로 회전 %3 + technicpowerlite_set_s_dc_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_port_1_4_key', + }, + { + type: 'technicpowerlite_dropdown_velocity_key', + }, + null, + ], + type: 'technicpowerlite_set_s_dc_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getServoKey(script.getStringValue('PARAM0')); + const speed = script.getNumberValue('PARAM1'); + const value = Math.min(Math.max(speed, -20), 20) + 148; + + switch (key) { + case 'Servo5': + Entry.ProboTechnicPowerLite.RemoteData['Servo1'] = value; + Entry.ProboTechnicPowerLite.RemoteData['Servo2'] = value; + break; + case 'Servo6': + Entry.ProboTechnicPowerLite.RemoteData['Servo3'] = value; + Entry.ProboTechnicPowerLite.RemoteData['Servo4'] = value; + break; + default: + Entry.ProboTechnicPowerLite.RemoteData[key] = value; + break; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_s_dc_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 출력핀 %1 을(를) %2 %3 + technicpowerlite_set_port_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_port_1_4_key', + }, + { + type: 'technicpowerlite_dropdown_on_off_key', + }, + null + ], + type: 'technicpowerlite_set_port_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getPortKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicPowerLite.getPortToggleValue(script.getStringValue('PARAM1')); + + Entry.ProboTechnicPowerLite.RemoteData[key] = value; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_port_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2 음표로 연주하기 %3 + technicpowerlite_play_melody_note_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_pitch_key', + }, + { + type: 'technicpowerlite_dropdown_note_key', + }, + null + ], + type: 'technicpowerlite_play_melody_note_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboTechnicPowerLite.getPitchValue(script.getNumberValue('PARAM0')); + const note = Entry.ProboTechnicPowerLite.getNoteKey(script.getStringValue('PARAM1')); + const ms = Entry.ProboTechnicPowerLite.Note[note]; + const fps = Entry.FPS || 60; + + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = pitch; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.play_melody_note_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2 초 동안 연주하기 %3 + technicpowerlite_play_melody_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_pitch_key', + }, + { + type: 'technicpowerlite_dropdown_time_1_key', + }, + null + ], + type: 'technicpowerlite_play_melody_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const pitch = Entry.ProboTechnicPowerLite.getPitchValue(script.getNumberValue('PARAM0')); + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = pitch; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.play_melody_sec_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) 연주하기 %2 + technicpowerlite_play_melody_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_pitch_key', + }, + null + ], + type: 'technicpowerlite_play_melody_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const pitch = Entry.ProboTechnicPowerLite.getPitchValue(script.getNumberValue('PARAM0')); + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = pitch >> 8; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = pitch; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.play_melody_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 값을(를) %2 초 동안 연주하기 %3 + technicpowerlite_play_value_sec_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + { + type: 'technicpowerlite_dropdown_time_1_key', + }, + null + ], + type: 'technicpowerlite_play_value_sec_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const melody = script.getNumberValue('PARAM0'); + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = melody & 0xff; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = 0; + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.play_melody_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 1 값을(를) 연주하기 %2 + technicpowerlite_play_value_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 35391 ], + }, + null + ], + type: 'technicpowerlite_play_value_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const melody = script.getNumberValue('PARAM0'); + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = melody & 0xff; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.play_melody_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 을(를) %2초 간격으로 재생하기 %3 + technicpowerlite_play_melody_track_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_melody_key', + }, + { + type: 'technicpowerlite_dropdown_time_2_key', + }, + null + ], + type: 'technicpowerlite_play_melody_track_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + function getTrackStep(track,script){ + if(!script.isStart){ + script.isStart = true; + script.trackStep = 0; + } + else { + script.trackStep++; + } + const sec = script.getNumberValue('PARAM1'); + const fps = Entry.FPS || 60; + const melody = Entry.ProboTechnicPowerLite.Track[track][script.trackStep]; + + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = (melody >> 8) & 0xff; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = melody & 0xff; + script.timeFlag = 1; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * sec * 1000 + ); + } + const TR = Entry.ProboTechnicPowerLite.getMelodyValue( + script.getStringValue('PARAM0') + ); + if (!script.isStart) { + switch(TR) { + case 0 : + script.maxStep = 6; + break; + case 1 : + script.maxStep = 7; + break; + case 2 : + script.maxStep = 3; + break; + case 3 : + script.maxStep = 3; + break; + } + getTrackStep(TR,script); + return script; + } else if (script.timeFlag == 1) { + return script; + } else if (script.trackStep < script.maxStep){ + getTrackStep(TR,script); + return script; + } else { + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = 0; + + delete script.trackStep; + delete script.maxStep; + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.play_melody_track_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 멜로디 중지 %1 + technicpowerlite_play_melody_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ null ], + type: 'technicpowerlite_play_melody_off', + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + Entry.ProboTechnicPowerLite.RemoteData['MEL2'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['MEL1'] = 0; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.play_melody_track_output', + textParams: [ null ], + }, + ], + }, + }, + // RGB LED %1 을(를) %2 으로 켜기 %3 + technicpowerlite_set_rgbled_on_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_port_1_4_key', + }, + { + type: 'technicpowerlite_dropdown_rgb_color_key', + }, + null + ], + type: 'technicpowerlite_set_rgbled_on_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicPowerLite.getRgbToggleValue(script.getStringValue('PARAM1')); + Entry.ProboTechnicPowerLite.RemoteData[key] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_rgbled_on_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 을(를) 끄기 %2 + technicpowerlite_set_rgbled_off_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_port_1_4_key', + }, + null + ], + type: 'technicpowerlite_set_rgbled_off_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicPowerLite.getRgbToggleValue('0'); + Entry.ProboTechnicPowerLite.RemoteData[key] = value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_rgbled_off_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 %2 으로 %3 초 간격 %4 + technicpowerlite_set_rgbled_flashing_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_port_1_4_key', + }, + { + type: 'technicpowerlite_dropdown_rgb_color_key', + }, + { + type: 'technicpowerlite_dropdown_time_3', + }, + null + ], + type: 'technicpowerlite_set_rgbled_flashing_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + PARAM2: 2, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getServoKey(script.getStringValue('PARAM0')); + const value = Entry.ProboTechnicPowerLite.getRgbTwinkleValue( + script.getStringValue('PARAM1'), + script.getNumberValue('PARAM2') + ); + Entry.ProboTechnicPowerLite.RemoteData[key] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_rgbled_flashing_output(%1, %2, %3)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // RGB LED %1 을(를) %2 으로 디밍 %3 + technicpowerlite_set_rgbled_dimming_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'technicpowerlite_dropdown_port_1_4_key', + }, + { + type: 'technicpowerlite_dropdown_rgb_color_key', + }, + null + ], + type: 'technicpowerlite_set_rgbled_dimming_output', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const key = Entry.ProboTechnicPowerLite.getServoKey(script.getStringValue('PARAM0')); + const color = Entry.ProboTechnicPowerLite.getRgbDimmingValue(script.getStringValue('PARAM1')); + Entry.ProboTechnicPowerLite.RemoteData[key] = color; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_rgbled_dimming_output(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // FND를 %1 (으)로 설정 %2 + technicpowerlite_set_fnd_output: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ], + }, + null + ], + type: 'technicpowerlite_set_fnd_output', + }, + paramsKeyMap: { + PARAM0: 0, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const value = script.getNumberValue('PARAM0'); + Entry.ProboTechnicPowerLite.RemoteData['FND'] = value; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_fnd_output(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // FND 끄기 %1 + technicpowerlite_set_fnd_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + null + ], + type: 'technicpowerlite_set_fnd_off', + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + Entry.ProboTechnicPowerLite.RemoteData['FND'] = 100; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_fnd_off', + textParams: [ null ], + }, + ], + }, + }, + // EEPROM %1 주소에 %2 값 설정하기 %3 + technicpowerlite_set_eeprom_write: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ] + }, + { + type: 'number', + params: [ 0 ] + }, + null, + ], + type: 'technicpowerlite_set_eeprom_write', + }, + paramsKeyMap: { + PARAM0: 0, + PARAM1: 1, + }, + class: 'technicpowerlite_output', + isNotFor: ['ProboTechnicPowerLite'], + func: function(sprite, script) { + const address = script.getNumberValue('PARAM0'); + const value = script.getNumberValue('PARAM1'); + + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + + const ms = 50; + const fps = Entry.FPS || 60; + + Entry.ProboTechnicPowerLite.RemoteData['EEPR4'] = 0x80; + Entry.ProboTechnicPowerLite.RemoteData['EEPR3'] = address; + Entry.ProboTechnicPowerLite.RemoteData['EEPR2'] = (value >> 8) & 0xff; + Entry.ProboTechnicPowerLite.RemoteData['EEPR1'] = value & 0xff; + Entry.TimeWaitManager.add( + script.block.id, + function() { + script.timeFlag = 0; + }, + 60 / fps * ms + ); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + Entry.ProboTechnicPowerLite.RemoteData['EEPR4'] = 0x40; + Entry.ProboTechnicPowerLite.RemoteData['EEPR3'] = address; + Entry.ProboTechnicPowerLite.RemoteData['EEPR2'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['EEPR1'] = 0; + + setTimeout(function() { + Entry.ProboTechnicPowerLite.RemoteData['EEPR4'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['EEPR3'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['EEPR2'] = 0; + Entry.ProboTechnicPowerLite.RemoteData['EEPR1'] = 0; + }, 100); + + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + }, + syntax: { + js: [], + py: [ + { + syntax: 'ProboTechnicPowerLite.set_eeprom_write(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + }; // getBlock() return; + } + })(); +})(); + +module.exports = Entry.ProboTechnicPowerLite; \ No newline at end of file diff --git a/src/playground/blocks/hardwareLite/metadata_alux_teachnic_power_lite.json b/src/playground/blocks/hardwareLite/metadata_alux_teachnic_power_lite.json new file mode 100644 index 0000000000..f7fc6d89b5 --- /dev/null +++ b/src/playground/blocks/hardwareLite/metadata_alux_teachnic_power_lite.json @@ -0,0 +1,9 @@ +{ + "name": "ProboTechnicPowerLite", + "version": "1.0.0", + "type": "hardware", + "title": "프로보 테크닉(파워)", + "description": "에이럭스", + "imageName": "alux_technic_power_lite.png", + "moduleId": "630201" +} From 17fd6055313c3ed47aae96431bd4c72e0d51d003 Mon Sep 17 00:00:00 2001 From: hakueon Date: Mon, 14 Apr 2025 16:42:56 +0900 Subject: [PATCH 08/12] =?UTF-8?q?NemoLite=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/hw_lite/alux_nemo_lite.png | Bin 0 -> 26121 bytes .../hardwareLite/block_alux_nemo_lite.js | 4464 +++++++++++++++++ .../hardwareLite/metadata_alux_nemo_lite.json | 9 + 3 files changed, 4473 insertions(+) create mode 100644 images/hw_lite/alux_nemo_lite.png create mode 100644 src/playground/blocks/hardwareLite/block_alux_nemo_lite.js create mode 100644 src/playground/blocks/hardwareLite/metadata_alux_nemo_lite.json diff --git a/images/hw_lite/alux_nemo_lite.png b/images/hw_lite/alux_nemo_lite.png new file mode 100644 index 0000000000000000000000000000000000000000..928a206a9b9bee503191db4eb97f8da1ec7f60da GIT binary patch literal 26121 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 { + Entry.engine.fireEvent('nemolite_event_button'); + }, + EVENT_INTERVAL, + eventSetting + ); + this.motionEvent = _throttle( + () => { + Entry.engine.fireEvent('nemolite_event_motion'); + } + , + EVENT_INTERVAL, + eventSetting + ); + + this.qRear = 0; + this.qFront = 0; + this.qSize = 128; + this.qBuffer = new Uint8Array(this.qSize + 2).fill(-1); + this.receivedPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); + this.sendPacket = new Uint8Array(SEND_PACKET_LENGTH).fill(0); + this.textPacket = new Uint8Array(0).fill(0); + this.pLength = 0; // packet length + this.process = false; // packet process + + this.version = 0; + this.sendFlag = true; + + this.soundKeyArray = [30578, 28861, 27241, 25713, 24270, 22908, 21622, 20408, 19263, 18182, 17161, 16198]; + this.sendIndex = { + cmd0: 0, + cmd1: 1, + size: 2, + led7x1: 3, + led7x2: 4, + led7x3: 5, + led7x4: 6, + led7x5: 7, + led7x6: 8, + led7x7: 9, + led7x8: 10, + led7x9: 11, + led7x10: 12, + led7x11: 13, + led7x12: 14, + led7x13: 15, + led7x14: 16, + ledMs0: 17, + ledMs1: 18, + ledPixel: 19, + ledSet: 20, + portSet: 21, + melody: 22, + buzzer0: 23, + buzzer1: 24, + ledRead: 25, + textSize: 26 // 텍스트 크기는 따로 계산하여 입력한다. + }; + this.receivedIndex = { + cmd0: 0, + cmd1: 1, + size: 2, + accelAx0: 3, + accelAx1: 4, + accelAy0: 5, + accelAy1: 6, + accelAz0: 7, + accelAz1: 8, + accelALi: 9, // Linear + accelD: 10, // Motion + illuminance: 11, + extensionAnalog: 12, + extensionDigital: 13, + switchAnalog1: 14, + switchAnalog2: 15, + switchAnalog3: 16, + switchAnalog4: 17, + switchDigitalAB: 18, + switchDigitalCD: 19, + ledRead: 20, + compass: 21, + timeCheck: 22, + checksum: 23 + }; + + this.blockMenuBlocks = [ + 'nemolite_dropdown_button', + 'nemolite_dropdown_button_now_state', + 'nemolite_dropdown_button_state_question', + 'nemolite_dropdown_motion', + 'nemolite_dropdown_coordinate_acceleration', + 'nemolite_dropdown_led_icon', + 'nemolite_dropdown_switch', + 'nemolite_dropdown_melody', + 'nemolite_dropdown_keyboard', + 'nemolite_dropdown_extension_sensor', + 'nemolite_dropdown_sensor_mode', + 'nemolite_dropdown_direction', + 'nemolite_dropdown_index_0_5', + 'nemolite_dropdown_index_1_5', + 'nemolite_dropdown_led_columm', + + 'nemolite_title_namo_input', + 'nemolite_when_button_state', + 'nemolite_when_motion_sensing', + 'nemolite_is_button_state', + 'nemolite_is_motion_sensing', + 'nemolite_is_led_state_value', + 'nemolite_get_button_analog_value', + 'nemolite_get_acceleration_value', + 'nemolite_get_illuminance_value', + 'nemolite_get_convert_value', + + 'nemolite_title_namo_output', + 'nemolite_set_display_led_icon', + 'nemolite_set_display_led_custom_columm', + 'nemolite_set_display_led_text', + 'nemolite_set_delete_all_led', + 'nemolite_set_toggle_led_pixel', + 'nemolite_set_play_melody', + 'nemolite_set_play_melody_until_the_end', + 'nemolite_set_play_note', + 'nemolite_set_play_note_for_seconds', + 'nemolite_set_stop_all_sound', + + 'nemolite_title_namo_extension', + 'nemolite_ext_set_extension', + 'nemolite_ext_set_extension_value', + 'nemolite_ext_is_extension_state', + 'nemolite_ext_get_extension_anlog_value', + 'nemolite_ext_get_extension_custom_value', + 'nemolite_ext_set_compass_value', + 'nemolite_ext_get_compass_analog_value', + 'nemolite_ext_get_compass_custom_value', + 'memolite_ext_is_compass_direction', + ]; + } + //endregion + + //region setlanguage + setLanguage() { + return { + ko: { + template: { + nemolite_line_emtpy: ' ', + nemolite_namo_input: '네모 입력', + nemolite_namo_output: '네모 출력', + nemolite_namo_extension: '네모 확장', + + nemolite_item_s1: 'S1', + nemolite_item_s2: 'S2', + nemolite_item_s3: 'S3', + nemolite_item_s4: 'S4', + nemolite_item_motion_1: '앞으로 기울임', + nemolite_item_motion_2: '뒤로 기울임', + nemolite_item_motion_3: '왼쪽으로 기울임', + nemolite_item_motion_4: '오른쪽으로 기울임', + nemolite_item_motion_5: '위로 놓음', + nemolite_item_motion_6: '아래로 놓음', + nemolite_item_motion_7: '세워 놓음', + nemolite_item_motion_8: '충격 받음', + nemolite_item_smile: '웃음', + nemolite_item_not_much: '별로', + nemolite_item_good: '좋음', + nemolite_item_bad: '나쁨', + nemolite_item_wink: '윙크', + nemolite_item_cry: '울음', + nemolite_item_absurd: '어이없음', + nemolite_item_peck: '뽀뽀', + nemolite_item_arrow_1: '화살표 1', + nemolite_item_arrow_2: '화살표 2', + nemolite_item_arrow_3: '화살표 3', + nemolite_item_arrow_4: '화살표 4', + nemolite_item_arrow_5: '화살표 5', + nemolite_item_arrow_6: '화살표 6', + nemolite_item_arrow_7: '화살표 7', + nemolite_item_arrow_8: '화살표 8', + nemolite_item_spade: '스페이드', + nemolite_item_club: '클럽', + nemolite_item_diamond: '다이아몬드', + nemolite_item_heart: '하트', + nemolite_item_circle: '원', + nemolite_item_x: '엑스', + nemolite_item_triangle: '세모', + nemolite_item_square: '네모', + nemolite_item_note_1: '음표 1', + nemolite_item_note_2: '음표 2', + nemolite_item_note_3: '음표 3', + nemolite_item_dice_1: '주사위 1', + nemolite_item_dice_2: '주사위 2', + nemolite_item_dice_3: '주사위 3', + nemolite_item_dice_4: '주사위 4', + nemolite_item_dice_5: '주사위 5', + nemolite_item_dice_6: '주사위 6', + nemolite_item_first: '첫번째', + nemolite_item_second: '두번째', + nemolite_item_third: '세번째', + nemolite_item_fourth: '네번째', + nemolite_item_fifth: '다섯번째', + nemolite_item_sixth: '여섯번째', + nemolite_item_seventh: '일곱번째', + nemolite_item_eighth: '여덟번째', + nemolite_item_ninth: '아홉번째', + nemolite_item_tenth: '열번째', + nemolite_itme_eleventh: '열한번째', + nemolite_item_twelfth: '열두번째', + nemolite_item_thirteenth: '열세번째', + nemolite_itme_fourteenth: '열네번째', + nemolite_item_is_press: '눌려 있을 때', + nemolite_item_is_fall: '눌렀을 때', + nemolite_item_is_rise: '뗐을 때', + nemolite_item_is_both: '누르거나 뗐을 때', + nemolite_item_has_press: '눌려 있는가', + nemolite_item_has_fall: '눌렀는가', + nemolite_item_has_rise: '뗐는가', + nemolite_item_has_both: '누르거나 뗐는가', + nemolite_item_axis_x: 'X축', + nemolite_item_axis_y: 'Y축', + nemolite_item_axis_z: 'Z축', + nemolite_item_linear_acceleration: '선형 가속도', + nemolite_item_off_text: '끄기', + nemolite_item_on_text: '켜기', + nemolite_item_off_icon: '□', + nemolite_item_on_icon: '■', + nemolite_item_toggle: '토글', + nemolite_item_do_re_mi_song: '도레미송', + nemolite_item_an_island_baby: '섬집아기', + nemolite_item_twinkle_twinkle_little_star: '작은별', + nemolite_item_spring_in_my_hometown: '고향의 봄', + nemolite_item_for_elise: '엘리제를 위하여', + nemolite_item_celebrated_chop_waltz: '젓가락 행진곡', + nemolite_item_happy_birthday_to_you: '생일 축하곡', + nemolite_item_lc: 'C(0)', + nemolite_item_lcs: 'C#(1)', + nemolite_item_ld: 'D(2)', + nemolite_item_lds: 'D#(3)', + nemolite_item_le: 'E(4)', + nemolite_item_lf: 'F(5)', + nemolite_item_lfs: 'F#(6)', + nemolite_item_lg: 'G(7)', + nemolite_item_lgs: 'G#(8)', + nemolite_item_la: 'A(9)', + nemolite_item_las: 'A#(10)', + nemolite_item_lb: 'B(11)', + nemolite_item_mc: 'C(12)', + nemolite_item_mcs: 'C#(13)', + nemolite_item_md: 'D(14)', + nemolite_item_mds: 'D#(15)', + nemolite_item_me: 'E(16)', + nemolite_item_mf: 'F(17)', + nemolite_item_mfs: 'F#(18)', + nemolite_item_mg: 'G(19)', + nemolite_item_mgs: 'G#(20)', + nemolite_item_ma: 'A(21)', + nemolite_item_mas: 'A#(22)', + nemolite_item_mb: 'B(23)', + nemolite_item_hc: 'C(24)', + nemolite_item_switch: '스위치', + nemolite_item_infrared_ray: '적외선', + nemolite_item_magnet: '자석', + nemolite_item_rotary: '회전', + nemolite_item_illuminance: '조도', + nemolite_item_sound: '소리', + nemolite_item_tilt: '기울기', + nemolite_item_pressure: '압력', + nemolite_item_heart_rate: '심박', + nemolite_item_touch: '터치', + nemolite_item_value: '값', + nemolite_item_angle: '각도', + nemolite_item_absolute_angle: '절대 각도', + nemolite_item_turn_value: '회전 수', + nemolite_item_east: '동쪽', + nemolite_item_west: '서쪽', + nemolite_item_south: '남쪽', + nemolite_item_north: '북쪽', + + nemolite_event_button_state: '%1 %2 버튼을 %3', + nemolite_event_motion: '%1 %2 이 감지되었을 때', + nemolite_is_button_state: '%1 버튼이 %2 ?', + nemolite_is_motion_sensing: '%1 이 감지되었는가?', + nemolite_is_led_state_value: 'LED X: %1 Y: %2 상태값', + nemolite_get_button_analog_value: '%1 버튼의 아날로그 값', + nemolite_get_acceleration_value: '가속도 센서 %1 의 값', + nemolite_get_illuminance_value: '조도 센서의 값', + nemolite_get_convert_value: '%1 의 값 %2 ~ %3 을 %4 ~ %5 으(로) 변환', + + nemolite_set_display_led_icon: 'LED 아이콘 %1 을 %2 속도로 출력 %3', + nemolite_set_display_led_custom_columm: 'LED %1 열의 %2%3%4%5%6%7%8 을 %9 속도로 출력 %10', + nemolite_set_display_led_text: 'LED %1 문자열을 %2 속도로 출력 %3', + nemolite_set_delete_all_led: 'LED 출력 지우기 %1', + nemolite_set_toggle_led_pixel: 'LED X: %1 Y: %2 %3 %4', + nemolite_set_play_melody: '멜로디 %1 재생하기 %2', + nemolite_set_play_melody_until_the_end: '멜로디 %1 끝까지 재생하기 %2', + nemolite_set_play_note: '%1 음을 재생하기 %2', + nemolite_set_play_note_for_seconds: '%1 음을 %2 초 동안 재생하기 %3', + nemolite_set_stop_all_sound: '모든 소리 정지 %1', + + nemolite_ext_set_extension: '확장센서를 %1 (으)로 설정 %2', + nemolite_ext_set_extension_value: '확장센서를 %1 값으로 정하기', + nemolite_ext_is_extension_state: '확장센서 %1 ? %2', + nemolite_ext_get_extension_anlog_value: '확장센서의 아날로그 값 %1', + nemolite_ext_get_extension_custom_value: '확장센서의 %1', + nemolite_ext_set_compass_value: '나침반센서를 %1 값으로 정하기', + nemolite_ext_get_compass_analog_value: '나침반센서의 아날로그 값 %1', + nemolite_ext_get_compass_custom_value: '나침반센서의 %1', + memolite_ext_is_compass_direction: '나침반센서의 방향이 %1 인가 ?', + }, + Device: { + probo_nemolite_lite: '네모', + }, + Menus: { + probo_nemolite_lite: '네모', + }, + }, + en: { + template: { + nemolite_line_emtpy: ' ', + nemolite_namo_input: 'NAMO INPUT', + nemolite_namo_output: 'NAMO OUTPUT', + nemolite_namo_extension: 'NAMO EXTENSION', + + nemolite_item_s1: 'S1', + nemolite_item_s2: 'S2', + nemolite_item_s3: 'S3', + nemolite_item_s4: 'S4', + nemolite_item_motion_1: 'Tilting forward', + nemolite_item_motion_2: 'Tilting back', + nemolite_item_motion_3: 'Tilting to the left', + nemolite_item_motion_4: 'Tilting to the right', + nemolite_item_motion_5: 'Put it up', + nemolite_item_motion_6: 'Put it down', + nemolite_item_motion_7: 'Standing up', + nemolite_item_motion_8: 'Impacted', + nemolite_item_smile: 'Smile', + nemolite_item_not_much: 'Not much', + nemolite_item_good: 'Good', + nemolite_item_bad: 'Bad', + nemolite_item_wink: 'Wink', + nemolite_item_cry: 'Cry', + nemolite_item_absurd: 'Absurd', + nemolite_item_peck: 'Peck', + nemolite_item_arrow_1: 'Arrow 1', + nemolite_item_arrow_2: 'Arrow 2', + nemolite_item_arrow_3: 'Arrow 3', + nemolite_item_arrow_4: 'Arrow 4', + nemolite_item_arrow_5: 'Arrow 5', + nemolite_item_arrow_6: 'Arrow 6', + nemolite_item_arrow_7: 'Arrow 7', + nemolite_item_arrow_8: 'Arrow 8', + nemolite_item_spade: 'Spade', + nemolite_item_club: 'Club', + nemolite_item_diamond: 'Diamond', + nemolite_item_heart: 'Heart', + nemolite_item_circle: 'Circle', + nemolite_item_x: 'X', + nemolite_item_triangle: 'Triangle', + nemolite_item_square: 'Square', + nemolite_item_note_1: 'note 1', + nemolite_item_note_2: 'note 2', + nemolite_item_note_3: 'note 3', + nemolite_item_dice_1: 'dice 1', + nemolite_item_dice_2: 'dice 2', + nemolite_item_dice_3: 'dice 3', + nemolite_item_dice_4: 'dice 4', + nemolite_item_dice_5: 'dice 5', + nemolite_item_dice_6: 'dice 6', + nemolite_item_first: 'first', + nemolite_item_second: 'second', + nemolite_item_third: 'third', + nemolite_item_fourth: 'fourth', + nemolite_item_fifth: 'fifth', + nemolite_item_sixth: 'sixth', + nemolite_item_seventh: 'seventh', + nemolite_item_eighth: 'eighth', + nemolite_item_ninth: 'ninth', + nemolite_item_tenth: 'tenth', + nemolite_itme_eleventh: 'eleventh', + nemolite_item_twelfth: 'twelfth', + nemolite_item_thirteenth: 'thirteenth', + nemolite_itme_fourteenth: 'fourteenth', + nemolite_item_is_press: 'is pressing', + nemolite_item_is_fall: 'pressed', + nemolite_item_is_rise: 'released', + nemolite_item_is_both: 'pressed or released', + nemolite_item_has_press: 'has be pressing', + nemolite_item_has_fall: 'has pressed', + nemolite_item_has_rise: 'has released', + nemolite_item_has_both: 'has pressed or has released', + nemolite_item_axis_x: 'X axis', + nemolite_item_axis_y: 'Y axis', + nemolite_item_axis_z: 'Z axis', + nemolite_item_linear_acceleration: 'linear acceleration', + nemolite_item_off_text: 'off', + nemolite_item_on_text: 'on', + nemolite_item_off_icon: '□', + nemolite_item_on_icon: '■', + nemolite_item_toggle: 'toggle', + nemolite_item_do_re_mi_song: 'Do Re Mi Song', + nemolite_item_an_island_baby: 'An Island Baby', + nemolite_item_twinkle_twinkle_little_star: 'Twinkle Twinkle Little Star', + nemolite_item_spring_in_my_hometown: 'Spring in My Hometwon', + nemolite_item_for_elise: 'For Elise', + nemolite_item_celebrated_chop_waltz: 'Celebrate Chop Waltz', + nemolite_item_happy_birthday_to_you: 'Happy Birthday To You', + nemolite_item_lc: 'C(0)', + nemolite_item_lcs: 'C#(1)', + nemolite_item_ld: 'D(2)', + nemolite_item_lds: 'D#(3)', + nemolite_item_le: 'E(4)', + nemolite_item_lf: 'F(5)', + nemolite_item_lfs: 'F#(6)', + nemolite_item_lg: 'G(7)', + nemolite_item_lgs: 'G#(8)', + nemolite_item_la: 'A(9)', + nemolite_item_las: 'A#(10)', + nemolite_item_lb: 'B(11)', + nemolite_item_mc: 'C(12)', + nemolite_item_mcs: 'C#(13)', + nemolite_item_md: 'D(14)', + nemolite_item_mds: 'D#(15)', + nemolite_item_me: 'E(16)', + nemolite_item_mf: 'F(17)', + nemolite_item_mfs: 'F#(18)', + nemolite_item_mg: 'G(19)', + nemolite_item_mgs: 'G#(20)', + nemolite_item_ma: 'A(21)', + nemolite_item_mas: 'A#(22)', + nemolite_item_mb: 'B(23)', + nemolite_item_hc: 'C(24)', + nemolite_item_switch: 'switch', + nemolite_item_infrared_ray: 'infrared ray', + nemolite_item_magnet: 'magnet', + nemolite_item_rotary: 'rotary', + nemolite_item_illuminance: 'illuminance', + nemolite_item_sound: 'sound', + nemolite_item_tilt: 'tilt', + nemolite_item_pressure: 'pressure', + nemolite_item_heart_rate: 'heart rate', + nemolite_item_touch: 'touch', + nemolite_item_value: 'value', + nemolite_item_angle: 'angle', + nemolite_item_absolute_angle: 'absolute angle', + nemolite_item_turn_value: 'rotary value', + nemolite_item_east: 'East', + nemolite_item_west: 'West', + nemolite_item_south: 'South', + nemolite_item_north: 'North', + + nemolite_event_button_state: 'When %1 button %2', + nemolite_event_motion: 'When %1 motion is detected', + nemolite_is_button_state: 'Is %1 button %2 ?', + nemolite_is_motion_sensing: 'Is %1 motion detected', + nemolite_is_led_state_value: ' LED X: %1 Y: %2 state', + nemolite_get_button_analog_value: 'Analog value of %1 button', + nemolite_get_acceleration_value: 'Acceleration sensor %1 value', + nemolite_get_illuminance_value: 'Value of illuminance sensor', + nemolite_get_convert_value: 'change the value of %1 from %2 ~ %3 to %4 ~ %5', + + nemolite_set_display_led_icon: 'LED icon %1 output %2 speed %3', + nemolite_set_display_led_custom_columm: 'LED %1 columm %2%3%4%5%6%7%8 at %9 speed %10', + nemolite_set_display_led_text: 'LED %1 string output %2 speed %3', + nemolite_set_delete_all_led: 'Clear LED output %1', + nemolite_set_toggle_led_pixel: 'LED X: %1 Y: %2 %3 %4', + nemolite_set_play_melody: 'Play melody %1 %2', + nemolite_set_play_melody_until_the_end: 'melody %1 play to the end %2', + nemolite_set_play_note: 'Playing note %1 %2', + nemolite_set_play_note_for_seconds: 'Play note %1 for %2 second(s) %3', + nemolite_set_stop_all_sound: 'Stop all sound %1', + + nemolite_ext_set_extension: 'Extension type set %1 %2', + nemolite_ext_set_extension_value: 'Extension sensor set %1 value ? %2', + nemolite_ext_is_extension_state: 'Is extended sensor %1', + nemolite_ext_get_extension_anlog_value: 'Value of extended sensor %1', + nemolite_ext_get_extension_custom_value: 'Exansion sensor value of %1', + nemolite_ext_set_compass_value: 'Compass sensor value Set %1', + nemolite_ext_get_compass_analog_value: 'Value of compass sensor %1', + nemolite_ext_get_compass_custom_value: 'compass sensor value of %1', + memolite_ext_is_compass_direction: 'Does the rotation sensor point %1 ?', + }, + Device: { + probo_nemolite_lite: 'Nemo', + }, + Menus: { + probo_nemolite_lite: 'Nemo', + }, + }, + }; + } + //endregion + + // 시작하기 및 정지하기 시 기기상태를 초기화한다. + //region setZero + setZero() { + this.sendPacket = new Uint8Array(SEND_PACKET_LENGTH).fill(0); + this.getData = { + accel: { + x: 0, + y: 0, + z: 0, + linear: 0 + }, + motion: { + front: 0, + back: 0, + left: 0, + right: 0, + up: 0, + down: 0, + standup: 0, + impact: 0, + }, + illuminance: 0, + extension: { + analog: 0, + digital: 0, // logic + fall: 0, // falling edge + rise: 0, // rising edge + both: 0 // change edge + }, + switch: { + s1: { + analog: 0, + digital: 0, + fall: 0, + rise: 0, + both: 0, + }, + s2: { + analog: 0, + digital: 0, + fall: 0, + rise: 0, + both: 0, + }, + s3: { + analog: 0, + digital: 0, + fall: 0, + rise: 0, + both: 0, + }, + s4: { + analog: 0, + digital: 0, + fall: 0, + rise: 0, + both: 0, + } + }, + ledRead: { + state: 0, + count: 0, + }, + compass: 0, + timeCheck: { + led: 0, + sound: 0, + extCount: 0, + } + }; + + this.setData = { + ledColumm: { + pixel: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + speed: 0, + }, + ledPixel: { + index: 0, + state: 0, + }, + ledIcon: { + index: 0, + speed: 0, + }, + ledText: { + text: '', + speed: 0, + }, + ledClear: 1, + extension: 0, + melody: { + play: 0, + title: 0 + }, + note: { + play: 0, + pitch: 0 + }, + ledRead: 0, + }; + + this.lastData = { + ledColumm: { + pixel: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + speed: 0, + }, + ledIcon: { + index: 0, + speed: 0, + }, + ledRead: { + state: 0, + count: 0, + }, + ledText: { + text: '', + speed: 0, + }, + timeCheck: { + led: 0, + sound: 0, + extCount: 0, + }, + }; + + this.state = { + led: 0, + sound: 0, + note: 0, + soundBlockId: 0, + noteBlockId: 0, + extCount: 0, + }; + + this.extension = { + bias: 0, + value: 0, + angle: 0, + absolutAngle: 0, + turnCount: 0, + }; + + this.compass = { + lastAnalog: 0, + bias: 0, + value: 0, + angle: 0, + absolutAngle: 0, + absolutTurnCount: 0, + turnCount: 0, + direction: 0, + }; + + this.setZeroFlag = true; + + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + }; + } + //endregion + + // 하드웨어 연결 후 초기화한다. + //region initalHandshake + async initialHandshake() { + const modePacket = new Uint8Array(2).fill(0); + modePacket[0] = 0x63; + modePacket[1] = 0x36; + + while(true) { + const response = await Entry.hwLite.serial.sendAsyncWithThrottle(modePacket); + + if (response[0] !== NEMOLITE_INDEX) { + modePacket[0] = 0x24; + modePacket[1] = 0x42; + } else { + this.version = (response.length === 1) + ? 0 + : response[1]; + break; + } + await Entry.Utils.sleep(100); + } + + Entry.addEventListener('run', this.handleButtonEventInterval.bind(this)); + Entry.addEventListener('run', this.handleMotionlEventInterval.bind(this)); + Entry.addEventListener('beforeStop', clearInterval(this.buttonEventIntervalId)); + Entry.addEventListener('beforeStop', clearInterval(this.motionEventIntervalId)); + + this.setZero(); + + if (this.version === 0) { + const packet = await Entry.hwLite.serial.reader.read(); + this.version = packet.value[0]; + if (this.version !== RELEASE_VERSION) { + const ko = `펌웨어를 업데이트 하세요.\n`; + const en = `(Please, Update your firmware.)\n`; + const version = ` - 현재(now): v.${this.version}\n - 최신(latest): v.${RELEASE_VERSION}`; + alert(`${ko}${en}${version}`); + } + } + + return true; + } + //endregion + + // 디바이스에서 값을 읽어온다. + //region handleLocalData + handleLocalData(buffer) { + buffer.forEach(b => this.qEnqueue(b)); + + while(this.qCount() >= this.receivedPacket.length) { + if (!this.process) { + while(this.qCount() > 0) { + if (this.receivedPacket[0] !== 0xCD) { + this.receivedPacket[0] = this.qDequeue(); + } else if (this.receivedPacket[1] !== 0xDA) { + this.receivedPacket[1] = this.qDequeue(); + } else { + this.receivedPacket[2] = this.qDequeue(); + this.pLength = this.receivedPacket[2] + 3; + this.process = true; + break; + } + } + } + + if (this.process && (this.qCount() >= this.pLength)) { + for (let i = 3; i < this.pLength; i++) { + this.receivedPacket[i] = this.qDequeue(); + } + + if (this.receivedPacket[this.pLength - 1] === this.checksum(this.receivedPacket)) { + // 상태 확인 코드이므로 가장 먼저 해석 + this.parsingTimeCheck(this.receivedPacket); + + this.pasingAccelA(this.receivedPacket); + this.pasingAccelD(this.receivedPacket); + this.pasingIllumination(this.receivedPacket); + this.parsingExtensionAnalog(this.receivedPacket); + this.parsingExtensionDigital(this.receivedPacket); + this.pasingSwitchAnalog(this.receivedPacket); + this.parsingSwitchDigital(this.receivedPacket); + this.parsingLedRead(this.receivedPacket); + this.parsingCompass(this.receivedPacket); + } + + this.receivedPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); + this.process = false; + this.sendFlag = true; + this.pLength = 0; + + if (this.setZeroFlag) { + this.setZeroFlag = false; + } + } + } + + if (this.sendFlag) { + setTimeout( + () => { + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + this.sendFlag = false; + } + }, + SERIAL_INTERVAL + ); + }; + }//endregion + + //디바이스에 값을 쓴다. + //region requestLocalData + requestLocalData() { + if (this.sendFlag) { + const led = this.addLedClear(); + if (!led) { + this.addLedColumm(); + this.addLedPixel(); + this.addLedSet(); + this.addText(); + } + this.addSetExtension(); + this.addMelody(); + this.addBuzzer(); + this.addLedRead(); + + const packet = this.PreparePacket(); + const sendSize = this.sendPacket.length; + const textSize = this.textPacket.length; + + for (let i = 0; i < sendSize; i++) { + packet[i] = this.sendPacket[i]; + } + for (let i = 0; i < textSize; i++) { + const index = sendSize + i; + packet[index] = this.textPacket[i]; + } + packet[packet.length - 1] = this.checksum(packet); + + this.sendPacket = new Uint8Array(sendSize).fill(0); + this.textPacket = new Uint8Array(0).fill(0); + + return packet; + } + }//endregion + + qEnqueue(data) { + this.qBuffer[this.qRear] = data; + this.qRear = (this.qRear + 1) % this.qSize + } + + qDequeue() { + const data = this.qBuffer[this.qFront]; + this.qBuffer[this.qFront] = -1; + this.qFront = (this.qFront + 1) % this.qSize; + return data; + } + + qCount() { + return (this.qFront <= this.qRear) + ? (this.qRear - this.qFront) + : (this.qSize - this.qFront + this.qRear); + } + + handleButtonEventInterval() { + this.buttonEventIntervalId = setInterval(this.buttonEvent.bind(this), EVENT_INTERVAL); + } + + handleMotionlEventInterval() { + this.motionEventIntervalId = setInterval(this.motionEvent.bind(this), EVENT_INTERVAL); + } + + checksum(packet) { + let checker = 0; + const length = packet[2] + 2; + for(let i = 3; i < length; i++) { + checker += packet[i]; + } + return (checker & 0xFF); + } + + getMonitorPort() { + const monitor = { + AA1: this.device.switch.s1.analog, + AA2: this.device.switch.s2.analog, + AA3: this.device.switch.s3.analog, + AA4: this.device.switch.s4.analog, + } + + return { ...monitor }; + } + + pasingAccelA(buffer) { + for (let i = 0; i < 3; i++) { + const lowData = buffer[i * 2 + 3]; + const highData = buffer[i * 2 + 4]; + const temp = (lowData & 0x80) === 0x80 + ? (0x10000 - ((lowData << 8) | highData)) * -1 + : (lowData << 8) | highData; + const key = this.getAccelNameKey(i); + this.getData.accel[key] = temp / 10.0; + } + this.getData.accel.linear = buffer[this.receivedIndex.accelALi] + }; + + pasingAccelD(buffer) { + const data = buffer[this.receivedIndex.accelD]; + for (let i = 0; i < 8; i++) { + const key = this.getMotionNameKey(i); + this.getData.motion[key] = (data >> (7 - i)) & 0x01; + } + } + + pasingIllumination(buffer) { + this.getData.illuminance = buffer[this.receivedIndex.illuminance]; + } + + parsingExtensionAnalog(buffer) { + const analog = buffer[this.receivedIndex.extensionAnalog]; + + this.getData.extension.analog = analog; + + this.extension.value = analog + (this.state.extCount * 255) + this.extension.bias; + this.extension.angle = this.getConvertMap(this.extension.value % 255, 0, 255, 0, 360); + this.extension.absolutAngle = this.getConvertMap(analog, 0, 255, 0, 360); + this.extension.turnCount = Math.round(this.extension.value / 255); + } + + parsingExtensionDigital(buffer) { + for (let i = 0; i < 4; i++) { + const key = this.getButtonStateKey(i); + this.getData.extension[key] = (buffer[this.receivedIndex.extensionDigital] >> (7 - i)) & 0x01; + } + } + + pasingSwitchAnalog(buffer) { + for (let i = 0; i < 4; i++) { + const nameKey = this.getButtonNameKey(i); + this.getData.switch[nameKey].analog = buffer[this.receivedIndex.switchAnalog1 + i]; + } + } + + parsingSwitchDigital(buffer) { + for (let i = 0; i < 4; i++) { + const nameKey = this.getButtonNameKey(i); + const value = [ + (buffer[this.receivedIndex.switchDigitalAB] >> (i + 4)) & 0x01, + (buffer[this.receivedIndex.switchDigitalAB] >> i) & 0x01, + (buffer[this.receivedIndex.switchDigitalCD] >> (i + 4)) & 0x01, + (buffer[this.receivedIndex.switchDigitalCD] >> i) & 0x01 + ]; + for (let j = 0; j < 4; j++) { + const stateKey = this.getButtonStateKey(j); + this.getData.switch[nameKey][stateKey] = value[j]; + } + } + }; + + parsingLedRead(buffer) { + const state = (buffer[this.receivedIndex.ledRead] >> 7) & 0x01; + const counter = buffer[this.receivedIndex.ledRead] & 0x7F; + + if (this.lastData.ledRead.count != counter) { + this.getData.ledRead.state = state; + this.getData.ledRead.count = counter; + + this.lastData.ledRead.state = state; + this.lastData.ledRead.count = counter; + } + + }; + + parsingCompass(buffer) { + const analog = buffer[this.receivedIndex.compass]; + this.getData.compass = analog; + // 회전수를 먼저 구한다. + if (analog < this.compass.lastAnalog - 150) { + this.compass.absolutTurnCount++; + } else if (analog > this.compass.lastAnalog + 150) { + this.compass.absolutTurnCount--; + } + this.compass.value = analog + (this.compass.absolutTurnCount * 255) + this.compass.bias; + this.compass.angle = this.getConvertMap(this.compass.value % 255, 0, 255, 0, 360); + this.compass.absolutAngle = this.getConvertMap(analog, 0, 255, 0, 360); + this.compass.turnCount = Math.round(this.compass.value / 255); + if (35 <= analog && analog < 99) { + this.compass.direction = 0; // 동 + } else if (99 <= analog && analog < 163) { + this.compass.direction = 2; // 남 + } else if (163 <= analog && analog < 227) { + this.compass.direction = 1; // 서 + } else { // 227-34 + this.compass.direction = 3; // 북 + } + + this.compass.lastAnalog = analog; + }; + + parsingTimeCheck(buffer) { + const key = ['led', 'sound', 'extCount']; + + for (let i = 0; i < 3; i++) { + this.getData.timeCheck[key[i]] = (buffer[this.receivedIndex.timeCheck] >> (6 - (i * 2)) & 0x03); + + if (this.setZeroFlag) { + this.lastData.timeCheck[key[i]] = this.getData.timeCheck[key[i]]; + if (i === 2) { + this.state[key[i]] = 0; + } + } else { + if (this.getData.timeCheck[key[i]] !== this.lastData.timeCheck[key[i]]) { + if (i === 2) { + //+방향 일 때: 0->1->2->3->0->... + //-방향 일 때: 0->3->2->1->0->... + const diff = this.getData.timeCheck[key[i]] - this.lastData.timeCheck[key[i]]; + if (diff === 1 || diff === -3) { + this.state[key[i]]++; + } else if (diff === -1 || diff === 3) { + this.state[key[i]]--; + } + } else { + this.state[key[i]] = 0; + } + this.lastData.timeCheck[key[i]] = this.getData.timeCheck[key[i]]; + } + } + } + }; + + PreparePacket() { + const sendSize = this.sendPacket.length; + const textSize = this.textPacket.length; + const packetSize = sendSize + textSize + 1; + + this.sendPacket[0] = 0xAD; + this.sendPacket[1] = 0xDA; + this.sendPacket[2] = packetSize - 3; + + return new Uint8Array(packetSize).fill(0); + } + + addLedColumm() { + if (this.state.led === 'c'.charCodeAt()) { + let nextPage = false; + this.state.led = 2; + + for(let i = 0; i < 14; i++) { + const index = this.sendIndex.led7x1 + i; + this.sendPacket[index] = this.setData.ledColumm.pixel[i]; + if ((index > 6) && (this.sendPacket[index] > 0)) { + nextPage = true; + } + } + this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledColumm.speed >> 8) & 0x7F; + this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledColumm.speed & 0xFF; + + this.sendPacket[this.sendIndex.led7x1] |= 0x80; + if (nextPage) { + this.sendPacket[this.sendIndex.led7x8] |= 0x80; + } + + this.lastData.ledColumm.pixel = this.setData.ledColumm.pixel; + this.lastData.ledColumm.speed = this.setData.ledColumm.speed; + } + }; + + addLedClear() { + if (this.setData.ledClear === 1) { + this.setData.ledClear = 0; + this.sendPacket[this.sendIndex.led7x1] = 0x80; + return true; + } else { + return false; + } + } + + addLedPixel() { + const state = this.setData.ledPixel.state; + if (state) { + const index = this.setData.ledPixel.index; + this.sendPacket[this.sendIndex.ledPixel] = ((state & 0x03) << 6) | (index & 0x3F); + this.setData.ledPixel.index = 0; + this.setData.ledPixel.state = 0; + } + }; + + addLedSet() { + if (this.state.led === 'i'.charCodeAt()) { + this.state.led = 2; + this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledIcon.speed >> 8) & 0xFF; + this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledIcon.speed & 0xFF; + this.sendPacket[this.sendIndex.ledSet] = this.setData.ledIcon.index; + this.lastData.ledIcon.index = this.setData.ledIcon.index; + this.lastData.ledIcon.speed = this.setData.ledIcon.speed; + } + }; + + addSetExtension() { + this.sendPacket[this.sendIndex.portSet] = this.setData.extension; + }; + + addMelody() { + if (this.state.sound === 'm'.charCodeAt()) { + this.state.sound = 2; + this.sendPacket[this.sendIndex.melody] = (this.setData.melody.play << 7) | (this.setData.melody.title & 0x7F); + } + }; + + addBuzzer() { + if (this.state.note === 1) { + this.state.note = 2; + const pitch = this.setData.note.pitch; + if (0 <= pitch && pitch <= 47) { + const n = (pitch / 12) & 0xFF; + const v = pitch % 12; + let r = 2; + for (let i = 0; i < n; i++) { + r *= 2; + } + const hertz = this.soundKeyArray[v] / r; + this.sendPacket[this.sendIndex.buzzer0] = (this.setData.note.play << 7) | ((hertz >> 8) & 0x7F); + this.sendPacket[this.sendIndex.buzzer1] = hertz & 0xFF; + } + } + }; + + addLedRead() { + this.sendPacket[this.sendIndex.ledRead] = this.setData.ledRead; + this.setData.ledRead = 0; + }; + + addText() { + if (this.state.led === 't'.charCodeAt()) { + this.state.led = 2; + const size = this.setData.ledText.text.length; + const text = this.setData.ledText.text; + + this.textPacket = new Uint8Array(size); + + for (let i = 0; i < size; i++) { + this.textPacket[i] = text[i].charCodeAt(); + } + this.sendPacket[this.sendIndex.textSize] = size; + this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledText.speed >> 8) & 0x7F; + this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledText.speed & 0xFF; + + this.lastData.ledText.text = text; + this.lastData.ledText.speed = this.setData.ledText.speed; + this.setData.ledText.text = ''; + } + }; + + getButtonNameKey(data) { + const key = ['s1', 's2', 's3','s4']; + const num = Number(data); + if (0 <= num && num <= 3) { + return key[num]; + } else { + switch (data) { + case Lang.template.nemolite_item_s1: + return key[0]; + case Lang.template.nemolite_item_s2: + return key[1]; + case Lang.template.nemolite_item_s3: + return key[2]; + case Lang.template.nemolite_item_s4: + return key[3]; + default: + return data; + } + } + } + + getButtonStateKey(data) { + const key = ['digital', 'fall', 'rise', 'both']; + const num = Number(data); + if (0 <= num && num <= 3) { + return key[num]; + } else { + switch (data) { + case Lang.template.nemolite_item_is_press: + case Lang.template.nemolite_item_has_press: + return key[0]; + case Lang.template.nemolite_item_is_fall: + case Lang.template.nemolite_item_has_fall: + return key[1]; + case Lang.template.nemolite_item_is_rise: + case Lang.template.nemolite_item_has_rise: + return key[2]; + case Lang.template.nemolite_item_is_both: + case Lang.template.nemolite_item_has_both: + return key[3]; + default: + return data; + } + } + } + + getMotionNameKey(data) { + const key = ['front', 'back', 'left', 'right', 'up', 'down', 'standup', 'impact']; + const num = Number(data); + if (0 <= num && num <= 7) { + return key[num]; + } else { + switch (data) { + case Lang.template.nemolite_item_motion_1: + return key[0]; + case Lang.template.nemolite_item_motion_2: + return key[1]; + case Lang.template.nemolite_item_motion_3: + return key[2]; + case Lang.template.nemolite_item_motion_4: + return key[3]; + case Lang.template.nemolite_item_motion_5: + return key[4]; + case Lang.template.nemolite_item_motion_6: + return key[5]; + case Lang.template.nemolite_item_motion_7: + return key[6]; + case Lang.template.nemolite_item_motion_8: + return key[7]; + default: + return data; + } + } + } + + getAccelNameKey(data) { + const key = ['x', 'y', 'z', 'linear']; + const num = Number(data); + if (0 <= num && num <= 3) { + return key[num]; + } else { + switch (data) { + case Lang.template.nemolite_item_axis_x: + return key[0]; + case Lang.template.nemolite_item_axis_y: + return key[1]; + case Lang.template.nemolite_item_axis_z: + return key[2]; + case Lang.template.nemolite_item_linear_acceleration: + return key[3]; + default: + return data; + } + } + } + + getLedSpeedValue(data) { + const num = Number(data); + switch(num) { + case 0: + return 0; + case 1: + return 500; + case 2: + return 200; + case 3: + return 100; + case 4: + return 50; + case 5: + return 20 + default: + return (num < 0) ? 0 : 500; + } + } + + getLedIconIndexValue(data) { + const num = Number(data); + if (0 <= num && num <= 32) { + return (num + 1); + } else { + switch (data) { + case Lang.template.nemolite_item_smile: + return 1; + case Lang.template.nemolite_item_not_much: + return 2; + case Lang.template.nemolite_item_good: + return 3; + case Lang.template.nemolite_item_bad: + return 4; + case Lang.template.nemolite_item_wink: + return 5; + case Lang.template.nemolite_item_cry: + return 6; + case Lang.template.nemolite_item_absurd: + return 7; + case Lang.template.nemolite_item_peck: + return 8; + case Lang.template.nemolite_item_arrow_1: + return 9; + case Lang.template.nemolite_item_arrow_2: + return 10; + case Lang.template.nemolite_item_arrow_3: + return 11; + case Lang.template.nemolite_item_arrow_4: + return 12; + case Lang.template.nemolite_item_arrow_5: + return 13; + case Lang.template.nemolite_item_arrow_6: + return 14; + case Lang.template.nemolite_item_arrow_7: + return 15; + case Lang.template.nemolite_item_arrow_8: + return 16; + case Lang.template.nemolite_item_spade: + return 17; + case Lang.template.nemolite_item_club: + return 18; + case Lang.template.nemolite_item_diamond: + return 19; + case Lang.template.nemolite_item_heart: + return 20; + case Lang.template.nemolite_item_circle: + return 21; + case Lang.template.nemolite_item_x: + return 22; + case Lang.template.nemolite_item_triangle: + return 23; + case Lang.template.nemolite_item_square: + return 24; + case Lang.template.nemolite_item_note_1: + return 25; + case Lang.template.nemolite_item_note_2: + return 26; + case Lang.template.nemolite_item_note_3: + return 27; + case Lang.template.nemolite_item_dice_1: + return 28; + case Lang.template.nemolite_item_dice_2: + return 29; + case Lang.template.nemolite_item_dice_3: + return 30; + case Lang.template.nemolite_item_dice_4: + return 31; + case Lang.template.nemolite_item_dice_5: + return 32; + case Lang.template.nemolite_item_dice_6: + return 33; + default: + return data; + } + } + } + + getLedColummKey(data) { + const num = Number(data); + if (0 <= num && num <= 13) { + return num; + } else { + switch (data) { + case Lang.template.nemolite_item_first: + return 0; + case Lang.template.nemolite_item_second: + return 1; + case Lang.template.nemolite_item_third: + return 2; + case Lang.template.nemolite_item_fourth: + return 3; + case Lang.template.nemolite_item_fifth: + return 4; + case Lang.template.nemolite_item_sixth: + return 5; + case Lang.template.nemolite_item_seventh: + return 6; + case Lang.template.nemolite_item_eighth: + return 7; + case Lang.template.nemolite_item_ninth: + return 8; + case Lang.template.nemolite_item_tenth: + return 9; + case Lang.template.nemolite_itme_eleventh: + return 10; + case Lang.template.nemolite_item_twelfth: + return 11; + case Lang.template.nemolite_item_thirteenth: + return 12; + case Lang.template.nemolite_itme_fourteenth: + return 13; + default: + return data; + } + } + } + + getPitchKey(data) { + const num = Number(data); + if (0 <= num && num <= 32) { + return (num + 1); + } else { + switch (data) { + case Lang.template.nemolite_item_lc: + return 0; + case Lang.template.nemolite_item_lcs: + return 1; + case Lang.template.nemolite_item_ld: + return 2; + case Lang.template.nemolite_item_lds: + return 3; + case Lang.template.nemolite_item_le: + return 4; + case Lang.template.nemolite_item_lf: + return 5; + case Lang.template.nemolite_item_lfs: + return 6; + case Lang.template.nemolite_item_lg: + return 7; + case Lang.template.nemolite_item_lgs: + return 8; + case Lang.template.nemolite_item_la: + return 9; + case Lang.template.nemolite_item_las: + return 10; + case Lang.template.nemolite_item_lb: + return 11; + case Lang.template.nemolite_item_mc: + return 12; + case Lang.template.nemolite_item_mcs: + return 13; + case Lang.template.nemolite_item_md: + return 14; + case Lang.template.nemolite_item_mds: + return 15; + case Lang.template.nemolite_item_me: + return 16; + case Lang.template.nemolite_item_mf: + return 17; + case Lang.template.nemolite_item_mfs: + return 18; + case Lang.template.nemolite_item_mg: + return 19; + case Lang.template.nemolite_item_mgs: + return 20; + case Lang.template.nemolite_item_ma: + return 21; + case Lang.template.nemolite_item_mas: + return 22; + case Lang.template.nemolite_item_mb: + return 23; + case Lang.template.nemolite_item_hc: + return 24; + default: + return data; + } + } + } + + getSwitchValue(data) { + const num = Number(data); + if (0 <= num && num <= 2) { + return (num + 1); + } else { + switch (data) { + case Lang.template.nemolite_item_off_text: + case Lang.template.nemolite_item_off_icon: + return 1; + case Lang.template.nemolite_item_on_text: + case Lang.template.nemolite_item_on_icon: + return 2; + case Lang.template.nemolite_item_toggle: + return 3; + default: + return data; + } + } + } + + getMelodyKey(data) { + const num = Number(data); + if (0 <= num && num <= 6) { + return (num + 1); + } else { + switch (data) { + case Lang.template.nemolite_item_do_re_mi_song: + return 1; + case Lang.template.nemolite_item_an_island_baby: + return 2; + case Lang.template.nemolite_item_twinkle_twinkle_little_star: + return 2; + case Lang.template.nemolite_item_spring_in_my_hometown: + return 4; + case Lang.template.nemolite_item_for_elise: + return 5; + case Lang.template.nemolite_item_celebrated_chop_waltz: + return 6; + case Lang.template.nemolite_item_happy_birthday_to_you: + return 7; + default: + return data; + } + } + } + + getExtensionKey(data) { + switch (data) { + case '0': // 스위치 + case '1': // 적외선 + case '2': // 자석 + case Lang.template.nemolite_item_switch: + case Lang.template.nemolite_item_infrared_ray: + case Lang.template.nemolite_item_magnet: + return 1; + case '3': // 회전 + case Lang.template.nemolite_item_rotary: + return 7; + case '4': // 조도 + case Lang.template.nemolite_item_illuminance: + return 2; + case '5': // 소리 + case Lang.template.nemolite_item_sound: + return 8; + case '6': // 기울기 + case Lang.template.nemolite_item_tilt: + return 4; + case '7': // 압력 + case Lang.template.nemolite_item_pressure: + return 5; + case '8': // 심박 + case Lang.template.nemolite_item_heart_rate: + return 6; + default: + return data; + } + } + + getSensorModeKey(data) { + const key = ['value', 'angle', 'absolutAngle', 'turnCount']; + const num = Number(data); + if (0 <= num && num <= 3) { + return key[num]; + } else { + switch (data) { + case Lang.template.nemolite_item_value: + return key[0]; + case Lang.template.nemolite_item_angle: + return key[1]; + case Lang.template.nemolite_item_absolute_angle: + return key[2]; + case Lang.template.nemolite_item_rotation_value: + return key[3]; + default: + return data; + } + } + } + + getDirectionKey(data) { + const num = Number(data); + if (0 <= num && num <= 3) { + return num; + } else { + switch (data) { + case Lang.template.nemolite_item_east: + return 0; + case Lang.template.nemolite_item_west: + return 1; + case Lang.template.nemolite_item_south: + return 2; + case Lang.template.nemolite_item_north: + return 3; + default: + return data; + } + } + } + + getConvertMap(value, inMin, inMax, outMin, outMax) { + return Math.round(((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin); + } + + delayCallReturnUsingTime(script, ms, startCode, stopCode) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + const fps = Entry.FPS || 60; + const delay = (60 / fps) * ms; + Entry.TimeWaitManager.add( + Math.random(), + () => { + script.timeFlag = 0; + }, + delay + ); + startCode(); + return script; + } else if (script.timeFlag == 1) { + return script; + } else { + stopCode(); + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + } + + delayCallReturnUsingFlag(script, startCode, callReturnFlag) { + if (!script.isStart) { + script.isStart = true; + script.timeFlag = 1; + startCode(); + return script; + } else if (script.timeFlag == 1) { + if (callReturnFlag) { + script.timeFlag = 2; + } + return script; + } else { + delete script.timeFlag; + delete script.isStart; + Entry.engine.isContinue = false; + return script.callReturn(); + } + } + + getBlocks() { + return { + //======================================================================================== + //region Dropdown block + //======================================================================================== + nemolite_dropdown_button: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_s1, 0], + [Lang.template.nemolite_item_s2, 1], + [Lang.template.nemolite_item_s3, 2], + [Lang.template.nemolite_item_s4, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + }, + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_s1, 0], + [Lang.template.nemolite_item_s2, 1], + [Lang.template.nemolite_item_s3, 2], + [Lang.template.nemolite_item_s4, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_button', + }, + ], + }, + }, + nemolite_dropdown_button_now_state: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_is_press, 0], + [Lang.template.nemolite_item_is_fall, 1], + [Lang.template.nemolite_item_is_rise, 2], + [Lang.template.nemolite_item_is_both, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_is_press, 0], + [Lang.template.nemolite_item_is_fall, 1], + [Lang.template.nemolite_item_is_rise, 2], + [Lang.template.nemolite_item_is_both, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_button_now_state', + }, + ], + }, + }, + nemolite_dropdown_button_state_question: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_has_press, 0], + [Lang.template.nemolite_item_has_fall, 1], + [Lang.template.nemolite_item_has_rise, 2], + [Lang.template.nemolite_item_has_both, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_has_press, 0], + [Lang.template.nemolite_item_has_fall, 1], + [Lang.template.nemolite_item_has_rise, 2], + [Lang.template.nemolite_item_has_both, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_button_state_question', + }, + ], + }, + }, + nemolite_dropdown_motion: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_motion_1, 0], + [Lang.template.nemolite_item_motion_2, 1], + [Lang.template.nemolite_item_motion_3, 2], + [Lang.template.nemolite_item_motion_4, 3], + [Lang.template.nemolite_item_motion_5, 4], + [Lang.template.nemolite_item_motion_6, 5], + [Lang.template.nemolite_item_motion_7, 6], + [Lang.template.nemolite_item_motion_8, 7], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_motion_1, 0], + [Lang.template.nemolite_item_motion_2, 1], + [Lang.template.nemolite_item_motion_3, 2], + [Lang.template.nemolite_item_motion_4, 3], + [Lang.template.nemolite_item_motion_5, 4], + [Lang.template.nemolite_item_motion_6, 5], + [Lang.template.nemolite_item_motion_7, 6], + [Lang.template.nemolite_item_motion_8, 7], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_motion', + }, + ], + }, + }, + nemolite_dropdown_coordinate_acceleration: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_axis_x, 0], + [Lang.template.nemolite_item_axis_y, 1], + [Lang.template.nemolite_item_axis_z, 2], + [Lang.template.nemolite_item_linear_acceleration, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_axis_x, 0], + [Lang.template.nemolite_item_axis_y, 1], + [Lang.template.nemolite_item_axis_z, 2], + [Lang.template.nemolite_item_linear_acceleration, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_coordinate_acceleration', + }, + ], + }, + }, + nemolite_dropdown_led_icon: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'DropdownExtra', + options: [ + [Lang.template.nemolite_item_smile, 0], + [Lang.template.nemolite_item_not_much, 1], + [Lang.template.nemolite_item_good, 2], + [Lang.template.nemolite_item_bad, 3], + [Lang.template.nemolite_item_wink, 4], + [Lang.template.nemolite_item_cry, 5], + [Lang.template.nemolite_item_absurd, 6], + [Lang.template.nemolite_item_peck, 7], + [Lang.template.nemolite_item_arrow_1, 8], + [Lang.template.nemolite_item_arrow_2, 9], + [Lang.template.nemolite_item_arrow_3, 10], + [Lang.template.nemolite_item_arrow_4, 11], + [Lang.template.nemolite_item_arrow_5, 12], + [Lang.template.nemolite_item_arrow_6, 13], + [Lang.template.nemolite_item_arrow_7, 14], + [Lang.template.nemolite_item_arrow_8, 15], + [Lang.template.nemolite_item_spade, 16], + [Lang.template.nemolite_item_club, 17], + [Lang.template.nemolite_item_diamond, 18], + [Lang.template.nemolite_item_heart, 19], + [Lang.template.nemolite_item_circle, 20], + [Lang.template.nemolite_item_x, 21], + [Lang.template.nemolite_item_triangle, 22], + [Lang.template.nemolite_item_square, 23], + [Lang.template.nemolite_item_note_1, 24], + [Lang.template.nemolite_item_note_2, 25], + [Lang.template.nemolite_item_note_3, 26], + [Lang.template.nemolite_item_dice_1, 27], + [Lang.template.nemolite_item_dice_2, 28], + [Lang.template.nemolite_item_dice_3, 29], + [Lang.template.nemolite_item_dice_4, 30], + [Lang.template.nemolite_item_dice_5, 31], + [Lang.template.nemolite_item_dice_6, 32], + ], + value: 0, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_smile, 0], + [Lang.template.nemolite_item_not_much, 1], + [Lang.template.nemolite_item_good, 2], + [Lang.template.nemolite_item_bad, 3], + [Lang.template.nemolite_item_wink, 4], + [Lang.template.nemolite_item_cry, 5], + [Lang.template.nemolite_item_absurd, 6], + [Lang.template.nemolite_item_peck, 7], + [Lang.template.nemolite_item_arrow_1, 8], + [Lang.template.nemolite_item_arrow_2, 9], + [Lang.template.nemolite_item_arrow_3, 10], + [Lang.template.nemolite_item_arrow_4, 11], + [Lang.template.nemolite_item_arrow_5, 12], + [Lang.template.nemolite_item_arrow_6, 13], + [Lang.template.nemolite_item_arrow_7, 14], + [Lang.template.nemolite_item_arrow_8, 15], + [Lang.template.nemolite_item_spade, 16], + [Lang.template.nemolite_item_club, 17], + [Lang.template.nemolite_item_diamond, 18], + [Lang.template.nemolite_item_heart, 19], + [Lang.template.nemolite_item_circle, 20], + [Lang.template.nemolite_item_x, 21], + [Lang.template.nemolite_item_triangle, 22], + [Lang.template.nemolite_item_square, 23], + [Lang.template.nemolite_item_note_1, 24], + [Lang.template.nemolite_item_note_2, 25], + [Lang.template.nemolite_item_note_3, 26], + [Lang.template.nemolite_item_dice_1, 27], + [Lang.template.nemolite_item_dice_2, 28], + [Lang.template.nemolite_item_dice_3, 29], + [Lang.template.nemolite_item_dice_4, 30], + [Lang.template.nemolite_item_dice_5, 31], + [Lang.template.nemolite_item_dice_6, 32], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_led_icon', + }, + ], + }, + }, + nemolite_dropdown_switch: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_off_text, 0], + [Lang.template.nemolite_item_on_text, 1], + [Lang.template.nemolite_item_toggle, 2], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_off_text, 0], + [Lang.template.nemolite_item_on_text, 1], + [Lang.template.nemolite_item_toggle, 2], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_switch', + }, + ], + }, + }, + nemolite_dropdown_melody: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_do_re_mi_song, 0], + [Lang.template.nemolite_item_an_island_baby, 1], + [Lang.template.nemolite_item_twinkle_twinkle_little_star, 2], + [Lang.template.nemolite_item_spring_in_my_hometown, 3], + [Lang.template.nemolite_item_for_elise, 4], + [Lang.template.nemolite_item_celebrated_chop_waltz, 5], + [Lang.template.nemolite_item_happy_birthday_to_you, 6], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_do_re_mi_song, 0], + [Lang.template.nemolite_item_an_island_baby, 1], + [Lang.template.nemolite_item_twinkle_twinkle_little_star, 2], + [Lang.template.nemolite_item_spring_in_my_hometown, 3], + [Lang.template.nemolite_item_for_elise, 4], + [Lang.template.nemolite_item_celebrated_chop_waltz, 5], + [Lang.template.nemolite_item_happy_birthday_to_you, 6], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_melody', + }, + ], + }, + }, + nemolite_dropdown_keyboard: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'DropdownExtra', + options: [ + [Lang.template.nemolite_item_lc, 0], + [Lang.template.nemolite_item_lcs, 1], + [Lang.template.nemolite_item_ld, 2], + [Lang.template.nemolite_item_lds, 3], + [Lang.template.nemolite_item_le, 4], + [Lang.template.nemolite_item_lf, 5], + [Lang.template.nemolite_item_lfs, 6], + [Lang.template.nemolite_item_lg, 7], + [Lang.template.nemolite_item_lgs, 8], + [Lang.template.nemolite_item_la, 9], + [Lang.template.nemolite_item_las, 10], + [Lang.template.nemolite_item_lb, 11], + [Lang.template.nemolite_item_mc, 12], + [Lang.template.nemolite_item_mcs, 13], + [Lang.template.nemolite_item_md, 14], + [Lang.template.nemolite_item_mds, 15], + [Lang.template.nemolite_item_me, 16], + [Lang.template.nemolite_item_mf, 17], + [Lang.template.nemolite_item_mfs, 18], + [Lang.template.nemolite_item_mg, 19], + [Lang.template.nemolite_item_mgs, 20], + [Lang.template.nemolite_item_ma, 21], + [Lang.template.nemolite_item_mas, 22], + [Lang.template.nemolite_item_mb, 23], + [Lang.template.nemolite_item_hc, 24] + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_lc, 0], + [Lang.template.nemolite_item_lcs, 1], + [Lang.template.nemolite_item_ld, 2], + [Lang.template.nemolite_item_lds, 3], + [Lang.template.nemolite_item_le, 4], + [Lang.template.nemolite_item_lf, 5], + [Lang.template.nemolite_item_lfs, 6], + [Lang.template.nemolite_item_lg, 7], + [Lang.template.nemolite_item_lgs, 8], + [Lang.template.nemolite_item_la, 9], + [Lang.template.nemolite_item_las, 10], + [Lang.template.nemolite_item_lb, 11], + [Lang.template.nemolite_item_mc, 12], + [Lang.template.nemolite_item_mcs, 13], + [Lang.template.nemolite_item_md, 14], + [Lang.template.nemolite_item_mds, 15], + [Lang.template.nemolite_item_me, 16], + [Lang.template.nemolite_item_mf, 17], + [Lang.template.nemolite_item_mfs, 18], + [Lang.template.nemolite_item_mg, 19], + [Lang.template.nemolite_item_mgs, 20], + [Lang.template.nemolite_item_ma, 21], + [Lang.template.nemolite_item_mas, 22], + [Lang.template.nemolite_item_mb, 23], + [Lang.template.nemolite_item_hc, 24] + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_keyboard', + }, + ], + }, + }, + nemolite_dropdown_extension_sensor: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_switch, 0], + [Lang.template.nemolite_item_infrared_ray, 1], + [Lang.template.nemolite_item_magnet, 2], + [Lang.template.nemolite_item_rotary, 3], + [Lang.template.nemolite_item_illuminance, 4], + [Lang.template.nemolite_item_sound, 5], + [Lang.template.nemolite_item_tilt, 6], + [Lang.template.nemolite_item_pressure, 7], + [Lang.template.nemolite_item_heart_rate, 8], + [Lang.template.nemolite_item_touch, 9], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [null], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_switch, 0], + [Lang.template.nemolite_item_infrared_ray, 1], + [Lang.template.nemolite_item_magnet, 2], + [Lang.template.nemolite_item_rotary, 3], + [Lang.template.nemolite_item_illuminance, 4], + [Lang.template.nemolite_item_sound, 5], + [Lang.template.nemolite_item_tilt, 6], + [Lang.template.nemolite_item_pressure, 7], + [Lang.template.nemolite_item_heart_rate, 8], + [Lang.template.nemolite_item_touch, 9], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_extension_sensor', + }, + ], + }, + }, + + nemolite_dropdown_sensor_mode: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_value, 0], + [Lang.template.nemolite_item_angle, 1], + [Lang.template.nemolite_item_absolute_angle, 2], + [Lang.template.nemolite_item_turn_value, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [null], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_value, 0], + [Lang.template.nemolite_item_angle, 1], + [Lang.template.nemolite_item_absolute_angle, 2], + [Lang.template.nemolite_item_rotation_value, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_sensor_mode', + }, + ], + }, + }, + nemolite_dropdown_direction: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_east, 0], + [Lang.template.nemolite_item_west, 1], + [Lang.template.nemolite_item_south, 2], + [Lang.template.nemolite_item_north, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [null], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_east, 0], + [Lang.template.nemolite_item_west, 1], + [Lang.template.nemolite_item_south, 2], + [Lang.template.nemolite_item_north, 3], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_direction', + }, + ], + }, + }, + nemolite_dropdown_index_0_5: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['0', 0], + ['1', 1], + ['2', 2], + ['3', 3], + ['4', 4], + ['5', 5], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['0', 0], + ['1', 1], + ['2', 2], + ['3', 3], + ['4', 4], + ['5', 5], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_index_0_5', + }, + ], + }, + }, + nemolite_dropdown_index_1_5: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + ['1', 1], + ['2', 2], + ['3', 3], + ['4', 4], + ['5', 5], + ], + value: 1, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + ['1', 1], + ['2', 2], + ['3', 3], + ['4', 4], + ['5', 5], + ], + value: 1, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_index_1_5', + }, + ], + }, + }, + nemolite_dropdown_led_columm: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + skeleton: 'basic_string_field', + statements: [], + template: '%1', + params: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_first, 0], + [Lang.template.nemolite_item_second, 1], + [Lang.template.nemolite_item_third, 2], + [Lang.template.nemolite_item_fourth, 3], + [Lang.template.nemolite_item_fifth, 4], + [Lang.template.nemolite_item_sixth, 5], + [Lang.template.nemolite_item_seventh, 6], + [Lang.template.nemolite_item_eighth, 7], + [Lang.template.nemolite_item_ninth, 8], + [Lang.template.nemolite_item_tenth, 9], + [Lang.template.nemolite_itme_eleventh, 10], + [Lang.template.nemolite_item_twelfth, 11], + [Lang.template.nemolite_item_thirteenth, 12], + [Lang.template.nemolite_itme_fourteenth, 13], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + } + ], + def: { + params: [], + }, + paramsKeyMap: { + INDEX: 0, + }, + events: {}, + func: function(sprite, script) { + return script.getField('INDEX'); + }, + syntax: { + js: [], + py: [ + { + syntax: '%1', + textParams: [ + { + type: 'Dropdown', + options: [ + [Lang.template.nemolite_item_first, 0], + [Lang.template.nemolite_item_second, 1], + [Lang.template.nemolite_item_third, 2], + [Lang.template.nemolite_item_fourth, 3], + [Lang.template.nemolite_item_fifth, 4], + [Lang.template.nemolite_item_sixth, 5], + [Lang.template.nemolite_item_seventh, 6], + [Lang.template.nemolite_item_eighth, 7], + [Lang.template.nemolite_item_ninth, 8], + [Lang.template.nemolite_item_tenth, 9], + [Lang.template.nemolite_itme_eleventh, 10], + [Lang.template.nemolite_item_twelfth, 11], + [Lang.template.nemolite_item_thirteenth, 12], + [Lang.template.nemolite_itme_fourteenth, 13], + ], + value: 0, + fontSize: 11, + bgColor: EntryStatic.colorSet.block.darken.HARDWARE, + arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, + converter: Entry.block.converters.returnStringValue, + }, + ], + keyOption: 'nemolite_dropdown_led_columm', + }, + ], + }, + },// endregion + //======================================================================================== + //region Input block + //======================================================================================== + nemolite_title_namo_input: { + skeleton: 'basic_text', + color: EntryStatic.colorSet.common.TRANSPARENT, + fontColor: '#333333', + template: Lang.template.title_namo_input, + skeletonOptions: { + box: { + offsetX: 20, + }, + }, + def: { + type: 'nemolite_title_namo_input', + }, + class : 'nemolite_input', + isNotFor: ['ProboNemoLite'], + }, + // %1 %2 버튼 %3 + nemolite_when_button_state: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + statements: [], + template: Lang.template.nemolite_event_button_state, + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardwarelite.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + null, + { + type: 'nemolite_dropdown_button', + }, + { + type: 'nemolite_dropdown_button_now_state', + }, + ], + type: 'nemolite_when_button_state', + }, + paramsKeyMap: { + DUMMY: 0, + INDEX: 1, + STATE: 2, + }, + event: 'nemolite_event_button', + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const nameKey = Entry.ProboNemoLite.getButtonNameKey(script.getStringValue('INDEX')); + const stateKey = Entry.ProboNemoLite.getButtonStateKey(script.getStringValue('STATE')); + const value = Entry.ProboNemoLite.getData.switch[nameKey][stateKey]; + + return (value === 1) + ? script.callReturn() + : this.die(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.when_button_state(%2, %3)', + blockType: 'event', + passTest: true, + textParams: [ + undefined, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 %2 이 감지되었을 때 + nemolite_when_motion_sensing: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_event', + statements: [], + template: Lang.template.nemolite_event_motion, + params: [ + { + type: 'Indicator', + img: 'block_icon/start_icon_hardwarelite.svg', + size: 14, + position: { + x: 0, + y: -2, + }, + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + } + ], + events: {}, + def: { + params: [ + null, + { + type: 'nemolite_dropdown_motion', + }, + ], + type: 'nemolite_when_motion_sensing', + }, + paramsKeyMap: { + DUMMY: 0, + INDEX: 1, + }, + event: 'nemolite_event_motion', + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const nameKey = Entry.ProboNemoLite.getMotionNameKey(script.getStringValue('INDEX')); + const value = Entry.ProboNemoLite.getData.motion[nameKey]; + + return (value === 1) + ? script.callReturn() + : this.die(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.when_motion_sensing(%2)', + blockType: 'event', + passTest: true, + textParams: [ + undefined, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 버튼 %2 ? + nemolite_is_button_state: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + template: Lang.template.nemolite_is_button_state, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_button', + }, + { + type: 'nemolite_dropdown_button_state_question', + }, + ], + type: 'nemolite_is_button_state', + }, + paramsKeyMap: { + INDEX: 0, + STATE: 1, + }, + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const nameKey = Entry.ProboNemoLite.getButtonNameKey(script.getStringValue('INDEX')); + const stateKey = Entry.ProboNemoLite.getButtonStateKey(script.getStringValue('STATE')); + const value = Entry.ProboNemoLite.getData.switch[nameKey][stateKey]; + + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.is_button_state(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 이 감지되었는가? + nemolite_is_motion_sensing: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + template: Lang.template.nemolite_is_motion_sensing, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_motion', + }, + ], + type: 'nemolite_is_motion_sensing', + }, + paramsKeyMap: { + INDEX: 0, + }, + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const nameKey = Entry.ProboNemoLite.getMotionNameKey(script.getStringValue('INDEX')); + const value = Entry.ProboNemoLite.getData.motion[nameKey]; + + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.is_motion_sensing(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // LED X: %1 Y: %2 상태값 + nemolite_is_led_state_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + template: Lang.template.nemolite_is_led_state_value, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + ], + type: 'nemolite_is_led_state_value', + }, + paramsKeyMap: { + X: 0, + Y: 1, + }, + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const x = script.getNumberValue('X'); + const y = script.getNumberValue('Y'); + const index = x * 7 + y + 1; // 1 ~ 49 + let value = false; + Entry.ProboNemoLite.setData.ledRead = index; + + return Entry.ProboNemoLite.getData.ledRead.state; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.is_led_state_value(%1, %2)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 버튼의 아날로그 값 + nemolite_get_button_analog_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + template: Lang.template.nemolite_get_button_analog_value, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_button', + }, + ], + type: 'nemolite_get_button_analog_value', + }, + paramsKeyMap: { + INDEX: 0, + }, + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const nameKey = Entry.ProboNemoLite.getButtonNameKey(script.getStringValue('INDEX')); + const value = Entry.ProboNemoLite.getData.switch[nameKey]['analog']; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.button_analog_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 가속도 센서 %1 의 값 + nemolite_get_acceleration_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + template: Lang.template.nemolite_get_acceleration_value, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_coordinate_acceleration', + }, + ], + type: 'nemolite_get_acceleration_value', + }, + paramsKeyMap: { + INDEX: 0, + }, + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const nameKey = Entry.ProboNemoLite.getAccelNameKey(script.getStringValue('INDEX')); + const value = Entry.ProboNemoLite.getData.accel[nameKey]; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.acceleration_value(%1)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 조도 센서의 값 + nemolite_get_illuminance_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + template: Lang.template.nemolite_get_illuminance_value, + params: [ + ], + events: {}, + def: { + params: [], + type: 'nemolite_get_illuminance_value', + }, + paramsKeyMap: {}, + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const illuminance = Entry.ProboNemoLite.getData.illuminance; + return illuminance; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.illuminance_value()', + blockType: 'param', + textParams: [], + }, + ], + }, + }, + // %1 의 값 %2 ~ %3 을 %4 ~ %5 으(로) 변환 + nemolite_get_convert_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + template: Lang.template.nemolite_get_convert_value, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + ], + type: 'nemolite_get_convert_value', + }, + paramsKeyMap: { + VALUE: 0, + IN_MIN: 1, + IN_MAX: 2, + OUT_MIN: 3, + OUT_MAX: 4, + }, + class: 'nemolite_input', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const value = script.getNumberValue('VALUE'); + const inMin = script.getNumberValue('IN_MIN'); + const inMax = script.getNumberValue('IN_MAX'); + const outMin = script.getNumberValue('OUT_MIN'); + const outMax = script.getNumberValue('OUT_MAX'); + return Entry.ProboNemoLite.getConvertMap(value, inMin, inMax, outMin, outMax); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.convert_value(%1, %2, %3, %4, %5)', + blockType: 'param', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + },//endregion + //======================================================================================== + //region Output block + //======================================================================================== + nemolite_title_namo_output: { + skeleton: 'basic_text', + color: EntryStatic.colorSet.common.TRANSPARENT, + fontColor: '#333333', + template: Lang.template.title_namo_output, + skeletonOptions: { + box: { + offsetX: 20, + }, + }, + def: { + type: 'nemolite_title_namo_output', + }, + class : 'nemolite_output', + isNotFor: ['ProboNemoLite'], + }, + // LED 아이콘 %1 을 %2 속도로 출력 %3 + nemolite_set_display_led_icon: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_display_led_icon, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_led_icon', + }, + { + type: 'nemolite_dropdown_index_0_5', + }, + null, + ], + type: 'nemolite_set_display_led_icon', + }, + paramsKeyMap: { + INDEX: 0, + SPEED: 1, + }, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const index = Entry.ProboNemoLite.getLedIconIndexValue(script.getStringValue('INDEX')); + const speed = Entry.ProboNemoLite.getLedSpeedValue(script.getStringValue('SPEED')); + + if ((Entry.ProboNemoLite.state.led === 0) + || (Entry.ProboNemoLite.lastData.ledIcon.index !== index) + || (Entry.ProboNemoLite.lastData.ledIcon.speed !== speed) + ) { + Entry.ProboNemoLite.setData.ledIcon.index = index; + Entry.ProboNemoLite.setData.ledIcon.speed = speed; + + Entry.ProboNemoLite.state.led = 'i'.charCodeAt(); + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.display_led_icon(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // LED %1 줄의 %2%3%4%5%6%7%8 을 %9 속도로 출력 %10 + nemolite_set_display_led_custom_columm: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_display_led_custom_columm, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_led_columm', + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'nemolite_dropdown_index_0_5', + }, + null, + ], + type: 'nemolite_set_display_led_custom_columm', + }, + paramsKeyMap: { + INDEX: 0, + VALUE1: 1, + VALUE2: 2, + VALUE3: 3, + VALUE4: 4, + VALUE5: 5, + VALUE6: 6, + VALUE7: 7, + SPEED: 8, + }, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const index = Entry.ProboNemoLite.getLedColummKey(script.getStringValue('INDEX')); + const value = [ + script.getNumberValue('VALUE1'), + script.getNumberValue('VALUE2'), + script.getNumberValue('VALUE3'), + script.getNumberValue('VALUE4'), + script.getNumberValue('VALUE5'), + script.getNumberValue('VALUE6'), + script.getNumberValue('VALUE7'), + ]; + const speed = Entry.ProboNemoLite.getLedSpeedValue(script.getStringValue('SPEED')); + let pixel = 0; + for (let i = 0; i < 7; i++) { + if (value[i] > 0) { + pixel |= 1 << i; + } else { + pixel &= ~(1 << i); + } + } + + if (Entry.ProboNemoLite.state.led === 0 + || Entry.ProboNemoLite.lastData.ledColumm.pixel[index] !== pixel + || Entry.ProboNemoLite.lastData.ledColumm.speed !== speed + ) { + Entry.ProboNemoLite.state.led = 'c'.charCodeAt(); + Entry.ProboNemoLite.setData.ledColumm.pixel[index] = pixel; + Entry.ProboNemoLite.setData.ledColumm.speed = speed; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.display_led_custom_columm(%1, %2, %3, %4, %5, %6, %7, %8, %9)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // LED %1 문자열을 %2 속도로 출력 %3 + nemolite_set_display_led_text: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_display_led_text, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'text', + params: [ 'Hello' ], + }, + { + type: 'nemolite_dropdown_index_1_5', + }, + null, + ], + type: 'nemolite_set_display_led_text', + }, + paramsKeyMap: { + TEXT: 0, + SPEED: 1, + }, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const text = script.getStringValue('TEXT'); + const speed = Entry.ProboNemoLite.getLedSpeedValue(script.getStringValue('SPEED')); + + if (Entry.ProboNemoLite.state.led === 0 + || Entry.ProboNemoLite.lastData.ledText.text !== text + || Entry.ProboNemoLite.lastData.ledText.speed !== speed + ) { + Entry.ProboNemoLite.state.led = 't'.charCodeAt(); + Entry.ProboNemoLite.setData.ledText.text = text; + Entry.ProboNemoLite.setData.ledText.speed = speed; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.display_led_text(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + + nemolite_set_delete_all_led: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_delete_all_led, + params: [ + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [], + type: 'nemolite_set_delete_all_led', + }, + paramsKeyMap: {}, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + Entry.ProboNemoLite.setData.ledClear = 1; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.delete_all_led()', + textParams: [], + }, + ], + }, + }, + // LED X: %1 Y: %2 %3 %4 + nemolite_set_toggle_led_pixel: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_toggle_led_pixel, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: [ 0 ], + }, + { + type: 'number', + params: [ 0 ], + }, + { + type: 'nemolite_dropdown_switch', + }, + null, + ], + type: 'nemolite_set_toggle_led_pixel', + }, + paramsKeyMap: { + X: 0, + Y: 1, + STATE: 2, + }, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const x = script.getNumberValue('X'); + const y = script.getNumberValue('Y'); + + if ((0 <= x && x <= 6) && (0 <= y && y <= 6)) { + const index = x * 7 + y + 1; // 1 ~ 49 + const state = Entry.ProboNemoLite.getSwitchValue(script.getNumberValue('STATE')); + + Entry.ProboNemoLite.setData.ledPixel.state = state; + Entry.ProboNemoLite.setData.ledPixel.index = index; + } + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.toggle_led_pixel(%1, %2, %3)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 멜로디 %1 재생하기 %2 + nemolite_set_play_melody: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_play_melody, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_melody', + }, + null, + ], + type: 'nemolite_set_play_melody', + }, + paramsKeyMap: { + TITLE: 0, + }, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const title = Entry.ProboNemoLite.getMelodyKey(script.getNumberValue('TITLE')); + + if (Entry.ProboNemoLite.state.sound === 0) { + Entry.ProboNemoLite.state.sound = 'm'.charCodeAt(); + Entry.ProboNemoLite.setData.melody.play = 1; + Entry.ProboNemoLite.setData.melody.title = title; + } + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.play_melody(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // '멜로디 %1 끝까지 재생하기 %2' + nemolite_set_play_melody_until_the_end: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_play_melody_until_the_end, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_melody', + }, + null, + ], + type: 'nemolite_set_play_melody_until_the_end', + }, + paramsKeyMap: { + TITLE: 0, + }, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const title = Entry.ProboNemoLite.getMelodyKey(script.getNumberValue('TITLE')); + let flag = false; + const startCode = function() { + if (Entry.ProboNemoLite.state.sound === 0) { + Entry.ProboNemoLite.state.soundBlockId = script.executor.id; + Entry.ProboNemoLite.state.sound = 'm'.charCodeAt(); + Entry.ProboNemoLite.setData.melody.play = 1; + Entry.ProboNemoLite.setData.melody.title = title; + } + } + + if ((Entry.ProboNemoLite.state.soundBlockId === script.executor.id) && (Entry.ProboNemoLite.state.sound === 0)) { + flag = true; + } + + return Entry.ProboNemoLite.delayCallReturnUsingFlag(script, startCode, flag); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.play_melody_until_the_end(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 음을 %2 재생하기 %3 + nemolite_set_play_note: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_play_note, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_keyboard', + }, + null, + ], + type: 'nemolite_set_play_note', + }, + paramsKeyMap: { + PITCH: 0, + }, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const pitch = Entry.ProboNemoLite.getPitchKey(script.getNumberValue('PITCH')); + + Entry.ProboNemoLite.state.note = 1; + Entry.ProboNemoLite.setData.note.play = 1; + Entry.ProboNemoLite.setData.note.pitch = pitch; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.nemolite_set_play_note(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // %1 음을 %2 초동안 재생하기 %3 + nemolite_set_play_note_for_seconds: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_play_note_for_seconds, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_keyboard', + }, + { + type: 'number', + params: ['1'], + }, + null, + ], + type: 'nemolite_set_play_note_for_seconds', + }, + paramsKeyMap: { + PITCH: 0, + TIME: 1, + }, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const pitch = Entry.ProboNemoLite.getPitchKey(script.getNumberValue('PITCH')); + const time = script.getNumberValue('TIME') * 1000; + const startCode = function() { + if (Entry.ProboNemoLite.state.note === 0) { + Entry.ProboNemoLite.state.noteBlockId = script.executor.id; + Entry.ProboNemoLite.state.note = 1; + Entry.ProboNemoLite.setData.note.play = 1; + Entry.ProboNemoLite.setData.note.pitch = pitch; + } + } + const stopCode = function() { + if (Entry.ProboNemoLite.state.noteBlockId === script.executor.id) { + Entry.ProboNemoLite.state.note = 0; + } + } + + return Entry.ProboNemoLite.delayCallReturnUsingTime(script, time, startCode, stopCode); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.play_note_for_seconds(%1, %2)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + // 모든 소리 정지 %1 + nemolite_set_stop_all_sound: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_set_stop_all_sound, + params: [ + { + type: 'Indicator', + img: 'block_icon/hardware_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [], + type: 'nemolite_set_stop_all_sound', + }, + paramsKeyMap: {}, + class: 'nemolite_output', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + Entry.ProboNemoLite.state.sound = 'm'.charCodeAt(); + Entry.ProboNemoLite.setData.melody.play = 1; + Entry.ProboNemoLite.setData.melody.title = 0; + Entry.ProboNemoLite.state.note = 1; + Entry.ProboNemoLite.setData.note.play = 0; + Entry.ProboNemoLite.setData.note.pitch = 0; + + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.stop_all_sound()', + textParams: [], + }, + ], + }, + }, + //endregion Output block + //======================================================================================== + //region Extension block + //======================================================================================== + nemolite_title_namo_extension: { + skeleton: 'basic_text', + color: EntryStatic.colorSet.common.TRANSPARENT, + fontColor: '#333333', + template: Lang.template.nemolite_namo_extension, + skeletonOptions: { + box: { + offsetX: 20, + }, + }, + def: { + type: 'nemolite_title_namo_extension', + }, + class : 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + }, + nemolite_ext_set_extension: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_ext_set_extension, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_extension_sensor', + }, + null, + ], + type: 'nemolite_ext_set_extension', + }, + paramsKeyMap: { + TYPE: 0, + }, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const type = Entry.ProboNemoLite.getExtensionKey(script.getStringValue('TYPE')); + Entry.ProboNemoLite.setData.extension = type; + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.set_extension(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + nemolite_ext_get_extension_anlog_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + template: Lang.template.nemolite_ext_get_extension_anlog_value, + params: [], + events: {}, + def: { + params: [], + type: 'nemolite_ext_get_extension_anlog_value', + }, + paramsKeyMap: {}, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const value = Entry.ProboNemoLite.getData.extension.analog; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.get_extension_anlog_value(%1)', + textParams: [], + }, + ], + }, + }, + nemolite_ext_set_extension_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_ext_set_extension_value, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + { + type: 'Indicator', + img: 'block_icon/hardwarelite_icon.svg', + size: 12, + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['0'], + }, + null, + ], + type: 'nemolite_ext_set_extension_value', + }, + paramsKeyMap: { + VALUE: 0, + }, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const value = script.getNumberValue('VALUE'); + const analog = Entry.ProboNemoLite.getData.extension.analog; + const count = Entry.ProboNemoLite.state.extCount; + Entry.ProboNemoLite.extension.bias = value - (analog + count * 255); + return script.callReturn(); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.set_extension_value(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + nemolite_ext_is_extension_state: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + template: Lang.template.nemolite_ext_is_extension_state, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_button_state_question', + }, + null + ], + type: 'nemolite_ext_is_extension_state', + }, + paramsKeyMap: { + STATE: 0, + }, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const stateKey = Entry.ProboNemoLite.getButtonStateKey(script.getStringValue('STATE')); + const value = Entry.ProboNemoLite.getData.extension[stateKey]; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.is_extension_state(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + nemolite_ext_get_extension_custom_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + template: Lang.template.nemolite_ext_get_extension_custom_value, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_sensor_mode', + }, + ], + type: 'nemolite_ext_get_extension_custom_value', + }, + paramsKeyMap: { + TYPE: 0, + }, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const modeKey = Entry.ProboNemoLite.getSensorModeKey(script.getStringValue('TYPE')); + const value = Entry.ProboNemoLite.extension[modeKey]; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.get_extension_custom_value(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + nemolite_ext_set_compass_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + template: Lang.template.nemolite_ext_set_compass_value, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'number', + params: ['0'], + }, + ], + type: 'nemolite_ext_set_compass_value', + }, + paramsKeyMap: { + VALUE: 0, + }, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const value = script.getNumberValue('VALUE'); + const analog = Entry.ProboNemoLite.getData.compass; + const count = Entry.ProboNemoLite.compass.absolutTurnCount; + Entry.ProboNemoLite.compass.bias = value - (analog + count * 255); + return script.callReturn(); + + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.set_compass_value(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + nemolite_ext_get_compass_analog_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + template: Lang.template.nemolite_ext_get_compass_analog_value, + params: [], + events: {}, + def: { + params: [], + type: 'nemolite_ext_get_compass_analog_value', + }, + paramsKeyMap: {}, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const value = Entry.ProboNemoLite.getData.compass; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.compass_analog_value(%1)', + textParams: [], + }, + ], + }, + }, + nemolite_ext_get_compass_custom_value: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_string_field', + statements: [], + template: Lang.template.nemolite_ext_get_compass_custom_value, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_sensor_mode', + }, + ], + type: 'nemolite_ext_get_compass_custom_value', + }, + paramsKeyMap: { + TYPE: 0, + }, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const modeKey = Entry.ProboNemoLite.getSensorModeKey(script.getStringValue('TYPE')); + const value = Entry.ProboNemoLite.compass[modeKey]; + return value; + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.compass_custom_value(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + memolite_ext_is_compass_direction: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.darken.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + template: Lang.template.memolite_ext_is_compass_direction, + params: [ + { + type: 'Block', + accept: 'string', + defaultType: 'number', + },], + events: {}, + def: { + params: [ + { + type: 'nemolite_dropdown_direction', + }, + ], + type: 'memolite_ext_is_compass_direction', + }, + paramsKeyMap: { + DIRECTION: 0, + }, + class: 'nemolite_extension', + isNotFor: ['ProboNemoLite'], + func: function(sprite, script) { + const key = Entry.ProboNemoLite.getDirectionKey(script.getStringValue('DIRECTION')); + const value = Entry.ProboNemoLite.compass.direction; + return (value === key); + }, + syntax: { + js: [], + py: [ + { + syntax: 'NemoLite.is_compass_direction(%1)', + textParams: [ + { + type: 'Block', + accept: 'string', + }, + ], + }, + ], + }, + }, + //endregion + }; // getBlock() return; + } + })(); +})(); + +module.exports = Entry.ProboNemoLite; \ No newline at end of file diff --git a/src/playground/blocks/hardwareLite/metadata_alux_nemo_lite.json b/src/playground/blocks/hardwareLite/metadata_alux_nemo_lite.json new file mode 100644 index 0000000000..1dd1f2b18d --- /dev/null +++ b/src/playground/blocks/hardwareLite/metadata_alux_nemo_lite.json @@ -0,0 +1,9 @@ +{ + "name": "ProboNemoLite", + "version": "1.0.0", + "type": "hardware", + "title": "네모", + "description": "에이럭스", + "imageName": "alux_nemo_lite.png", + "moduleId": "630101" +} From d43c892df737829daabbd880cffc897f2fa810e2 Mon Sep 17 00:00:00 2001 From: dh0315 Date: Thu, 17 Apr 2025 16:18:45 +0900 Subject: [PATCH 09/12] =?UTF-8?q?=EC=BD=94=EB=8D=94=EB=B8=94=5F=EC=98=A4?= =?UTF-8?q?=EC=A6=88=EC=95=84=EC=9D=B4=20=EC=96=BC=EA=B5=B4=EC=9D=B8?= =?UTF-8?q?=EC=8B=9D,=20=EC=88=AB=EC=9E=90=EC=9D=B8=EC=8B=9D=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/playground/blocks/hardware/block_codewiz.js | 6 +++++- src/playground/blocks/hardwareLite/block_codewiz_lite.js | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/playground/blocks/hardware/block_codewiz.js b/src/playground/blocks/hardware/block_codewiz.js index f4f4f2918d..9b83af1747 100644 --- a/src/playground/blocks/hardware/block_codewiz.js +++ b/src/playground/blocks/hardware/block_codewiz.js @@ -315,7 +315,9 @@ Entry.CodeWiz.setLanguage = function() { 4.이미지 인식 5.사물 인식 6.사물 추적 - 7.선 + 태그`, + 7.선 + 태그 + 8.얼굴 인식 + 9.숫자 인식`, CodeWiz_OzEye_readOzEye: `오즈아이가 인식한 결과를 주기적으로 보내줍니다.`, CodeWiz_OzEye_isLearnedOzEye: `입력한 ID 번호 데이터를 학습했다면 ‘참’으로 판단하여 알려줍니다.`, CodeWiz_OzEye_isContainOzEye: `입력한 ID 번호의 사각형 데이터가 인식된다면 ‘참’으로 판단하여 알려줍니다. @@ -3303,6 +3305,8 @@ Entry.CodeWiz.getBlocks = function() { ['5.사물 인식', '2'], ['6.사물 추적', '1'], ['7.선 + 태그', '7'], + ['8.얼굴 인식', '0'], + ['9.숫자 인식', '8'], ], value: '2', fontSize: 11, diff --git a/src/playground/blocks/hardwareLite/block_codewiz_lite.js b/src/playground/blocks/hardwareLite/block_codewiz_lite.js index 2abc6b12bc..01451b810f 100644 --- a/src/playground/blocks/hardwareLite/block_codewiz_lite.js +++ b/src/playground/blocks/hardwareLite/block_codewiz_lite.js @@ -784,8 +784,10 @@ 4.이미지 인식 5.사물 인식 6.사물 추적 - 7.선 + 태그`, - CodeWizLite_OzEye_readOzEye: `오즈아이가 인식한 결과를 주기적으로 보내줍니다.`, + 7.선 + 태그 + 8.얼굴 인식 + 9.숫자 인식`, + Eye_readOzEye: `오즈아이가 인식한 결과를 주기적으로 보내줍니다.`, CodeWizLite_OzEye_isLearnedOzEye: `입력한 ID 번호 데이터를 학습했다면 ‘참’으로 판단하여 알려줍니다.`, CodeWizLite_OzEye_isContainOzEye: `입력한 ID 번호의 사각형 데이터가 인식된다면 ‘참’으로 판단하여 알려줍니다. ▼을 눌러 화살표를 선택하면 화살표 데이터가 인식될 때 ‘참’으로 판단하여 알려줍니다.`, @@ -3602,6 +3604,8 @@ ['5.사물 인식', '2'], ['6.사물 추적', '1'], ['7.선 + 태그', '7'], + ['8.얼굴 인식', '0'], + ['9.숫자 인식', '8'], ], value: '2', fontSize: 11, From 65a9ae00a8b18b564783eb67e350456de1a5147c Mon Sep 17 00:00:00 2001 From: Jin-YJ <80141679+Jin-YJ@users.noreply.github.com> Date: Thu, 17 Apr 2025 16:19:32 +0900 Subject: [PATCH 10/12] Add files via upload --- .../blocks/hardware/block_smartCodingHouse.js | 775 ++++++++++++++++++ 1 file changed, 775 insertions(+) create mode 100644 src/playground/blocks/hardware/block_smartCodingHouse.js diff --git a/src/playground/blocks/hardware/block_smartCodingHouse.js b/src/playground/blocks/hardware/block_smartCodingHouse.js new file mode 100644 index 0000000000..9536301efe --- /dev/null +++ b/src/playground/blocks/hardware/block_smartCodingHouse.js @@ -0,0 +1,775 @@ +'use strict'; + +Entry.smartCodingHouse = { + id: '67.1', + name: 'smartCodingHouse', + url: 'http://www.sciencetime.co.kr/', + imageName: 'smartCodingHouse.png', + title: { + en: 'smartCodingHouse', + ko: '스마트 코딩 하우스', + }, + // 하드웨어 출력을 초기화할 때, 센서용 포트와 출력용 포트를 분리합니다. + setZero: function () { + // sendQueue 객체 초기화 + Entry.hw.sendQueue = {}; + // 센서는 아날로그 채널(0~5)만 읽기용으로 등록합니다. + Entry.hw.sendQueue.readablePorts = [ + Entry.smartCodingHouse.analogPin.ULTRASONIC_ECHO, + Entry.smartCodingHouse.analogPin.TEMP_HUM, + Entry.smartCodingHouse.analogPin.IR_SENSOR, + Entry.smartCodingHouse.analogPin.LIGHT_SENSOR, + Entry.smartCodingHouse.analogPin.RAIN_SENSOR, + ]; + // 출력용 디지털 포트는 0으로 초기화 (readablePorts에 포함시키지 않음) + for (let key in Entry.smartCodingHouse.digitalPin) { + let port = Entry.smartCodingHouse.digitalPin[key]; + Entry.hw.sendQueue[port] = 0; + } + Entry.hw.update && Entry.hw.update(); + }, + + // 핀 매핑 (참고용) + analogPin: { + ULTRASONIC_TRIG: 0, + ULTRASONIC_ECHO: 1, + TEMP_HUM: 2, + IR_SENSOR: 3, + LIGHT_SENSOR: 4, + RAIN_SENSOR: 5, + }, + digitalPin: { + SERVO_MOTOR: 2, // 서보모터 제어 (D2) + DC_MOTOR: 3, // DC모터 (D3) – 방향과 속도를 하나의 값으로 결합 + OUTDOOR1_LED_RED: 5, // 1층 실외 빨강 LED + OUTDOOR1_LED_GREEN: 6, // 1층 실외 초록 LED + OUTDOOR1_LED_BLUE: 7, // 1층 실외 파란 LED + INDOOR_LED_RED: 8, // 실내 빨강 LED + INDOOR_LED_GREEN: 9, // 실내 초록 LED + INDOOR_LED_BLUE: 10, // 실내 파란 LED + TERRACE2_LED_RED: 11, // 2층 테라스 빨강 LED + TERRACE2_LED_GREEN: 12, // 2층 테라스 초록 LED + TERRACE2_LED_BLUE: 13, // 2층 테라스 파란 LED + }, +}; + +Entry.smartCodingHouse.setLanguage = function () { + return { + ko: { + template: { + // 입력 블록 + set_ultrasonic_input: '초음파 센서: %1', + set_light_input: '조도 센서: %1', + set_temp_hum_input: '온습도 센서의 %1 가 %2 ', + set_ir_input: '적외선 센서: %1', + set_rain_input: '빗물 감지 센서: %1', + // 모드 블록 + run_smart_mode: '스마트코딩하우스 모드 실행: %1 시작하기', + // 출력 블록 + auto_door: '서보모터: 자동문 시스템', + open_door: '서보모터: 출입문 열기', + close_door: '서보모터: 출입문 닫기', + run_ceiling_fan: 'DC모터: 실링팬 가동 (%1)', + led_set_color: 'LED 조명 제어: 위치 %1, 색상 %2 으로 설정', + led_off: 'LED 끄기: 위치 %1', + }, + }, + en: { + template: { + set_ultrasonic_input: 'Ultrasonic Sensor: %1', + set_light_input: 'Light Sensor: %1', + set_temp_hum_input: 'Temp/Humidity Sensor: %1 %2', + set_ir_input: 'IR Sensor: %1', + set_rain_input: 'Rain Sensor: %1', + run_smart_mode: 'Run SmartCodingHouse mode: %1', + auto_door: 'Servo Motor: Auto Door', + open_door: 'Servo Motor: Open Door', + close_door: 'Servo Motor: Close Door', + run_ceiling_fan: 'DC Motor: Run ceiling fan (%1)', + led_set_color: 'LED Control: Location %1, Color %2', + led_off: 'LED Off: Location %1', + }, + }, + }; +}; + +Entry.smartCodingHouse.blockMenuBlocks = [ + // 입력 블록 + 'set_ultrasonic_input', + 'set_light_input', + 'set_temp_hum_input', + 'set_ir_input', + 'set_rain_input', + // 모드 블록 + 'run_smart_mode', + // 출력 블록 + 'auto_door', + 'open_door', + 'close_door', + 'run_ceiling_fan', + 'led_set_color', + 'led_off', +]; + +function hexToRgb(hex) { + hex = hex.replace(/^#/, ''); + if (hex.length === 3) { + hex = hex + .split('') + .map((x) => x + x) + .join(''); + } + let num = parseInt(hex, 16); + return { r: (num >> 16) & 255, g: (num >> 8) & 255, b: num & 255 }; +} +// RGB를 HSV로 변환하는 함수 +function rgbToHsv(r, g, b) { + // 0~255 범위의 값을 0~1 범위로 정규화 + r /= 255; + g /= 255; + b /= 255; + + // 최대값과 최소값 찾기 + let max = Math.max(r, g, b); + let min = Math.min(r, g, b); + let h, + s, + v = max; + let d = max - min; + + // 채도(saturation) 계산: 최대값이 0이면 0, 아니면 (최대-최소)/최대 + s = max === 0 ? 0 : d / max; + + // 색조(hue) 계산 + if (max === min) { + // 무채색인 경우(hue는 정의할 수 없음; 0으로 지정) + h = 0; + } else { + if (max === r) { + h = (g - b) / d + (g < b ? 6 : 0); + } else if (max === g) { + h = (b - r) / d + 2; + } else { + h = (r - g) / d + 4; + } + h /= 6; // 0~1 사이의 값으로 정규화 + } + + // 결과 객체 반환: h는 0~1, s는 0~1, v는 0~1 + return { h: h, s: s, v: v }; +} + +// HSV 값을 RGB로 변환하는 함수 +function hsvToRgb(h, s, v) { + let r, g, b; + const i = Math.floor(h * 6); + const f = h * 6 - i; + const p = v * (1 - s); + const q = v * (1 - f * s); + const t = v * (1 - (1 - f) * s); + switch (i % 6) { + case 0: + (r = v), (g = t), (b = p); + break; + case 1: + (r = q), (g = v), (b = p); + break; + case 2: + (r = p), (g = v), (b = t); + break; + case 3: + (r = p), (g = q), (b = v); + break; + case 4: + (r = t), (g = p), (b = v); + break; + case 5: + (r = v), (g = p), (b = q); + break; + } + return { + r: Math.round(r * 255), + g: Math.round(g * 255), + b: Math.round(b * 255), + }; +} + +// 블록이 아니라, 일반 함수로 선언 +Entry.smartCodingHouse.modeDoor = function () { + let port = Entry.smartCodingHouse.digitalPin.SERVO_MOTOR; + // 서보모터를 90도로 설정 + Entry.hw.sendQueue[port] = 4; + Entry.hw.update && Entry.hw.update(); + + setTimeout(() => { + Entry.hw.sendQueue[port] = 0; + Entry.hw.update && Entry.hw.update(); + }, 26); +}; + +Entry.smartCodingHouse.getBlocks = function () { + return { + set_ultrasonic_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['가까움', 'near'], + ['멀음', 'far'], + ], + value: 'near', + fontSize: 11, + }, + { + type: 'Block', + accept: 'string', + defaultType: 'number', + }, + ], + paramsKeyMap: { EXPECTED: 0, THRESHOLD: 1 }, + def: { + type: 'set_ultrasonic_input', + params: [null, { type: 'number', params: ['3'] }], + }, + class: 'SmartCodingHouseSensor', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + var expected = script.getField('EXPECTED', script); // "near" 또는 "far" + var threshold = script.getNumberValue('THRESHOLD', script); // 임계값 (기본 3) + var distance = Number(Entry.hw.portData.ultrasonic); + if (isNaN(distance)) return false; + // 센서 값이 임계값보다 작으면 "near", 이상이면 "far" + var actual = distance < threshold ? 'near' : 'far'; + return actual === expected; + }, + }, + + // ── 온습도 센서 블록 ───────────────────────────── + set_temp_hum_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['온도', 'temperature'], + ['습도', 'humidity'], + ], + value: 'temperature', + fontSize: 11, + }, + { + type: 'Dropdown', + // 온도일 경우 "덥다"/"춥다", 습도일 경우 "습하다"/"건조하다" + options: [ + ['덥다', 'hot'], + ['춥다', 'cold'], + ['습하다', 'wet'], + ['건조하다', 'dry'], + ], + value: 'hot', + fontSize: 11, + }, + ], + paramsKeyMap: { TYPE: 0, EXPECTED: 1 }, + def: { type: 'set_temp_hum_input', params: [null, null] }, + class: 'SmartCodingHouseSensor', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + var sensorType = script.getField('TYPE', script); // "temperature" 또는 "humidity" + var expected = script.getField('EXPECTED', script); + if (sensorType === 'temperature') { + var temp = Number(Entry.hw.portData.temperature); + if (isNaN(temp)) return false; + // 25℃를 기준으로 온도가 높으면 "hot", 낮으면 "cold" + var actual = temp > 25 ? 'hot' : 'cold'; + // 예상 결과가 온도 관련 옵션이 아니면 false 반환 + if (expected !== 'hot' && expected !== 'cold') return false; + return actual === expected; + } else { + var humi = Number(Entry.hw.portData.humidity); + if (isNaN(humi)) return false; + // 50%를 기준으로 습도가 높으면 "wet", 낮으면 "dry" + var actual = humi > 50 ? 'wet' : 'dry'; + if (expected !== 'wet' && expected !== 'dry') return false; + return actual === expected; + } + }, + }, + + set_light_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['어둡다', 'dark'], + ['밝다', 'bright'], + ], + value: 'dark', + fontSize: 11, + }, + ], + paramsKeyMap: { EXPECTED: 0 }, + def: { type: 'set_light_input', params: [null] }, + class: 'SmartCodingHouseSensor', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + var expected = script.getField('EXPECTED', script); // "dark" 또는 "bright" + var value = Number(Entry.hw.portData.a4); + if (isNaN(value)) return false; + // 값이 500 미만이면 "dark", 이상이면 "bright" + var actual = value > 500 ? 'dark' : 'bright'; + return actual === expected; + }, + }, + + set_ir_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['움직임 있음', 'move'], + ['움직임 없음', 'nomove'], + ], + value: 'move', + fontSize: 11, + }, + ], + paramsKeyMap: { EXPECTED: 0 }, + def: { type: 'set_ir_input', params: [null] }, + class: 'SmartCodingHouseSensor', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + var expected = script.getField('EXPECTED', script); // 'move' 또는 'nomove' + var sensorVal = Number(Entry.hw.portData.a3); + if (isNaN(sensorVal)) return false; + // 예를 들어, 센서가 움직임 있을 때 높은 값을 반환한다면: + var actual = sensorVal < 500 ? 'move' : 'nomove'; + return actual === expected; + }, + }, + + set_rain_input: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic_boolean_field', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['빗물 있음', 'rain'], + ['빗물 없음', 'norain'], + ], + value: 'rain', + fontSize: 11, + }, + ], + paramsKeyMap: { EXPECTED: 0 }, + def: { type: 'set_rain_input', params: [null] }, + class: 'SmartCodingHouseSensor', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + var expected = script.getField('EXPECTED', script); // 'rain' 또는 'norain' + let value = Number(Entry.hw.portData.a5); + if (isNaN(value)) return false; + var actual = value > 100 && value < 800 ? 'rain' : 'norain'; + return actual === expected; + }, + }, + // 모드 실행 블록 – 기획안의 모드(아침, 저녁, 비상, 시험 공부, 생일 파티)에 따라 LED, 모터, 서보모터를 제어 + // 모드 실행 블록 – 수정된 morning 케이스 + run_smart_mode: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['아침 루틴', 'morning'], + ['저녁 루틴', 'evening'], + ['비상 상황 모드', 'emergency'], + ['시험 공부 모드', 'study'], + ['생일 파티 모드', 'party'], + ], + value: 'morning', + fontSize: 11, + }, + { type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12 }, + ], + paramsKeyMap: { MODE: 0 }, + def: { params: [null, null], type: 'run_smart_mode' }, + class: 'SmartCodingHouseMode', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + var mode = script.getField('MODE', script); + var sq = Entry.hw.sendQueue; + switch (mode) { + case 'morning': + // 1,2층 실내: white LED + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_GREEN] = 255; + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_BLUE] = 255; + + // 1층 실외: green LED + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_RED] = 0; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_GREEN] = 255; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_BLUE] = 0; + + // 2층 테라스: green LED + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_RED] = 0; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_GREEN] = 255; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_BLUE] = 0; + + // 실링팬 구동 + sq[Entry.smartCodingHouse.digitalPin.DC_MOTOR] = 127 | 0x80; + break; + + case 'evening': + // 1층 실외(yellow), 2층 테라스(yellow)는 고정 + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_GREEN] = 255; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_BLUE] = 0; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_GREEN] = 255; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_BLUE] = 0; + + // 실내 조명을 여러 색상으로 순환 + const indoorR = Entry.smartCodingHouse.digitalPin.INDOOR_LED_RED; + const indoorG = Entry.smartCodingHouse.digitalPin.INDOOR_LED_GREEN; + const indoorB = Entry.smartCodingHouse.digitalPin.INDOOR_LED_BLUE; + + // 반복할 색상 배열 (red, orange, yellow, green, blue, purple) + const colorCycle = [ + [255, 0, 0], // red + [255, 165, 0], // orange + [255, 255, 0], // yellow + [0, 255, 0], // green + [0, 0, 255], // blue + [128, 0, 128], // purple + ]; + let idx = 0; + + // 재귀적으로 호출해서 색 변경 + function cycleIndoorColor() { + const [r, g, b] = colorCycle[idx]; + sq[indoorR] = r; + sq[indoorG] = g; + sq[indoorB] = b; + // 하드웨어에 갱신 + Entry.hw.update && Entry.hw.update(); + + // 다음 색상 + idx = (idx + 1) % colorCycle.length; + + // 1초 후 다음 색으로 + setTimeout(cycleIndoorColor, 2000); + } + + // 순환 시작 + cycleIndoorColor(); + + break; + + case 'emergency': + // 비상 상황 모드: 모든 LED red, 2층 테라스 팬, 1층 출입문 개방(서보모터 90도) + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_GREEN] = 0; + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_BLUE] = 0; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_GREEN] = 0; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_BLUE] = 0; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_GREEN] = 0; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_BLUE] = 0; + + // 실링팬 구동 + sq[Entry.smartCodingHouse.digitalPin.DC_MOTOR] = 127 | 0x80; + // 서보모터 구동 + sq[Entry.smartCodingHouse.digitalPin.SERVO_MOTOR] = 90; + Entry.smartCodingHouse.modeDoor(); + break; + + case 'study': + // 시험 공부 모드: 실내 yellow, 야외/테라스 orange + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_GREEN] = 255; + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_BLUE] = 0; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_GREEN] = 165; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_BLUE] = 0; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_GREEN] = 165; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_BLUE] = 0; + break; + + case 'party': + // 생일 파티 모드: 실내 red, 1층 실외 white, 2층 테라스 purple, 팬과 출입문 개방 + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_GREEN] = 0; + sq[Entry.smartCodingHouse.digitalPin.INDOOR_LED_BLUE] = 0; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_RED] = 255; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_GREEN] = 255; + sq[Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_BLUE] = 255; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_RED] = 128; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_GREEN] = 0; + sq[Entry.smartCodingHouse.digitalPin.TERRACE2_LED_BLUE] = 128; + + // 실링팬 구동 + sq[Entry.smartCodingHouse.digitalPin.DC_MOTOR] = 127 | 0x80; + // 서보모터 구동 + sq[Entry.smartCodingHouse.digitalPin.SERVO_MOTOR] = 90; + Entry.smartCodingHouse.modeDoor(); + break; + default: + } + return script.callReturn(); + }, + }, + auto_door: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [{ type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12 }], + def: { type: 'auto_door' }, + class: 'SmartCodingHouseActuator', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + let port = Entry.smartCodingHouse.digitalPin.SERVO_MOTOR; + + // 서보모터를 90으로 설정 + Entry.hw.sendQueue[port] = 3; + Entry.hw.update && Entry.hw.update(); + + // 1초 후 서보모터를 다시 0으로 자동 복귀 + setTimeout(() => { + Entry.hw.sendQueue[port] = 0; + Entry.hw.update && Entry.hw.update(); + }, 26); + + return script.callReturn(); + }, + }, + open_door: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [{ type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12 }], + def: { type: 'open_door' }, + class: 'SmartCodingHouseActuator', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + let port = Entry.smartCodingHouse.digitalPin.SERVO_MOTOR; + + // 서보모터를 90으로 설정 + Entry.hw.sendQueue[port] = 1; + Entry.hw.update && Entry.hw.update(); + + // 1초 후 서보모터를 다시 0으로 자동 복귀 + setTimeout(() => { + Entry.hw.sendQueue[port] = 0; + Entry.hw.update && Entry.hw.update(); + }, 26); + + return script.callReturn(); + }, + }, + close_door: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [{ type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12 }], + def: { type: 'close_door' }, + class: 'SmartCodingHouseActuator', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + let port = Entry.smartCodingHouse.digitalPin.SERVO_MOTOR; + + // 서보모터를 90으로 설정 + Entry.hw.sendQueue[port] = 2; + Entry.hw.update && Entry.hw.update(); + + // 1초 후 서보모터를 다시 0으로 자동 복귀 + setTimeout(() => { + Entry.hw.sendQueue[port] = 0; + Entry.hw.update && Entry.hw.update(); + }, 26); + + return script.callReturn(); + }, + }, + + run_ceiling_fan: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['ON', 'on'], + ['OFF', 'off'], + ], + value: 'on', + fontSize: 11, + }, + { type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12 }, + ], + paramsKeyMap: { STATE: 0 }, + def: { type: 'run_ceiling_fan', params: [null, null] }, + class: 'SmartCodingHouseActuator', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + // 드롭다운 메뉴에서 선택한 상태 읽기 ("on" 또는 "off") + var state = script.getField('STATE', script); + let port = Entry.smartCodingHouse.digitalPin.DC_MOTOR; + // "ON"이면 최대 속도 127, "OFF"이면 0 + let speed = state === 'on' ? 127 : 0; + // 기존값에서 방향 비트를 유지하고 속도 값만 업데이트 + let current = Entry.hw.sendQueue[port] || 0; + current = (current & 0x80) | speed; + // 강제로 시계방향 (0x80) 설정 + current |= 0x80; + Entry.hw.sendQueue[port] = current; + Entry.hw.update && Entry.hw.update(); + return script.callReturn(); + }, + }, + led_set_color: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['1층 실외', 'OUTDOOR1'], + ['실내', 'INDOOR'], + ['2층 테라스', 'TERRACE2'], + ], + value: 'OUTDOOR1', + fontSize: 11, + }, + { type: 'Color' }, + { type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12 }, + ], + paramsKeyMap: { LOCATION: 0, COLOR: 1 }, + def: { params: [null, null, null], type: 'led_set_color' }, + class: 'SmartCodingHouseLED', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + let location = script.getField('LOCATION', script); + let color = script.getStringField('COLOR', script); + if (!location) { + return script.callReturn(); + } + let rgb = hexToRgb(color); + let hsv = rgbToHsv(rgb.r, rgb.g, rgb.b); // RGB → HSV + hsv.s = 1.0; // 채도 100% + hsv.v = 1.0; // 밝기 100% + rgb = hsvToRgb(hsv.h, hsv.s, hsv.v); // HSV → RGB + + let pinR, pinG, pinB; + if (location === 'OUTDOOR1') { + pinR = Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_RED; + pinG = Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_GREEN; + pinB = Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_BLUE; + } else if (location === 'INDOOR') { + pinR = Entry.smartCodingHouse.digitalPin.INDOOR_LED_RED; + pinG = Entry.smartCodingHouse.digitalPin.INDOOR_LED_GREEN; + pinB = Entry.smartCodingHouse.digitalPin.INDOOR_LED_BLUE; + } else if (location === 'TERRACE2') { + pinR = Entry.smartCodingHouse.digitalPin.TERRACE2_LED_RED; + pinG = Entry.smartCodingHouse.digitalPin.TERRACE2_LED_GREEN; + pinB = Entry.smartCodingHouse.digitalPin.TERRACE2_LED_BLUE; + } + // LED 출력: 하드웨어 업데이트 전에 값 할당 + Entry.hw.sendQueue[pinR] = rgb.r; + Entry.hw.sendQueue[pinG] = rgb.g; + Entry.hw.sendQueue[pinB] = rgb.b; + // 강제로 하드웨어 업데이트 호출 (다른 LED 블록에서도 사용하는 패턴) + Entry.hw.update && Entry.hw.update(); + return script.callReturn(); + }, + }, + + led_off: { + color: EntryStatic.colorSet.block.default.HARDWARE, + outerLine: EntryStatic.colorSet.block.default.HARDWARE, + fontColor: '#fff', + skeleton: 'basic', + statements: [], + params: [ + { + type: 'Dropdown', + options: [ + ['1층 실내', 'INDOOR'], + ['1층 실외', 'OUTDOOR1'], + ['2층 테라스', 'TERRACE2'], + ], + value: 'INDOOR', + fontSize: 11, + }, + { type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12 }, + ], + paramsKeyMap: { LOCATION: 0 }, + def: { type: 'led_off', params: [null] }, + class: 'SmartCodingHouseLED', + isNotFor: ['smartCodingHouse'], + func: function (sprite, script) { + let location = script.getField('LOCATION', script); + let portR, portG, portB; + if (location === 'INDOOR') { + portR = Entry.smartCodingHouse.digitalPin.INDOOR_LED_RED; + portG = Entry.smartCodingHouse.digitalPin.INDOOR_LED_GREEN; + portB = Entry.smartCodingHouse.digitalPin.INDOOR_LED_BLUE; + } else if (location === 'OUTDOOR1') { + portR = Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_RED; + portG = Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_GREEN; + portB = Entry.smartCodingHouse.digitalPin.OUTDOOR1_LED_BLUE; + } else if (location === 'TERRACE2') { + portR = Entry.smartCodingHouse.digitalPin.TERRACE2_LED_RED; + portG = Entry.smartCodingHouse.digitalPin.TERRACE2_LED_GREEN; + portB = Entry.smartCodingHouse.digitalPin.TERRACE2_LED_BLUE; + } + Entry.hw.sendQueue[portR] = 0; + Entry.hw.sendQueue[portG] = 0; + Entry.hw.sendQueue[portB] = 0; + return script.callReturn(); + }, + }, + }; +}; + +module.exports = Entry.smartCodingHouse; From d144e7f4515325a6e3aa7e68b70f8ef8f5ee0137 Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Thu, 17 Apr 2025 16:20:49 +0900 Subject: [PATCH 11/12] =?UTF-8?q?feat:=20=EC=97=90=EC=9D=B4=EB=9F=AD?= =?UTF-8?q?=EC=8A=A4=20=EB=84=A4=EB=AA=A8=20lint=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hardwareLite/block_alux_nemo_lite.js | 715 ++++++++++-------- 1 file changed, 394 insertions(+), 321 deletions(-) diff --git a/src/playground/blocks/hardwareLite/block_alux_nemo_lite.js b/src/playground/blocks/hardwareLite/block_alux_nemo_lite.js index 207bdedc27..05ec6b21cc 100644 --- a/src/playground/blocks/hardwareLite/block_alux_nemo_lite.js +++ b/src/playground/blocks/hardwareLite/block_alux_nemo_lite.js @@ -2,7 +2,7 @@ const _throttle = require('lodash/throttle'); -(function() { +(function () { const NEMOLITE_INDEX = 0x42; //66 const RELEASE_VERSION = 1; const SERIAL_INTERVAL = 32; @@ -11,7 +11,7 @@ const _throttle = require('lodash/throttle'); const RECEIVED_PACKET_LENGTH = 24; Entry.ProboNemoLite = new (class ProboNemoLite { //region constructor - constructor() { + constructor() { this.id = '630101'; this.name = 'ProboNemoLite'; this.url = 'https://imssam.me'; @@ -33,8 +33,8 @@ const _throttle = require('lodash/throttle'); const eventSetting = { leading: true, - trailing: false - } + trailing: false, + }; this.buttonEvent = _throttle( () => { Entry.engine.fireEvent('nemolite_event_button'); @@ -45,8 +45,7 @@ const _throttle = require('lodash/throttle'); this.motionEvent = _throttle( () => { Entry.engine.fireEvent('nemolite_event_motion'); - } - , + }, EVENT_INTERVAL, eventSetting ); @@ -56,7 +55,7 @@ const _throttle = require('lodash/throttle'); this.qSize = 128; this.qBuffer = new Uint8Array(this.qSize + 2).fill(-1); this.receivedPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); - this.sendPacket = new Uint8Array(SEND_PACKET_LENGTH).fill(0); + this.sendPacket = new Uint8Array(SEND_PACKET_LENGTH).fill(0); this.textPacket = new Uint8Array(0).fill(0); this.pLength = 0; // packet length this.process = false; // packet process @@ -64,7 +63,9 @@ const _throttle = require('lodash/throttle'); this.version = 0; this.sendFlag = true; - this.soundKeyArray = [30578, 28861, 27241, 25713, 24270, 22908, 21622, 20408, 19263, 18182, 17161, 16198]; + this.soundKeyArray = [ + 30578, 28861, 27241, 25713, 24270, 22908, 21622, 20408, 19263, 18182, 17161, 16198, + ]; this.sendIndex = { cmd0: 0, cmd1: 1, @@ -92,12 +93,12 @@ const _throttle = require('lodash/throttle'); buzzer0: 23, buzzer1: 24, ledRead: 25, - textSize: 26 // 텍스트 크기는 따로 계산하여 입력한다. + textSize: 26, // 텍스트 크기는 따로 계산하여 입력한다. }; this.receivedIndex = { cmd0: 0, cmd1: 1, - size: 2, + size: 2, accelAx0: 3, accelAx1: 4, accelAy0: 5, @@ -105,7 +106,7 @@ const _throttle = require('lodash/throttle'); accelAz0: 7, accelAz1: 8, accelALi: 9, // Linear - accelD: 10, // Motion + accelD: 10, // Motion illuminance: 11, extensionAnalog: 12, extensionDigital: 13, @@ -118,7 +119,7 @@ const _throttle = require('lodash/throttle'); ledRead: 20, compass: 21, timeCheck: 22, - checksum: 23 + checksum: 23, }; this.blockMenuBlocks = [ @@ -137,7 +138,7 @@ const _throttle = require('lodash/throttle'); 'nemolite_dropdown_index_0_5', 'nemolite_dropdown_index_1_5', 'nemolite_dropdown_led_columm', - + 'nemolite_title_namo_input', 'nemolite_when_button_state', 'nemolite_when_motion_sensing', @@ -148,7 +149,7 @@ const _throttle = require('lodash/throttle'); 'nemolite_get_acceleration_value', 'nemolite_get_illuminance_value', 'nemolite_get_convert_value', - + 'nemolite_title_namo_output', 'nemolite_set_display_led_icon', 'nemolite_set_display_led_custom_columm', @@ -160,7 +161,7 @@ const _throttle = require('lodash/throttle'); 'nemolite_set_play_note', 'nemolite_set_play_note_for_seconds', 'nemolite_set_stop_all_sound', - + 'nemolite_title_namo_extension', 'nemolite_ext_set_extension', 'nemolite_ext_set_extension_value', @@ -323,7 +324,8 @@ const _throttle = require('lodash/throttle'); nemolite_get_convert_value: '%1 의 값 %2 ~ %3 을 %4 ~ %5 으(로) 변환', nemolite_set_display_led_icon: 'LED 아이콘 %1 을 %2 속도로 출력 %3', - nemolite_set_display_led_custom_columm: 'LED %1 열의 %2%3%4%5%6%7%8 을 %9 속도로 출력 %10', + nemolite_set_display_led_custom_columm: + 'LED %1 열의 %2%3%4%5%6%7%8 을 %9 속도로 출력 %10', nemolite_set_display_led_text: 'LED %1 문자열을 %2 속도로 출력 %3', nemolite_set_delete_all_led: 'LED 출력 지우기 %1', nemolite_set_toggle_led_pixel: 'LED X: %1 Y: %2 %3 %4', @@ -492,10 +494,12 @@ const _throttle = require('lodash/throttle'); nemolite_get_button_analog_value: 'Analog value of %1 button', nemolite_get_acceleration_value: 'Acceleration sensor %1 value', nemolite_get_illuminance_value: 'Value of illuminance sensor', - nemolite_get_convert_value: 'change the value of %1 from %2 ~ %3 to %4 ~ %5', + nemolite_get_convert_value: + 'change the value of %1 from %2 ~ %3 to %4 ~ %5', nemolite_set_display_led_icon: 'LED icon %1 output %2 speed %3', - nemolite_set_display_led_custom_columm: 'LED %1 columm %2%3%4%5%6%7%8 at %9 speed %10', + nemolite_set_display_led_custom_columm: + 'LED %1 columm %2%3%4%5%6%7%8 at %9 speed %10', nemolite_set_display_led_text: 'LED %1 string output %2 speed %3', nemolite_set_delete_all_led: 'Clear LED output %1', nemolite_set_toggle_led_pixel: 'LED X: %1 Y: %2 %3 %4', @@ -535,7 +539,7 @@ const _throttle = require('lodash/throttle'); x: 0, y: 0, z: 0, - linear: 0 + linear: 0, }, motion: { front: 0, @@ -552,8 +556,8 @@ const _throttle = require('lodash/throttle'); analog: 0, digital: 0, // logic fall: 0, // falling edge - rise: 0, // rising edge - both: 0 // change edge + rise: 0, // rising edge + both: 0, // change edge }, switch: { s1: { @@ -583,7 +587,7 @@ const _throttle = require('lodash/throttle'); fall: 0, rise: 0, both: 0, - } + }, }, ledRead: { state: 0, @@ -594,7 +598,7 @@ const _throttle = require('lodash/throttle'); led: 0, sound: 0, extCount: 0, - } + }, }; this.setData = { @@ -618,15 +622,15 @@ const _throttle = require('lodash/throttle'); extension: 0, melody: { play: 0, - title: 0 + title: 0, }, note: { play: 0, - pitch: 0 + pitch: 0, }, ledRead: 0, }; - + this.lastData = { ledColumm: { pixel: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], @@ -667,7 +671,7 @@ const _throttle = require('lodash/throttle'); absolutAngle: 0, turnCount: 0, }; - + this.compass = { lastAnalog: 0, bias: 0, @@ -683,7 +687,7 @@ const _throttle = require('lodash/throttle'); if (Entry.hwLite && Entry.hwLite.serial) { Entry.hwLite.serial.update(); - }; + } } //endregion @@ -694,16 +698,14 @@ const _throttle = require('lodash/throttle'); modePacket[0] = 0x63; modePacket[1] = 0x36; - while(true) { + while (true) { const response = await Entry.hwLite.serial.sendAsyncWithThrottle(modePacket); if (response[0] !== NEMOLITE_INDEX) { modePacket[0] = 0x24; modePacket[1] = 0x42; } else { - this.version = (response.length === 1) - ? 0 - : response[1]; + this.version = response.length === 1 ? 0 : response[1]; break; } await Entry.Utils.sleep(100); @@ -734,14 +736,14 @@ const _throttle = require('lodash/throttle'); // 디바이스에서 값을 읽어온다. //region handleLocalData handleLocalData(buffer) { - buffer.forEach(b => this.qEnqueue(b)); - - while(this.qCount() >= this.receivedPacket.length) { + buffer.forEach((b) => this.qEnqueue(b)); + + while (this.qCount() >= this.receivedPacket.length) { if (!this.process) { - while(this.qCount() > 0) { - if (this.receivedPacket[0] !== 0xCD) { + while (this.qCount() > 0) { + if (this.receivedPacket[0] !== 0xcd) { this.receivedPacket[0] = this.qDequeue(); - } else if (this.receivedPacket[1] !== 0xDA) { + } else if (this.receivedPacket[1] !== 0xda) { this.receivedPacket[1] = this.qDequeue(); } else { this.receivedPacket[2] = this.qDequeue(); @@ -751,13 +753,15 @@ const _throttle = require('lodash/throttle'); } } } - - if (this.process && (this.qCount() >= this.pLength)) { + + if (this.process && this.qCount() >= this.pLength) { for (let i = 3; i < this.pLength; i++) { this.receivedPacket[i] = this.qDequeue(); } - if (this.receivedPacket[this.pLength - 1] === this.checksum(this.receivedPacket)) { + if ( + this.receivedPacket[this.pLength - 1] === this.checksum(this.receivedPacket) + ) { // 상태 확인 코드이므로 가장 먼저 해석 this.parsingTimeCheck(this.receivedPacket); @@ -775,7 +779,7 @@ const _throttle = require('lodash/throttle'); this.receivedPacket = new Uint8Array(RECEIVED_PACKET_LENGTH).fill(-1); this.process = false; this.sendFlag = true; - this.pLength = 0; + this.pLength = 0; if (this.setZeroFlag) { this.setZeroFlag = false; @@ -784,17 +788,14 @@ const _throttle = require('lodash/throttle'); } if (this.sendFlag) { - setTimeout( - () => { - if (Entry.hwLite && Entry.hwLite.serial) { - Entry.hwLite.serial.update(); - this.sendFlag = false; - } - }, - SERIAL_INTERVAL - ); - }; - }//endregion + setTimeout(() => { + if (Entry.hwLite && Entry.hwLite.serial) { + Entry.hwLite.serial.update(); + this.sendFlag = false; + } + }, SERIAL_INTERVAL); + } + } //endregion //디바이스에 값을 쓴다. //region requestLocalData @@ -830,11 +831,11 @@ const _throttle = require('lodash/throttle'); return packet; } - }//endregion + } //endregion qEnqueue(data) { this.qBuffer[this.qRear] = data; - this.qRear = (this.qRear + 1) % this.qSize + this.qRear = (this.qRear + 1) % this.qSize; } qDequeue() { @@ -845,9 +846,9 @@ const _throttle = require('lodash/throttle'); } qCount() { - return (this.qFront <= this.qRear) - ? (this.qRear - this.qFront) - : (this.qSize - this.qFront + this.qRear); + return this.qFront <= this.qRear + ? this.qRear - this.qFront + : this.qSize - this.qFront + this.qRear; } handleButtonEventInterval() { @@ -857,23 +858,23 @@ const _throttle = require('lodash/throttle'); handleMotionlEventInterval() { this.motionEventIntervalId = setInterval(this.motionEvent.bind(this), EVENT_INTERVAL); } - + checksum(packet) { let checker = 0; const length = packet[2] + 2; - for(let i = 3; i < length; i++) { + for (let i = 3; i < length; i++) { checker += packet[i]; } - return (checker & 0xFF); + return checker & 0xff; } - + getMonitorPort() { const monitor = { AA1: this.device.switch.s1.analog, AA2: this.device.switch.s2.analog, AA3: this.device.switch.s3.analog, AA4: this.device.switch.s4.analog, - } + }; return { ...monitor }; } @@ -882,16 +883,17 @@ const _throttle = require('lodash/throttle'); for (let i = 0; i < 3; i++) { const lowData = buffer[i * 2 + 3]; const highData = buffer[i * 2 + 4]; - const temp = (lowData & 0x80) === 0x80 - ? (0x10000 - ((lowData << 8) | highData)) * -1 - : (lowData << 8) | highData; + const temp = + (lowData & 0x80) === 0x80 + ? (0x10000 - ((lowData << 8) | highData)) * -1 + : (lowData << 8) | highData; const key = this.getAccelNameKey(i); this.getData.accel[key] = temp / 10.0; } - this.getData.accel.linear = buffer[this.receivedIndex.accelALi] - }; - - pasingAccelD(buffer) { + this.getData.accel.linear = buffer[this.receivedIndex.accelALi]; + } + + pasingAccelD(buffer) { const data = buffer[this.receivedIndex.accelD]; for (let i = 0; i < 8; i++) { const key = this.getMotionNameKey(i); @@ -908,7 +910,7 @@ const _throttle = require('lodash/throttle'); this.getData.extension.analog = analog; - this.extension.value = analog + (this.state.extCount * 255) + this.extension.bias; + this.extension.value = analog + this.state.extCount * 255 + this.extension.bias; this.extension.angle = this.getConvertMap(this.extension.value % 255, 0, 255, 0, 360); this.extension.absolutAngle = this.getConvertMap(analog, 0, 255, 0, 360); this.extension.turnCount = Math.round(this.extension.value / 255); @@ -917,13 +919,14 @@ const _throttle = require('lodash/throttle'); parsingExtensionDigital(buffer) { for (let i = 0; i < 4; i++) { const key = this.getButtonStateKey(i); - this.getData.extension[key] = (buffer[this.receivedIndex.extensionDigital] >> (7 - i)) & 0x01; + this.getData.extension[key] = + (buffer[this.receivedIndex.extensionDigital] >> (7 - i)) & 0x01; } } pasingSwitchAnalog(buffer) { for (let i = 0; i < 4; i++) { - const nameKey = this.getButtonNameKey(i); + const nameKey = this.getButtonNameKey(i); this.getData.switch[nameKey].analog = buffer[this.receivedIndex.switchAnalog1 + i]; } } @@ -935,18 +938,18 @@ const _throttle = require('lodash/throttle'); (buffer[this.receivedIndex.switchDigitalAB] >> (i + 4)) & 0x01, (buffer[this.receivedIndex.switchDigitalAB] >> i) & 0x01, (buffer[this.receivedIndex.switchDigitalCD] >> (i + 4)) & 0x01, - (buffer[this.receivedIndex.switchDigitalCD] >> i) & 0x01 - ]; + (buffer[this.receivedIndex.switchDigitalCD] >> i) & 0x01, + ]; for (let j = 0; j < 4; j++) { const stateKey = this.getButtonStateKey(j); this.getData.switch[nameKey][stateKey] = value[j]; } } - }; + } parsingLedRead(buffer) { const state = (buffer[this.receivedIndex.ledRead] >> 7) & 0x01; - const counter = buffer[this.receivedIndex.ledRead] & 0x7F; + const counter = buffer[this.receivedIndex.ledRead] & 0x7f; if (this.lastData.ledRead.count != counter) { this.getData.ledRead.state = state; @@ -955,8 +958,7 @@ const _throttle = require('lodash/throttle'); this.lastData.ledRead.state = state; this.lastData.ledRead.count = counter; } - - }; + } parsingCompass(buffer) { const analog = buffer[this.receivedIndex.compass]; @@ -967,7 +969,7 @@ const _throttle = require('lodash/throttle'); } else if (analog > this.compass.lastAnalog + 150) { this.compass.absolutTurnCount--; } - this.compass.value = analog + (this.compass.absolutTurnCount * 255) + this.compass.bias; + this.compass.value = analog + this.compass.absolutTurnCount * 255 + this.compass.bias; this.compass.angle = this.getConvertMap(this.compass.value % 255, 0, 255, 0, 360); this.compass.absolutAngle = this.getConvertMap(analog, 0, 255, 0, 360); this.compass.turnCount = Math.round(this.compass.value / 255); @@ -977,18 +979,20 @@ const _throttle = require('lodash/throttle'); this.compass.direction = 2; // 남 } else if (163 <= analog && analog < 227) { this.compass.direction = 1; // 서 - } else { // 227-34 + } else { + // 227-34 this.compass.direction = 3; // 북 } this.compass.lastAnalog = analog; - }; + } parsingTimeCheck(buffer) { const key = ['led', 'sound', 'extCount']; for (let i = 0; i < 3; i++) { - this.getData.timeCheck[key[i]] = (buffer[this.receivedIndex.timeCheck] >> (6 - (i * 2)) & 0x03); + this.getData.timeCheck[key[i]] = + (buffer[this.receivedIndex.timeCheck] >> (6 - i * 2)) & 0x03; if (this.setZeroFlag) { this.lastData.timeCheck[key[i]] = this.getData.timeCheck[key[i]]; @@ -1000,7 +1004,8 @@ const _throttle = require('lodash/throttle'); if (i === 2) { //+방향 일 때: 0->1->2->3->0->... //-방향 일 때: 0->3->2->1->0->... - const diff = this.getData.timeCheck[key[i]] - this.lastData.timeCheck[key[i]]; + const diff = + this.getData.timeCheck[key[i]] - this.lastData.timeCheck[key[i]]; if (diff === 1 || diff === -3) { this.state[key[i]]++; } else if (diff === -1 || diff === 3) { @@ -1013,15 +1018,15 @@ const _throttle = require('lodash/throttle'); } } } - }; + } PreparePacket() { const sendSize = this.sendPacket.length; const textSize = this.textPacket.length; const packetSize = sendSize + textSize + 1; - - this.sendPacket[0] = 0xAD; - this.sendPacket[1] = 0xDA; + + this.sendPacket[0] = 0xad; + this.sendPacket[1] = 0xda; this.sendPacket[2] = packetSize - 3; return new Uint8Array(packetSize).fill(0); @@ -1032,15 +1037,15 @@ const _throttle = require('lodash/throttle'); let nextPage = false; this.state.led = 2; - for(let i = 0; i < 14; i++) { + for (let i = 0; i < 14; i++) { const index = this.sendIndex.led7x1 + i; this.sendPacket[index] = this.setData.ledColumm.pixel[i]; - if ((index > 6) && (this.sendPacket[index] > 0)) { + if (index > 6 && this.sendPacket[index] > 0) { nextPage = true; } } - this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledColumm.speed >> 8) & 0x7F; - this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledColumm.speed & 0xFF; + this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledColumm.speed >> 8) & 0x7f; + this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledColumm.speed & 0xff; this.sendPacket[this.sendIndex.led7x1] |= 0x80; if (nextPage) { @@ -1050,8 +1055,8 @@ const _throttle = require('lodash/throttle'); this.lastData.ledColumm.pixel = this.setData.ledColumm.pixel; this.lastData.ledColumm.speed = this.setData.ledColumm.speed; } - }; - + } + addLedClear() { if (this.setData.ledClear === 1) { this.setData.ledClear = 0; @@ -1061,92 +1066,94 @@ const _throttle = require('lodash/throttle'); return false; } } - + addLedPixel() { const state = this.setData.ledPixel.state; if (state) { const index = this.setData.ledPixel.index; - this.sendPacket[this.sendIndex.ledPixel] = ((state & 0x03) << 6) | (index & 0x3F); + this.sendPacket[this.sendIndex.ledPixel] = ((state & 0x03) << 6) | (index & 0x3f); this.setData.ledPixel.index = 0; this.setData.ledPixel.state = 0; } - }; - + } + addLedSet() { if (this.state.led === 'i'.charCodeAt()) { this.state.led = 2; - this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledIcon.speed >> 8) & 0xFF; - this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledIcon.speed & 0xFF; + this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledIcon.speed >> 8) & 0xff; + this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledIcon.speed & 0xff; this.sendPacket[this.sendIndex.ledSet] = this.setData.ledIcon.index; this.lastData.ledIcon.index = this.setData.ledIcon.index; this.lastData.ledIcon.speed = this.setData.ledIcon.speed; } - }; - + } + addSetExtension() { this.sendPacket[this.sendIndex.portSet] = this.setData.extension; - }; - + } + addMelody() { if (this.state.sound === 'm'.charCodeAt()) { this.state.sound = 2; - this.sendPacket[this.sendIndex.melody] = (this.setData.melody.play << 7) | (this.setData.melody.title & 0x7F); + this.sendPacket[this.sendIndex.melody] = + (this.setData.melody.play << 7) | (this.setData.melody.title & 0x7f); } - }; - + } + addBuzzer() { if (this.state.note === 1) { this.state.note = 2; const pitch = this.setData.note.pitch; if (0 <= pitch && pitch <= 47) { - const n = (pitch / 12) & 0xFF; + const n = (pitch / 12) & 0xff; const v = pitch % 12; let r = 2; for (let i = 0; i < n; i++) { r *= 2; } const hertz = this.soundKeyArray[v] / r; - this.sendPacket[this.sendIndex.buzzer0] = (this.setData.note.play << 7) | ((hertz >> 8) & 0x7F); - this.sendPacket[this.sendIndex.buzzer1] = hertz & 0xFF; + this.sendPacket[this.sendIndex.buzzer0] = + (this.setData.note.play << 7) | ((hertz >> 8) & 0x7f); + this.sendPacket[this.sendIndex.buzzer1] = hertz & 0xff; } } - }; - + } + addLedRead() { this.sendPacket[this.sendIndex.ledRead] = this.setData.ledRead; this.setData.ledRead = 0; - }; - + } + addText() { if (this.state.led === 't'.charCodeAt()) { this.state.led = 2; const size = this.setData.ledText.text.length; - const text = this.setData.ledText.text; - + const text = this.setData.ledText.text; + this.textPacket = new Uint8Array(size); for (let i = 0; i < size; i++) { this.textPacket[i] = text[i].charCodeAt(); } this.sendPacket[this.sendIndex.textSize] = size; - this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledText.speed >> 8) & 0x7F; - this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledText.speed & 0xFF; + this.sendPacket[this.sendIndex.ledMs0] = (this.setData.ledText.speed >> 8) & 0x7f; + this.sendPacket[this.sendIndex.ledMs1] = this.setData.ledText.speed & 0xff; this.lastData.ledText.text = text; this.lastData.ledText.speed = this.setData.ledText.speed; this.setData.ledText.text = ''; } - }; - + } + getButtonNameKey(data) { - const key = ['s1', 's2', 's3','s4']; + const key = ['s1', 's2', 's3', 's4']; const num = Number(data); if (0 <= num && num <= 3) { return key[num]; - } else { + } else { switch (data) { case Lang.template.nemolite_item_s1: - return key[0]; + return key[0]; case Lang.template.nemolite_item_s2: return key[1]; case Lang.template.nemolite_item_s3: @@ -1198,7 +1205,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_motion_3: return key[2]; case Lang.template.nemolite_item_motion_4: - return key[3]; + return key[3]; case Lang.template.nemolite_item_motion_5: return key[4]; case Lang.template.nemolite_item_motion_6: @@ -1213,7 +1220,7 @@ const _throttle = require('lodash/throttle'); } } - getAccelNameKey(data) { + getAccelNameKey(data) { const key = ['x', 'y', 'z', 'linear']; const num = Number(data); if (0 <= num && num <= 3) { @@ -1236,7 +1243,7 @@ const _throttle = require('lodash/throttle'); getLedSpeedValue(data) { const num = Number(data); - switch(num) { + switch (num) { case 0: return 0; case 1: @@ -1248,20 +1255,20 @@ const _throttle = require('lodash/throttle'); case 4: return 50; case 5: - return 20 + return 20; default: - return (num < 0) ? 0 : 500; + return num < 0 ? 0 : 500; } } getLedIconIndexValue(data) { const num = Number(data); if (0 <= num && num <= 32) { - return (num + 1); - } else { + return num + 1; + } else { switch (data) { case Lang.template.nemolite_item_smile: - return 1; + return 1; case Lang.template.nemolite_item_not_much: return 2; case Lang.template.nemolite_item_good: @@ -1269,7 +1276,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_bad: return 4; case Lang.template.nemolite_item_wink: - return 5; + return 5; case Lang.template.nemolite_item_cry: return 6; case Lang.template.nemolite_item_absurd: @@ -1277,7 +1284,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_peck: return 8; case Lang.template.nemolite_item_arrow_1: - return 9; + return 9; case Lang.template.nemolite_item_arrow_2: return 10; case Lang.template.nemolite_item_arrow_3: @@ -1285,7 +1292,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_arrow_4: return 12; case Lang.template.nemolite_item_arrow_5: - return 13; + return 13; case Lang.template.nemolite_item_arrow_6: return 14; case Lang.template.nemolite_item_arrow_7: @@ -1293,7 +1300,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_arrow_8: return 16; case Lang.template.nemolite_item_spade: - return 17; + return 17; case Lang.template.nemolite_item_club: return 18; case Lang.template.nemolite_item_diamond: @@ -1305,7 +1312,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_x: return 22; case Lang.template.nemolite_item_triangle: - return 23; + return 23; case Lang.template.nemolite_item_square: return 24; case Lang.template.nemolite_item_note_1: @@ -1313,7 +1320,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_note_2: return 26; case Lang.template.nemolite_item_note_3: - return 27; + return 27; case Lang.template.nemolite_item_dice_1: return 28; case Lang.template.nemolite_item_dice_2: @@ -1321,7 +1328,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_dice_3: return 30; case Lang.template.nemolite_item_dice_4: - return 31; + return 31; case Lang.template.nemolite_item_dice_5: return 32; case Lang.template.nemolite_item_dice_6: @@ -1332,14 +1339,14 @@ const _throttle = require('lodash/throttle'); } } - getLedColummKey(data) { + getLedColummKey(data) { const num = Number(data); if (0 <= num && num <= 13) { return num; } else { - switch (data) { + switch (data) { case Lang.template.nemolite_item_first: - return 0; + return 0; case Lang.template.nemolite_item_second: return 1; case Lang.template.nemolite_item_third: @@ -1347,7 +1354,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_fourth: return 3; case Lang.template.nemolite_item_fifth: - return 4; + return 4; case Lang.template.nemolite_item_sixth: return 5; case Lang.template.nemolite_item_seventh: @@ -1355,7 +1362,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_eighth: return 7; case Lang.template.nemolite_item_ninth: - return 8; + return 8; case Lang.template.nemolite_item_tenth: return 9; case Lang.template.nemolite_itme_eleventh: @@ -1363,7 +1370,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_twelfth: return 11; case Lang.template.nemolite_item_thirteenth: - return 12; + return 12; case Lang.template.nemolite_itme_fourteenth: return 13; default: @@ -1375,11 +1382,11 @@ const _throttle = require('lodash/throttle'); getPitchKey(data) { const num = Number(data); if (0 <= num && num <= 32) { - return (num + 1); - } else { + return num + 1; + } else { switch (data) { case Lang.template.nemolite_item_lc: - return 0; + return 0; case Lang.template.nemolite_item_lcs: return 1; case Lang.template.nemolite_item_ld: @@ -1387,7 +1394,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_lds: return 3; case Lang.template.nemolite_item_le: - return 4; + return 4; case Lang.template.nemolite_item_lf: return 5; case Lang.template.nemolite_item_lfs: @@ -1395,7 +1402,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_lg: return 7; case Lang.template.nemolite_item_lgs: - return 8; + return 8; case Lang.template.nemolite_item_la: return 9; case Lang.template.nemolite_item_las: @@ -1403,7 +1410,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_lb: return 11; case Lang.template.nemolite_item_mc: - return 12; + return 12; case Lang.template.nemolite_item_mcs: return 13; case Lang.template.nemolite_item_md: @@ -1411,7 +1418,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_mds: return 15; case Lang.template.nemolite_item_me: - return 16; + return 16; case Lang.template.nemolite_item_mf: return 17; case Lang.template.nemolite_item_mfs: @@ -1423,7 +1430,7 @@ const _throttle = require('lodash/throttle'); case Lang.template.nemolite_item_ma: return 21; case Lang.template.nemolite_item_mas: - return 22; + return 22; case Lang.template.nemolite_item_mb: return 23; case Lang.template.nemolite_item_hc: @@ -1437,7 +1444,7 @@ const _throttle = require('lodash/throttle'); getSwitchValue(data) { const num = Number(data); if (0 <= num && num <= 2) { - return (num + 1); + return num + 1; } else { switch (data) { case Lang.template.nemolite_item_off_text: @@ -1457,7 +1464,7 @@ const _throttle = require('lodash/throttle'); getMelodyKey(data) { const num = Number(data); if (0 <= num && num <= 6) { - return (num + 1); + return num + 1; } else { switch (data) { case Lang.template.nemolite_item_do_re_mi_song: @@ -1480,7 +1487,7 @@ const _throttle = require('lodash/throttle'); } } - getExtensionKey(data) { + getExtensionKey(data) { switch (data) { case '0': // 스위치 case '1': // 적외선 @@ -1583,7 +1590,7 @@ const _throttle = require('lodash/throttle'); } } - delayCallReturnUsingFlag(script, startCode, callReturnFlag) { + delayCallReturnUsingFlag(script, startCode, callReturnFlag) { if (!script.isStart) { script.isStart = true; script.timeFlag = 1; @@ -1635,7 +1642,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -1683,7 +1690,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -1692,7 +1699,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -1740,7 +1747,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -1749,9 +1756,9 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); - }, + }, syntax: { js: [], py: [ @@ -1801,7 +1808,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -1810,7 +1817,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -1842,7 +1849,7 @@ const _throttle = require('lodash/throttle'); }, ], }, - }, + }, nemolite_dropdown_coordinate_acceleration: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -1862,7 +1869,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -1871,7 +1878,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -1947,7 +1954,7 @@ const _throttle = require('lodash/throttle'); value: 0, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -1956,9 +1963,9 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); - }, + }, syntax: { js: [], py: [ @@ -2032,7 +2039,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -2041,7 +2048,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2091,7 +2098,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -2100,7 +2107,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2114,7 +2121,11 @@ const _throttle = require('lodash/throttle'); options: [ [Lang.template.nemolite_item_do_re_mi_song, 0], [Lang.template.nemolite_item_an_island_baby, 1], - [Lang.template.nemolite_item_twinkle_twinkle_little_star, 2], + [ + Lang.template + .nemolite_item_twinkle_twinkle_little_star, + 2, + ], [Lang.template.nemolite_item_spring_in_my_hometown, 3], [Lang.template.nemolite_item_for_elise, 4], [Lang.template.nemolite_item_celebrated_chop_waltz, 5], @@ -2166,13 +2177,13 @@ const _throttle = require('lodash/throttle'); [Lang.template.nemolite_item_ma, 21], [Lang.template.nemolite_item_mas, 22], [Lang.template.nemolite_item_mb, 23], - [Lang.template.nemolite_item_hc, 24] + [Lang.template.nemolite_item_hc, 24], ], value: 0, fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -2181,7 +2192,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2217,7 +2228,7 @@ const _throttle = require('lodash/throttle'); [Lang.template.nemolite_item_ma, 21], [Lang.template.nemolite_item_mas, 22], [Lang.template.nemolite_item_mb, 23], - [Lang.template.nemolite_item_hc, 24] + [Lang.template.nemolite_item_hc, 24], ], value: 0, fontSize: 11, @@ -2230,7 +2241,7 @@ const _throttle = require('lodash/throttle'); }, ], }, - }, + }, nemolite_dropdown_extension_sensor: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -2256,7 +2267,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [null], @@ -2265,7 +2276,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2300,7 +2311,7 @@ const _throttle = require('lodash/throttle'); ], }, }, - + nemolite_dropdown_sensor_mode: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -2320,7 +2331,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [null], @@ -2329,7 +2340,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2377,7 +2388,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [null], @@ -2386,7 +2397,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2436,7 +2447,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -2445,7 +2456,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2475,7 +2486,7 @@ const _throttle = require('lodash/throttle'); }, ], }, - }, + }, nemolite_dropdown_index_1_5: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -2496,7 +2507,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -2505,7 +2516,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2564,7 +2575,7 @@ const _throttle = require('lodash/throttle'); fontSize: 11, bgColor: EntryStatic.colorSet.block.darken.HARDWARE, arrowColor: EntryStatic.colorSet.arrow.default.HARDWARE, - } + }, ], def: { params: [], @@ -2573,7 +2584,7 @@ const _throttle = require('lodash/throttle'); INDEX: 0, }, events: {}, - func: function(sprite, script) { + func: function (sprite, script) { return script.getField('INDEX'); }, syntax: { @@ -2611,7 +2622,7 @@ const _throttle = require('lodash/throttle'); }, ], }, - },// endregion + }, // endregion //======================================================================================== //region Input block //======================================================================================== @@ -2628,7 +2639,7 @@ const _throttle = require('lodash/throttle'); def: { type: 'nemolite_title_namo_input', }, - class : 'nemolite_input', + class: 'nemolite_input', isNotFor: ['ProboNemoLite'], }, // %1 %2 버튼 %3 @@ -2681,14 +2692,16 @@ const _throttle = require('lodash/throttle'); event: 'nemolite_event_button', class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const nameKey = Entry.ProboNemoLite.getButtonNameKey(script.getStringValue('INDEX')); - const stateKey = Entry.ProboNemoLite.getButtonStateKey(script.getStringValue('STATE')); + func: function (sprite, script) { + const nameKey = Entry.ProboNemoLite.getButtonNameKey( + script.getStringValue('INDEX') + ); + const stateKey = Entry.ProboNemoLite.getButtonStateKey( + script.getStringValue('STATE') + ); const value = Entry.ProboNemoLite.getData.switch[nameKey][stateKey]; - - return (value === 1) - ? script.callReturn() - : this.die(); + + return value === 1 ? script.callReturn() : this.die(); }, syntax: { js: [], @@ -2734,7 +2747,7 @@ const _throttle = require('lodash/throttle'); type: 'Block', accept: 'string', defaultType: 'number', - } + }, ], events: {}, def: { @@ -2753,13 +2766,13 @@ const _throttle = require('lodash/throttle'); event: 'nemolite_event_motion', class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const nameKey = Entry.ProboNemoLite.getMotionNameKey(script.getStringValue('INDEX')); + func: function (sprite, script) { + const nameKey = Entry.ProboNemoLite.getMotionNameKey( + script.getStringValue('INDEX') + ); const value = Entry.ProboNemoLite.getData.motion[nameKey]; - return (value === 1) - ? script.callReturn() - : this.die(); + return value === 1 ? script.callReturn() : this.die(); }, syntax: { js: [], @@ -2817,9 +2830,13 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const nameKey = Entry.ProboNemoLite.getButtonNameKey(script.getStringValue('INDEX')); - const stateKey = Entry.ProboNemoLite.getButtonStateKey(script.getStringValue('STATE')); + func: function (sprite, script) { + const nameKey = Entry.ProboNemoLite.getButtonNameKey( + script.getStringValue('INDEX') + ); + const stateKey = Entry.ProboNemoLite.getButtonStateKey( + script.getStringValue('STATE') + ); const value = Entry.ProboNemoLite.getData.switch[nameKey][stateKey]; return value; @@ -2873,8 +2890,10 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const nameKey = Entry.ProboNemoLite.getMotionNameKey(script.getStringValue('INDEX')); + func: function (sprite, script) { + const nameKey = Entry.ProboNemoLite.getMotionNameKey( + script.getStringValue('INDEX') + ); const value = Entry.ProboNemoLite.getData.motion[nameKey]; return value; @@ -2920,11 +2939,11 @@ const _throttle = require('lodash/throttle'); params: [ { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, ], type: 'nemolite_is_led_state_value', @@ -2935,12 +2954,12 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const x = script.getNumberValue('X'); const y = script.getNumberValue('Y'); const index = x * 7 + y + 1; // 1 ~ 49 let value = false; - Entry.ProboNemoLite.setData.ledRead = index; + Entry.ProboNemoLite.setData.ledRead = index; return Entry.ProboNemoLite.getData.ledRead.state; }, @@ -2993,8 +3012,10 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const nameKey = Entry.ProboNemoLite.getButtonNameKey(script.getStringValue('INDEX')); + func: function (sprite, script) { + const nameKey = Entry.ProboNemoLite.getButtonNameKey( + script.getStringValue('INDEX') + ); const value = Entry.ProboNemoLite.getData.switch[nameKey]['analog']; return value; }, @@ -3043,9 +3064,11 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const nameKey = Entry.ProboNemoLite.getAccelNameKey(script.getStringValue('INDEX')); - const value = Entry.ProboNemoLite.getData.accel[nameKey]; + func: function (sprite, script) { + const nameKey = Entry.ProboNemoLite.getAccelNameKey( + script.getStringValue('INDEX') + ); + const value = Entry.ProboNemoLite.getData.accel[nameKey]; return value; }, syntax: { @@ -3072,8 +3095,7 @@ const _throttle = require('lodash/throttle'); skeleton: 'basic_string_field', statements: [], template: Lang.template.nemolite_get_illuminance_value, - params: [ - ], + params: [], events: {}, def: { params: [], @@ -3082,7 +3104,7 @@ const _throttle = require('lodash/throttle'); paramsKeyMap: {}, class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const illuminance = Entry.ProboNemoLite.getData.illuminance; return illuminance; }, @@ -3137,23 +3159,23 @@ const _throttle = require('lodash/throttle'); params: [ { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, ], type: 'nemolite_get_convert_value', @@ -3167,13 +3189,19 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_input', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const value = script.getNumberValue('VALUE'); const inMin = script.getNumberValue('IN_MIN'); const inMax = script.getNumberValue('IN_MAX'); const outMin = script.getNumberValue('OUT_MIN'); const outMax = script.getNumberValue('OUT_MAX'); - return Entry.ProboNemoLite.getConvertMap(value, inMin, inMax, outMin, outMax); + return Entry.ProboNemoLite.getConvertMap( + value, + inMin, + inMax, + outMin, + outMax + ); }, syntax: { js: [], @@ -3206,7 +3234,7 @@ const _throttle = require('lodash/throttle'); }, ], }, - },//endregion + }, //endregion //======================================================================================== //region Output block //======================================================================================== @@ -3223,7 +3251,7 @@ const _throttle = require('lodash/throttle'); def: { type: 'nemolite_title_namo_output', }, - class : 'nemolite_output', + class: 'nemolite_output', isNotFor: ['ProboNemoLite'], }, // LED 아이콘 %1 을 %2 속도로 출력 %3 @@ -3270,20 +3298,25 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const index = Entry.ProboNemoLite.getLedIconIndexValue(script.getStringValue('INDEX')); - const speed = Entry.ProboNemoLite.getLedSpeedValue(script.getStringValue('SPEED')); + func: function (sprite, script) { + const index = Entry.ProboNemoLite.getLedIconIndexValue( + script.getStringValue('INDEX') + ); + const speed = Entry.ProboNemoLite.getLedSpeedValue( + script.getStringValue('SPEED') + ); - if ((Entry.ProboNemoLite.state.led === 0) - || (Entry.ProboNemoLite.lastData.ledIcon.index !== index) - || (Entry.ProboNemoLite.lastData.ledIcon.speed !== speed) + if ( + Entry.ProboNemoLite.state.led === 0 || + Entry.ProboNemoLite.lastData.ledIcon.index !== index || + Entry.ProboNemoLite.lastData.ledIcon.speed !== speed ) { Entry.ProboNemoLite.setData.ledIcon.index = index; Entry.ProboNemoLite.setData.ledIcon.speed = speed; - + Entry.ProboNemoLite.state.led = 'i'.charCodeAt(); } - + return script.callReturn(); }, syntax: { @@ -3373,31 +3406,31 @@ const _throttle = require('lodash/throttle'); }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'nemolite_dropdown_index_0_5', @@ -3419,8 +3452,10 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const index = Entry.ProboNemoLite.getLedColummKey(script.getStringValue('INDEX')); + func: function (sprite, script) { + const index = Entry.ProboNemoLite.getLedColummKey( + script.getStringValue('INDEX') + ); const value = [ script.getNumberValue('VALUE1'), script.getNumberValue('VALUE2'), @@ -3430,7 +3465,9 @@ const _throttle = require('lodash/throttle'); script.getNumberValue('VALUE6'), script.getNumberValue('VALUE7'), ]; - const speed = Entry.ProboNemoLite.getLedSpeedValue(script.getStringValue('SPEED')); + const speed = Entry.ProboNemoLite.getLedSpeedValue( + script.getStringValue('SPEED') + ); let pixel = 0; for (let i = 0; i < 7; i++) { if (value[i] > 0) { @@ -3440,15 +3477,16 @@ const _throttle = require('lodash/throttle'); } } - if (Entry.ProboNemoLite.state.led === 0 - || Entry.ProboNemoLite.lastData.ledColumm.pixel[index] !== pixel - || Entry.ProboNemoLite.lastData.ledColumm.speed !== speed + if ( + Entry.ProboNemoLite.state.led === 0 || + Entry.ProboNemoLite.lastData.ledColumm.pixel[index] !== pixel || + Entry.ProboNemoLite.lastData.ledColumm.speed !== speed ) { Entry.ProboNemoLite.state.led = 'c'.charCodeAt(); Entry.ProboNemoLite.setData.ledColumm.pixel[index] = pixel; Entry.ProboNemoLite.setData.ledColumm.speed = speed; } - + return script.callReturn(); }, syntax: { @@ -3528,7 +3566,7 @@ const _throttle = require('lodash/throttle'); params: [ { type: 'text', - params: [ 'Hello' ], + params: ['Hello'], }, { type: 'nemolite_dropdown_index_1_5', @@ -3543,14 +3581,17 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const text = script.getStringValue('TEXT'); - const speed = Entry.ProboNemoLite.getLedSpeedValue(script.getStringValue('SPEED')); + const speed = Entry.ProboNemoLite.getLedSpeedValue( + script.getStringValue('SPEED') + ); - if (Entry.ProboNemoLite.state.led === 0 - || Entry.ProboNemoLite.lastData.ledText.text !== text - || Entry.ProboNemoLite.lastData.ledText.speed !== speed - ) { + if ( + Entry.ProboNemoLite.state.led === 0 || + Entry.ProboNemoLite.lastData.ledText.text !== text || + Entry.ProboNemoLite.lastData.ledText.speed !== speed + ) { Entry.ProboNemoLite.state.led = 't'.charCodeAt(); Entry.ProboNemoLite.setData.ledText.text = text; Entry.ProboNemoLite.setData.ledText.speed = speed; @@ -3577,7 +3618,7 @@ const _throttle = require('lodash/throttle'); ], }, }, - + nemolite_set_delete_all_led: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -3600,9 +3641,9 @@ const _throttle = require('lodash/throttle'); paramsKeyMap: {}, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { Entry.ProboNemoLite.setData.ledClear = 1; - + return script.callReturn(); }, syntax: { @@ -3650,11 +3691,11 @@ const _throttle = require('lodash/throttle'); params: [ { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'number', - params: [ 0 ], + params: [0], }, { type: 'nemolite_dropdown_switch', @@ -3670,13 +3711,15 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const x = script.getNumberValue('X'); const y = script.getNumberValue('Y'); - if ((0 <= x && x <= 6) && (0 <= y && y <= 6)) { - const index = x * 7 + y + 1; // 1 ~ 49 - const state = Entry.ProboNemoLite.getSwitchValue(script.getNumberValue('STATE')); + if (0 <= x && x <= 6 && 0 <= y && y <= 6) { + const index = x * 7 + y + 1; // 1 ~ 49 + const state = Entry.ProboNemoLite.getSwitchValue( + script.getNumberValue('STATE') + ); Entry.ProboNemoLite.setData.ledPixel.state = state; Entry.ProboNemoLite.setData.ledPixel.index = index; @@ -3741,15 +3784,17 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const title = Entry.ProboNemoLite.getMelodyKey(script.getNumberValue('TITLE')); - + func: function (sprite, script) { + const title = Entry.ProboNemoLite.getMelodyKey( + script.getNumberValue('TITLE') + ); + if (Entry.ProboNemoLite.state.sound === 0) { Entry.ProboNemoLite.state.sound = 'm'.charCodeAt(); Entry.ProboNemoLite.setData.melody.play = 1; Entry.ProboNemoLite.setData.melody.title = title; } - + return script.callReturn(); }, syntax: { @@ -3802,23 +3847,32 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const title = Entry.ProboNemoLite.getMelodyKey(script.getNumberValue('TITLE')); + func: function (sprite, script) { + const title = Entry.ProboNemoLite.getMelodyKey( + script.getNumberValue('TITLE') + ); let flag = false; - const startCode = function() { + const startCode = function () { if (Entry.ProboNemoLite.state.sound === 0) { Entry.ProboNemoLite.state.soundBlockId = script.executor.id; Entry.ProboNemoLite.state.sound = 'm'.charCodeAt(); Entry.ProboNemoLite.setData.melody.play = 1; Entry.ProboNemoLite.setData.melody.title = title; } - } - - if ((Entry.ProboNemoLite.state.soundBlockId === script.executor.id) && (Entry.ProboNemoLite.state.sound === 0)) { + }; + + if ( + Entry.ProboNemoLite.state.soundBlockId === script.executor.id && + Entry.ProboNemoLite.state.sound === 0 + ) { flag = true; } - return Entry.ProboNemoLite.delayCallReturnUsingFlag(script, startCode, flag); + return Entry.ProboNemoLite.delayCallReturnUsingFlag( + script, + startCode, + flag + ); }, syntax: { js: [], @@ -3834,7 +3888,7 @@ const _throttle = require('lodash/throttle'); }, ], }, - }, + }, // %1 음을 %2 재생하기 %3 nemolite_set_play_note: { color: EntryStatic.colorSet.block.default.HARDWARE, @@ -3870,9 +3924,11 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const pitch = Entry.ProboNemoLite.getPitchKey(script.getNumberValue('PITCH')); - + func: function (sprite, script) { + const pitch = Entry.ProboNemoLite.getPitchKey( + script.getNumberValue('PITCH') + ); + Entry.ProboNemoLite.state.note = 1; Entry.ProboNemoLite.setData.note.play = 1; Entry.ProboNemoLite.setData.note.pitch = pitch; @@ -3939,24 +3995,31 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const pitch = Entry.ProboNemoLite.getPitchKey(script.getNumberValue('PITCH')); + func: function (sprite, script) { + const pitch = Entry.ProboNemoLite.getPitchKey( + script.getNumberValue('PITCH') + ); const time = script.getNumberValue('TIME') * 1000; - const startCode = function() { + const startCode = function () { if (Entry.ProboNemoLite.state.note === 0) { Entry.ProboNemoLite.state.noteBlockId = script.executor.id; Entry.ProboNemoLite.state.note = 1; Entry.ProboNemoLite.setData.note.play = 1; Entry.ProboNemoLite.setData.note.pitch = pitch; } - } - const stopCode = function() { + }; + const stopCode = function () { if (Entry.ProboNemoLite.state.noteBlockId === script.executor.id) { Entry.ProboNemoLite.state.note = 0; } - } + }; - return Entry.ProboNemoLite.delayCallReturnUsingTime(script, time, startCode, stopCode); + return Entry.ProboNemoLite.delayCallReturnUsingTime( + script, + time, + startCode, + stopCode + ); }, syntax: { js: [], @@ -4000,7 +4063,7 @@ const _throttle = require('lodash/throttle'); paramsKeyMap: {}, class: 'nemolite_output', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { Entry.ProboNemoLite.state.sound = 'm'.charCodeAt(); Entry.ProboNemoLite.setData.melody.play = 1; Entry.ProboNemoLite.setData.melody.title = 0; @@ -4037,7 +4100,7 @@ const _throttle = require('lodash/throttle'); def: { type: 'nemolite_title_namo_extension', }, - class : 'nemolite_extension', + class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], }, nemolite_ext_set_extension: { @@ -4074,8 +4137,10 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const type = Entry.ProboNemoLite.getExtensionKey(script.getStringValue('TYPE')); + func: function (sprite, script) { + const type = Entry.ProboNemoLite.getExtensionKey( + script.getStringValue('TYPE') + ); Entry.ProboNemoLite.setData.extension = type; return script.callReturn(); }, @@ -4110,7 +4175,7 @@ const _throttle = require('lodash/throttle'); paramsKeyMap: {}, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const value = Entry.ProboNemoLite.getData.extension.analog; return value; }, @@ -4159,7 +4224,7 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const value = script.getNumberValue('VALUE'); const analog = Entry.ProboNemoLite.getData.extension.analog; const count = Entry.ProboNemoLite.state.extCount; @@ -4201,7 +4266,7 @@ const _throttle = require('lodash/throttle'); { type: 'nemolite_dropdown_button_state_question', }, - null + null, ], type: 'nemolite_ext_is_extension_state', }, @@ -4210,8 +4275,10 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const stateKey = Entry.ProboNemoLite.getButtonStateKey(script.getStringValue('STATE')); + func: function (sprite, script) { + const stateKey = Entry.ProboNemoLite.getButtonStateKey( + script.getStringValue('STATE') + ); const value = Entry.ProboNemoLite.getData.extension[stateKey]; return value; }, @@ -4258,11 +4325,13 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const modeKey = Entry.ProboNemoLite.getSensorModeKey(script.getStringValue('TYPE')); + func: function (sprite, script) { + const modeKey = Entry.ProboNemoLite.getSensorModeKey( + script.getStringValue('TYPE') + ); const value = Entry.ProboNemoLite.extension[modeKey]; return value; - }, + }, syntax: { js: [], py: [ @@ -4307,14 +4376,13 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const value = script.getNumberValue('VALUE'); const analog = Entry.ProboNemoLite.getData.compass; const count = Entry.ProboNemoLite.compass.absolutTurnCount; Entry.ProboNemoLite.compass.bias = value - (analog + count * 255); return script.callReturn(); - - }, + }, syntax: { js: [], py: [ @@ -4329,7 +4397,7 @@ const _throttle = require('lodash/throttle'); }, ], }, - }, + }, nemolite_ext_get_compass_analog_value: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -4346,7 +4414,7 @@ const _throttle = require('lodash/throttle'); paramsKeyMap: {}, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { + func: function (sprite, script) { const value = Entry.ProboNemoLite.getData.compass; return value; }, @@ -4388,8 +4456,10 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const modeKey = Entry.ProboNemoLite.getSensorModeKey(script.getStringValue('TYPE')); + func: function (sprite, script) { + const modeKey = Entry.ProboNemoLite.getSensorModeKey( + script.getStringValue('TYPE') + ); const value = Entry.ProboNemoLite.compass[modeKey]; return value; }, @@ -4407,7 +4477,7 @@ const _throttle = require('lodash/throttle'); }, ], }, - }, + }, memolite_ext_is_compass_direction: { color: EntryStatic.colorSet.block.default.HARDWARE, outerLine: EntryStatic.colorSet.block.darken.HARDWARE, @@ -4420,7 +4490,8 @@ const _throttle = require('lodash/throttle'); type: 'Block', accept: 'string', defaultType: 'number', - },], + }, + ], events: {}, def: { params: [ @@ -4435,10 +4506,12 @@ const _throttle = require('lodash/throttle'); }, class: 'nemolite_extension', isNotFor: ['ProboNemoLite'], - func: function(sprite, script) { - const key = Entry.ProboNemoLite.getDirectionKey(script.getStringValue('DIRECTION')); + func: function (sprite, script) { + const key = Entry.ProboNemoLite.getDirectionKey( + script.getStringValue('DIRECTION') + ); const value = Entry.ProboNemoLite.compass.direction; - return (value === key); + return value === key; }, syntax: { js: [], @@ -4454,11 +4527,11 @@ const _throttle = require('lodash/throttle'); }, ], }, - }, + }, //endregion }; // getBlock() return; } })(); })(); -module.exports = Entry.ProboNemoLite; \ No newline at end of file +module.exports = Entry.ProboNemoLite; From 65afb3f73cdc7320ff3a09c8393f944245058578 Mon Sep 17 00:00:00 2001 From: Tnks2U Date: Thu, 17 Apr 2025 16:21:30 +0900 Subject: [PATCH 12/12] =?UTF-8?q?fix:=20=EC=97=90=EC=9D=B4=EB=9F=AD?= =?UTF-8?q?=EC=8A=A4=20=EB=84=A4=EB=AA=A8=20=EC=9B=B9=EC=97=B0=EA=B2=B0=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EA=B2=BD=EB=A1=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/playground/blocks/hardwareLite/block_alux_nemo_lite.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/playground/blocks/hardwareLite/block_alux_nemo_lite.js b/src/playground/blocks/hardwareLite/block_alux_nemo_lite.js index 05ec6b21cc..58545de322 100644 --- a/src/playground/blocks/hardwareLite/block_alux_nemo_lite.js +++ b/src/playground/blocks/hardwareLite/block_alux_nemo_lite.js @@ -15,7 +15,7 @@ const _throttle = require('lodash/throttle'); this.id = '630101'; this.name = 'ProboNemoLite'; this.url = 'https://imssam.me'; - this.imageName = 'alux_nemolite_lite.png'; + this.imageName = 'alux_nemo_lite.png'; this.title = { ko: '네모', en: 'Nemo',