├── .gitignore ├── public └── cm-solidity-support.png ├── dev ├── vite.config.js ├── index.html └── index.ts ├── replit.nix ├── .replit ├── LICENSE ├── package.json ├── README.md ├── src └── index.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .upm 4 | .config 5 | .cache -------------------------------------------------------------------------------- /public/cm-solidity-support.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/replit/codemirror-lang-solidity/main/public/cm-solidity-support.png -------------------------------------------------------------------------------- /dev/vite.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | server: { 3 | host: '0.0.0.0', 4 | hmr: { 5 | port: 443, 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /replit.nix: -------------------------------------------------------------------------------- 1 | { pkgs }: { 2 | deps = [ 3 | pkgs.nodejs-16_x 4 | pkgs.nodePackages.yarn 5 | pkgs.nodePackages.typescript-language-server 6 | ]; 7 | } -------------------------------------------------------------------------------- /.replit: -------------------------------------------------------------------------------- 1 | run="yarn run dev" 2 | 3 | entrypoint = "src/index.ts" 4 | 5 | [packager] 6 | language = "nodejs-yarn" 7 | [packager.features] 8 | packageSearch = true 9 | guessImports = true 10 | 11 | [languages.js] 12 | pattern = "**/*.ts" 13 | [languages.js.languageServer] 14 | start = ["typescript-language-server", "--stdio"] -------------------------------------------------------------------------------- /dev/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CodeMirror Solidity 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /dev/index.ts: -------------------------------------------------------------------------------- 1 | import { basicSetup } from 'codemirror'; 2 | import { EditorView, keymap } from '@codemirror/view'; 3 | import { EditorState } from '@codemirror/state'; 4 | import { indentWithTab } from '@codemirror/commands'; 5 | import { solidity } from '../src'; 6 | 7 | const doc = ` 8 | // SPDX-License-Identifier: MIT 9 | pragma solidity ^0.8.10; 10 | 11 | contract EtherWallet { 12 | address payable public owner; 13 | 14 | constructor() { 15 | owner = payable(msg.sender); 16 | } 17 | 18 | receive() external payable {} 19 | 20 | function withdraw(uint _amount) external { 21 | require(msg.sender == owner, "caller is not owner"); 22 | payable(msg.sender).transfer(_amount); 23 | } 24 | 25 | function getBalance() external view returns (uint) { 26 | return address(this).balance; 27 | } 28 | } 29 | ` 30 | 31 | new EditorView({ 32 | state: EditorState.create({ 33 | doc, 34 | extensions: [ 35 | basicSetup, 36 | keymap.of([indentWithTab]), 37 | solidity, 38 | ], 39 | }), 40 | parent: document.querySelector('#editor'), 41 | }); -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Replit 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@replit/codemirror-lang-solidity", 3 | "description": "Solidity language support for CM6", 4 | "version": "6.0.2", 5 | "author": { 6 | "name": "Sergei Chestakov", 7 | "email": "me@sergei.com" 8 | }, 9 | "type": "module", 10 | "main": "dist/index.cjs", 11 | "exports": { 12 | "import": "./dist/index.js", 13 | "require": "./dist/index.cjs" 14 | }, 15 | "types": "dist/index.d.ts", 16 | "module": "dist/index.js", 17 | "sideEffects": false, 18 | "license": "MIT", 19 | "scripts": { 20 | "dev": "vite ./dev", 21 | "build": "cm-buildhelper src/index.ts", 22 | "test": "cm-runtests", 23 | "publish": "npm run build && npm publish" 24 | }, 25 | "peerDependencies": { 26 | "@codemirror/language": "^6.0.0" 27 | }, 28 | "devDependencies": { 29 | "@codemirror/buildhelper": "^0.1.16", 30 | "@codemirror/commands": "^6.0.0", 31 | "@codemirror/language": "^6.0.0", 32 | "@codemirror/state": "^6.0.0", 33 | "@codemirror/view": "^6.00.0", 34 | "codemirror": "^6.0.0", 35 | "vite": "^2.3.8" 36 | }, 37 | "repository": { 38 | "type": "git", 39 | "url": "https://github.com/replit/codemirror-lang-solidity.git" 40 | }, 41 | "dependencies": { 42 | "@lezer/highlight": "^1.2.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CodeMirror Solidity Language Support 2 | 3 | Run on Replit badge 4 | NPM version badge 5 | 6 | A CodeMirror extension that provides Solidity syntax highlighting and language support. 7 | 8 | ![Screenshot](public/cm-solidity-support.png) 9 | 10 | ### Usage 11 | 12 | ```ts 13 | import { basicSetup } from 'codemirror'; 14 | import { EditorView } from '@codemirror/view'; 15 | import { EditorState } from '@codemirror/state'; 16 | import { solidity } from '@replit/codemirror-lang-solidity'; 17 | 18 | const doc = ` 19 | pragma solidity ^0.8.10; 20 | 21 | contract EtherWallet { 22 | address payable public owner; 23 | 24 | constructor() { 25 | owner = payable(msg.sender); 26 | } 27 | 28 | receive() external payable {} 29 | 30 | function withdraw(uint _amount) external { 31 | require(msg.sender == owner, "caller is not owner"); 32 | payable(msg.sender).transfer(_amount); 33 | } 34 | 35 | function getBalance() external view returns (uint) { 36 | return address(this).balance; 37 | } 38 | } 39 | ` 40 | 41 | new EditorView({ 42 | state: EditorState.create({ 43 | doc, 44 | extensions: [ 45 | basicSetup, 46 | solidity, 47 | ], 48 | }), 49 | parent: document.querySelector('#editor'), 50 | }); 51 | ``` -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Wrapper around the legacy CM5 Solidity language mode 3 | * See: https://github.com/alincode/codemirror-solidity 4 | */ 5 | import { LanguageSupport, StreamLanguage, StreamParser, StringStream } from '@codemirror/language'; 6 | import { Tag } from '@lezer/highlight'; 7 | 8 | const keywords = { 9 | pragma: true, 10 | solidity: true, 11 | import: true, 12 | as: true, 13 | from: true, 14 | contract: true, 15 | constructor: true, 16 | is: true, 17 | function: true, 18 | modifier: true, 19 | // modifiers 20 | pure: true, 21 | view: true, 22 | payable: true, 23 | constant: true, 24 | anonymous: true, 25 | indexed: true, 26 | returns: true, 27 | return: true, 28 | event: true, 29 | struct: true, 30 | mapping: true, 31 | interface: true, 32 | using: true, 33 | library: true, 34 | storage: true, 35 | memory: true, 36 | calldata: true, 37 | public: true, 38 | private: true, 39 | external: true, 40 | internal: true, 41 | emit: true, 42 | assembly: true, 43 | abstract: true, 44 | after: true, 45 | catch: true, 46 | final: true, 47 | in: true, 48 | inline: true, 49 | let: true, 50 | match: true, 51 | null: true, 52 | of: true, 53 | relocatable: true, 54 | static: true, 55 | try: true, 56 | typeof: true, 57 | var: true, 58 | }; 59 | 60 | const keywordsSpecial = { 61 | pragma: true, 62 | returns: true, 63 | address: true, 64 | contract: true, 65 | function: true, 66 | struct: true, 67 | }; 68 | 69 | const keywordsEtherUnit = { 70 | wei: true, 71 | szabo: true, 72 | finney: true, 73 | ether: true, 74 | }; 75 | const keywordsTimeUnit = { 76 | seconds: true, 77 | minutes: true, 78 | hours: true, 79 | days: true, 80 | weeks: true, 81 | }; 82 | const keywordsBlockAndTransactionProperties = { 83 | block: ['coinbase', 'difficulty', 'gaslimit', 'number', 'timestamp'], 84 | msg: ['data', 'sender', 'sig', 'value'], 85 | tx: ['gasprice', 'origin'], 86 | }; 87 | const keywordsMoreBlockAndTransactionProperties = { 88 | now: true, 89 | gasleft: true, 90 | blockhash: true, 91 | }; 92 | const keywordsErrorHandling = { 93 | assert: true, 94 | require: true, 95 | revert: true, 96 | throw: true, 97 | }; 98 | const keywordsMathematicalAndCryptographicFuctions = { 99 | addmod: true, 100 | mulmod: true, 101 | keccak256: true, 102 | sha256: true, 103 | ripemd160: true, 104 | ecrecover: true, 105 | }; 106 | const keywordsContractRelated = { 107 | this: true, 108 | selfdestruct: true, 109 | super: true, 110 | }; 111 | const keywordsTypeInformation = { type: true }; 112 | const keywordsContractList: Record = {}; 113 | 114 | const keywordsControlStructures = { 115 | if: true, 116 | else: true, 117 | while: true, 118 | do: true, 119 | for: true, 120 | break: true, 121 | continue: true, 122 | switch: true, 123 | case: true, 124 | default: true, 125 | }; 126 | 127 | const keywordsValueTypes = { 128 | bool: true, 129 | byte: true, 130 | string: true, 131 | enum: true, 132 | address: true, 133 | }; 134 | 135 | const keywordsV0505NewReserve = { 136 | alias: true, 137 | apply: true, 138 | auto: true, 139 | copyof: true, 140 | define: true, 141 | immutable: true, 142 | implements: true, 143 | macro: true, 144 | mutable: true, 145 | override: true, 146 | partial: true, 147 | promise: true, 148 | reference: true, 149 | sealed: true, 150 | sizeof: true, 151 | supports: true, 152 | typedef: true, 153 | unchecked: true, 154 | }; 155 | 156 | const keywordsAbiEncodeDecodeFunctions = { 157 | abi: [ 158 | 'decode', 159 | 'encodePacked', 160 | 'encodeWithSelector', 161 | 'encodeWithSignature', 162 | 'encode', 163 | ], 164 | }; 165 | 166 | const keywordsMembersOfAddressType = [ 167 | 'transfer', 168 | 'send', 169 | 'balance', 170 | 'call', 171 | 'delegatecall', 172 | 'staticcall', 173 | ]; 174 | 175 | const natSpecTags = ['title', 'author', 'notice', 'dev', 'param', 'return']; 176 | 177 | const atoms = { 178 | delete: true, 179 | new: true, 180 | true: true, 181 | false: true, 182 | }; 183 | 184 | const isOperatorChar = /[+\-*&^%:=<>!|/~]/; 185 | const isNegativeChar = /[-]/; 186 | 187 | let curPunc; 188 | 189 | function tokenBase(stream: StringStream, state: State) { 190 | let ch = stream.next(); 191 | 192 | if (ch === '"' || ch === "'" || ch === '`') { 193 | state.tokenize = tokenString(ch); 194 | 195 | return state.tokenize(stream, state); 196 | } 197 | 198 | if (isVersion(stream, state)) { 199 | return 'version'; 200 | } 201 | 202 | if ( 203 | ch === '.' && 204 | keywordsMembersOfAddressType.some(function (item) { 205 | return stream.match(`${item}`); 206 | }) 207 | ) { 208 | return 'addressFunction'; 209 | } 210 | 211 | if (typeof ch === 'string' && isNumber(ch, stream)) { 212 | return 'number'; 213 | } 214 | 215 | if (typeof ch === 'string' && /[[\]{}(),;:.]/.test(ch)) { 216 | return updateGarmmer(ch, state); 217 | } 218 | 219 | if (ch === '/') { 220 | if (stream.eat('*')) { 221 | state.tokenize = tokenComment; 222 | 223 | return tokenComment(stream, state); 224 | } 225 | 226 | if (stream.match(/\/{2}/)) { 227 | ch = stream.next(); 228 | while (ch) { 229 | if (ch === '@') { 230 | stream.backUp(1); 231 | state.grammar = 'doc'; 232 | break; 233 | } 234 | 235 | ch = stream.next(); 236 | } 237 | 238 | return 'doc'; 239 | } 240 | 241 | if (stream.eat('/')) { 242 | stream.skipToEnd(); 243 | 244 | return 'comment'; 245 | } 246 | } 247 | 248 | if (typeof ch === 'string' && isNegativeChar.test(ch)) { 249 | const peeked = stream.peek(); 250 | if (typeof peeked === 'string' && isNumber(peeked, stream)) { 251 | return 'number'; 252 | } 253 | 254 | return 'operator'; 255 | } 256 | 257 | if (typeof ch === 'string' && isOperatorChar.test(ch)) { 258 | stream.eatWhile(isOperatorChar); 259 | 260 | return 'operator'; 261 | } 262 | 263 | stream.eatWhile(/[\w$_\xa1-\uffff]/); 264 | 265 | const cur = stream.current(); 266 | 267 | if (state.grammar === 'doc') { 268 | if ( 269 | natSpecTags.some(function (item) { 270 | return cur === `@${item}`; 271 | }) 272 | ) { 273 | return 'docReserve'; 274 | } 275 | 276 | return 'doc'; 277 | } 278 | 279 | if (cur === 'solidity' && state.lastToken === 'pragma') { 280 | state.lastToken = state.lastToken + ' ' + cur; 281 | } 282 | 283 | if (Object.prototype.propertyIsEnumerable.call(keywords, cur)) { 284 | if (cur === 'case' || cur === 'default') { 285 | curPunc = 'case'; 286 | } 287 | 288 | if (Object.prototype.propertyIsEnumerable.call(keywordsSpecial, cur)) { 289 | state.lastToken = cur; 290 | } 291 | 292 | //if (cur === 'function' && state.para === 'parameterMode') 293 | return 'keyword'; 294 | } 295 | 296 | if (Object.prototype.propertyIsEnumerable.call(keywordsEtherUnit, cur)) { 297 | return 'etherUnit'; 298 | } 299 | 300 | if ( 301 | Object.prototype.propertyIsEnumerable.call(keywordsContractRelated, cur) 302 | ) { 303 | return 'contractRelated'; 304 | } 305 | 306 | if ( 307 | Object.prototype.propertyIsEnumerable.call( 308 | keywordsControlStructures, 309 | cur, 310 | ) || 311 | Object.prototype.propertyIsEnumerable.call(keywordsTypeInformation, cur) || 312 | Object.prototype.propertyIsEnumerable.call(keywordsV0505NewReserve, cur) 313 | ) { 314 | return 'keyword'; 315 | } 316 | 317 | if ( 318 | Object.prototype.propertyIsEnumerable.call(keywordsValueTypes, cur) || 319 | Object.prototype.propertyIsEnumerable.call(keywordsTimeUnit, cur) || 320 | isValidInteger(cur) || 321 | isValidBytes(cur) || 322 | isValidFixed(cur) 323 | ) { 324 | state.lastToken += 'variable'; 325 | 326 | return 'keyword'; 327 | } 328 | 329 | if (Object.prototype.propertyIsEnumerable.call(atoms, cur)) { 330 | return 'atom'; 331 | } 332 | 333 | if (Object.prototype.propertyIsEnumerable.call(keywordsErrorHandling, cur)) { 334 | return 'errorHandling'; 335 | } 336 | 337 | if ( 338 | Object.prototype.propertyIsEnumerable.call( 339 | keywordsMathematicalAndCryptographicFuctions, 340 | cur, 341 | ) 342 | ) { 343 | return 'mathematicalAndCryptographic'; 344 | } 345 | 346 | if ( 347 | Object.prototype.propertyIsEnumerable.call( 348 | keywordsMoreBlockAndTransactionProperties, 349 | cur, 350 | ) || 351 | (Object.prototype.propertyIsEnumerable.call( 352 | keywordsBlockAndTransactionProperties, 353 | cur, 354 | ) && 355 | ((keywordsBlockAndTransactionProperties as any)[cur] as Array< 356 | string 357 | >).some(function (item) { 358 | return stream.match(`.${item}`); 359 | })) 360 | ) { 361 | return 'variable-2'; 362 | } 363 | 364 | if ( 365 | cur === 'abi' && 366 | keywordsAbiEncodeDecodeFunctions[cur].some(function (item) { 367 | return stream.match(`.${item}`); 368 | }) 369 | ) { 370 | return 'abi'; 371 | } 372 | 373 | const style = updateHexLiterals(cur, stream); 374 | if (style != null) { 375 | return style; 376 | } 377 | 378 | if ( 379 | (state.lastToken === 'functionName(' || state.lastToken === 'returns(') && 380 | Object.prototype.propertyIsEnumerable.call(keywordsContractList, cur) 381 | ) { 382 | state.lastToken += 'variable'; 383 | 384 | return 'variable'; 385 | } 386 | 387 | if (state.lastToken === 'function') { 388 | state.lastToken = 'functionName'; 389 | if (state.para == null) { 390 | state.grammar = 'function'; 391 | state.para = ''; 392 | } 393 | 394 | //state.parasMode = isNaN(state.parasMode) ? 1 : state.functionLayerCount++; 395 | state.para += 'functionName'; 396 | 397 | return 'functionName'; 398 | } 399 | 400 | if (state.lastToken === 'functionName(variable') { 401 | state.lastToken = 'functionName('; 402 | 403 | return 'parameterValue'; 404 | } 405 | 406 | if (state.lastToken === 'returns(variable') { 407 | state.lastToken = 'returns('; 408 | 409 | return 'parameterValue'; 410 | } 411 | 412 | if (state.lastToken === 'address' && cur === 'payable') { 413 | state.lastToken = 'address payable'; 414 | } 415 | 416 | if (state.lastToken === 'contract' || state.lastToken === 'struct') { 417 | keywordsContractList[cur] = true; 418 | state.lastToken = null; 419 | } 420 | 421 | if (state.grammar === 'function') { 422 | return 'parameterValue'; 423 | } 424 | 425 | return 'variable'; 426 | } 427 | 428 | function tokenString(quote: string) { 429 | return function (stream: StringStream, state: State) { 430 | let escaped = false; 431 | 432 | let next; 433 | 434 | let end = false; 435 | next = stream.next(); 436 | while (next != null) { 437 | if (next === quote && !escaped) { 438 | end = true; 439 | break; 440 | } 441 | 442 | escaped = !escaped && quote !== '`' && next === '\\'; 443 | next = stream.next(); 444 | } 445 | 446 | if (end || !(escaped || quote === '`')) { 447 | state.tokenize = tokenBase; 448 | } 449 | 450 | return 'string'; 451 | }; 452 | } 453 | 454 | function tokenComment(stream: StringStream, state: State) { 455 | let maybeEnd = false; 456 | 457 | let ch = stream.next(); 458 | while (ch) { 459 | if (ch === '/' && maybeEnd) { 460 | state.tokenize = tokenBase; 461 | break; 462 | } 463 | 464 | maybeEnd = ch === '*'; 465 | ch = stream.next(); 466 | } 467 | 468 | return 'comment'; 469 | } 470 | 471 | function isVersion(stream: StringStream, state: State) { 472 | if (state.lastToken === 'pragma solidity') { 473 | state.lastToken = null; 474 | 475 | return ( 476 | !state.startOfLine && 477 | (stream.match(/[\^{0}][0-9.]+/) || 478 | stream.match(/[>=]+?[\s]*[0-9.]+[\s]*[<]?[\s]*[0-9.]+/)) 479 | ); 480 | } 481 | } 482 | 483 | function isNumber(ch: string, stream: StringStream) { 484 | if (/[\d.]/.test(ch)) { 485 | if (ch === '.') { 486 | stream.match(/^[0-9]+([eE][-+]?[0-9]+)?/); 487 | } else if (ch === '0') { 488 | if (!stream.match(/^[xX][0-9a-fA-F]+/)) { 489 | stream.match(/^0[0-7]+/); 490 | } 491 | } else { 492 | stream.match(/^[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?/); 493 | } 494 | 495 | return true; 496 | } 497 | } 498 | 499 | function isValidInteger(token: string) { 500 | if (token.match(/^[u]?int/)) { 501 | if (token.indexOf('t') + 1 === token.length) { 502 | return true; 503 | } 504 | 505 | const numberPart = Number( 506 | token.substr(token.indexOf('t') + 1, token.length), 507 | ); 508 | 509 | return numberPart % 8 === 0 && numberPart <= 256; 510 | } 511 | } 512 | 513 | function isValidBytes(token: string) { 514 | if (token.match(/^bytes/)) { 515 | if (token.indexOf('s') + 1 === token.length) { 516 | return true; 517 | } 518 | 519 | const bytesPart = token.substr(token.indexOf('s') + 1, token.length); 520 | 521 | return Number(bytesPart) <= 32; 522 | } 523 | } 524 | 525 | function isValidFixed(token: string) { 526 | if (token.match(/^[u]?fixed([0-9]+x[0-9]+)?/)) { 527 | if (token.indexOf('d') + 1 === token.length) { 528 | return true; 529 | } 530 | 531 | const numberPart = token 532 | .substr(token.indexOf('d') + 1, token.length) 533 | .split('x') 534 | .map(Number); 535 | 536 | return ( 537 | numberPart[0] % 8 === 0 && numberPart[0] <= 256 && numberPart[1] <= 80 538 | ); 539 | } 540 | } 541 | 542 | function updateHexLiterals(token: string, stream: StringStream) { 543 | if (token.match(/^hex/) && stream.peek() === '"') { 544 | let maybeEnd = false; 545 | 546 | let ch; 547 | 548 | let hexValue = ''; 549 | 550 | let stringAfterHex = ''; 551 | ch = stream.next(); 552 | while (ch) { 553 | stringAfterHex += ch; 554 | if (ch === '"' && maybeEnd) { 555 | hexValue = stringAfterHex.substring(1, stringAfterHex.length - 1); 556 | if (hexValue.match(/^[0-9a-fA-F]+$/)) { 557 | return 'number'; 558 | } 559 | 560 | stream.backUp(stringAfterHex.length); 561 | 562 | break; 563 | } 564 | 565 | maybeEnd = maybeEnd || ch === '"'; 566 | ch = stream.next(); 567 | } 568 | } 569 | } 570 | 571 | function updateGarmmer(ch: string, state: State) { 572 | if (ch === ',' && state.para === 'functionName(variable') { 573 | state.para = 'functionName('; 574 | } 575 | 576 | if (state.para != null && state.para.startsWith('functionName')) { 577 | if (ch === ')') { 578 | if (state.para.endsWith('(')) { 579 | state.para = state.para.substr(0, state.para.length - 1); 580 | if (state.para === 'functionName') { 581 | state.grammar = ''; 582 | } 583 | } 584 | } else if (ch === '(') { 585 | state.para += ch; 586 | } 587 | } 588 | 589 | if (ch === '(' && state.lastToken === 'functionName') { 590 | state.lastToken += ch; 591 | } else if (ch === ')' && state.lastToken === 'functionName(') { 592 | state.lastToken = null; 593 | } else if (ch === '(' && state.lastToken === 'returns') { 594 | state.lastToken += ch; 595 | } else if ( 596 | ch === ')' && 597 | (state.lastToken === 'returns(' || state.lastToken === 'returns(variable') 598 | ) { 599 | state.lastToken = null; 600 | } 601 | 602 | if (ch === '(' && state.lastToken === 'address') { 603 | state.lastToken += ch; 604 | } 605 | 606 | curPunc = ch; 607 | 608 | return null; 609 | } 610 | 611 | class Context { 612 | indented: number; 613 | column: number; 614 | type: string; 615 | align: boolean | null; 616 | prev: Context | null; 617 | 618 | constructor( 619 | indented: number, 620 | column: number, 621 | type: string, 622 | align: boolean | null, 623 | prev: Context | null, 624 | ) { 625 | this.indented = indented; 626 | this.column = column; 627 | this.type = type; 628 | this.align = align; 629 | this.prev = prev; 630 | } 631 | } 632 | 633 | function pushContext(state: State, col: number, type: string) { 634 | state.context = new Context(state.indented, col, type, null, state.context); 635 | 636 | return state.context; 637 | } 638 | 639 | function popContext(state: State) { 640 | if (!state.context.prev) { 641 | return; 642 | } 643 | 644 | const t = state.context.type; 645 | if (t === ')' || t === ']' || t === '}') { 646 | state.indented = state.context.indented; 647 | } 648 | 649 | return (state.context = state.context.prev); 650 | } 651 | 652 | interface State { 653 | context: Context; 654 | tokenize: null | ((stream: StringStream, state: State) => string | null); 655 | indented: number; 656 | startOfLine: boolean; 657 | grammar: string | null; 658 | lastToken: string | null; 659 | para: string | null; 660 | } 661 | 662 | export const parser: StreamParser = { 663 | startState(indentUnit) { 664 | return { 665 | tokenize: null, 666 | context: new Context(0 - indentUnit, 0, 'top', false, null), 667 | indented: 0, 668 | startOfLine: true, 669 | grammar: null, 670 | lastToken: null, 671 | para: null, 672 | }; 673 | }, 674 | 675 | token(stream, state) { 676 | const ctx = state.context; 677 | if (stream.sol()) { 678 | if (ctx.align == null) { 679 | ctx.align = false; 680 | } 681 | 682 | state.indented = stream.indentation(); 683 | state.startOfLine = true; 684 | if (ctx.type === 'case') { 685 | ctx.type = '}'; 686 | } 687 | 688 | if (state.grammar === 'doc') { 689 | state.grammar = null; 690 | } 691 | } 692 | 693 | if (stream.eatSpace()) { 694 | return null; 695 | } 696 | 697 | curPunc = null; 698 | const style = (state.tokenize || tokenBase)(stream, state); 699 | 700 | if (style === 'comment') { 701 | return style; 702 | } 703 | 704 | if (ctx.align == null) { 705 | ctx.align = true; 706 | } 707 | 708 | if (curPunc === '{') { 709 | pushContext(state, stream.column(), '}'); 710 | } else if (curPunc === '[') { 711 | pushContext(state, stream.column(), ']'); 712 | } else if (curPunc === '(') { 713 | pushContext(state, stream.column(), ')'); 714 | } else if (curPunc === 'case') { 715 | ctx.type = 'case'; 716 | } else if (curPunc === '}' && ctx.type === '}') { 717 | popContext(state); 718 | } else if (curPunc === ctx.type) { 719 | popContext(state); 720 | } 721 | 722 | state.startOfLine = false; 723 | 724 | return style; 725 | }, 726 | 727 | indent(state, textAfter, indentContext) { 728 | if (state.tokenize !== tokenBase && state.tokenize != null) { 729 | return null; 730 | } 731 | 732 | const ctx = state.context; 733 | 734 | const firstChar = textAfter && textAfter.charAt(0); 735 | if (ctx.type === 'case' && /^(?:case|default)\b/.test(textAfter)) { 736 | state.context.type = '}'; 737 | 738 | return ctx.indented; 739 | } 740 | 741 | const closing = firstChar === ctx.type; 742 | if (ctx.align) { 743 | return ctx.column + (closing ? 0 : 1); 744 | } 745 | 746 | return ctx.indented + (closing ? 0 : indentContext.unit); 747 | }, 748 | 749 | // @ts-ignore not specified in new stream parser, but maybe does something 750 | electricChars: '{}):', 751 | closeBrackets: '()[]{}\'\'""``', 752 | fold: 'brace', 753 | blockCommentStart: '/*', 754 | blockCommentEnd: '*/', 755 | lineComment: '//', 756 | tokenTable: { 757 | functionName: Tag.define(), 758 | parameterValue: Tag.define(), 759 | addressFunction: Tag.define(), 760 | errorHandling: Tag.define(), 761 | contractRelated: Tag.define(), 762 | version: Tag.define(), 763 | etherUnit: Tag.define(), 764 | doc: Tag.define(), 765 | mathematicalAndCryptographic: Tag.define(), 766 | abi: Tag.define(), 767 | } 768 | }; 769 | 770 | export const solidity = new LanguageSupport(StreamLanguage.define(parser)); 771 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.12.13": 6 | version "7.16.7" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" 8 | integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== 9 | dependencies: 10 | "@babel/highlight" "^7.16.7" 11 | 12 | "@babel/helper-validator-identifier@^7.16.7": 13 | version "7.16.7" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" 15 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== 16 | 17 | "@babel/highlight@^7.16.7": 18 | version "7.17.12" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" 20 | integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.16.7" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@codemirror/autocomplete@^6.0.0": 27 | version "6.0.2" 28 | resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.0.2.tgz#119b9d147456418895de6fae09419465b58d7beb" 29 | integrity sha512-9PDjnllmXan/7Uax87KGORbxerDJ/cu10SB+n4Jz0zXMEvIh3+TGgZxhIvDOtaQ4jDBQEM7kHYW4vLdQB0DGZQ== 30 | dependencies: 31 | "@codemirror/language" "^6.0.0" 32 | "@codemirror/state" "^6.0.0" 33 | "@codemirror/view" "^6.0.0" 34 | "@lezer/common" "^1.0.0" 35 | 36 | "@codemirror/buildhelper@^0.1.16": 37 | version "0.1.16" 38 | resolved "https://registry.yarnpkg.com/@codemirror/buildhelper/-/buildhelper-0.1.16.tgz#bda138522fdade53d63f457c440b64be48c7fa71" 39 | integrity sha512-b88pPVoLoBp3DHe+CK5p/1t/WFGYRGxn69d9Efp/cEP3uF91hXTIKOimaL3IyVhm9q6ILjKzn8q8MFUUy7GvwA== 40 | dependencies: 41 | "@lezer/generator" "^1.0.0" 42 | "@types/mocha" "^9.1.1" 43 | acorn "^8.1.0" 44 | acorn-walk "^8.0.2" 45 | esmoduleserve "^0.2.0" 46 | ist "^1.1.7" 47 | mocha "^10.0.0" 48 | rollup "^2.35.1" 49 | rollup-plugin-dts "^3.0.0" 50 | selenium-webdriver "^4.0.0-beta.3" 51 | serve-static "^1.14.1" 52 | typescript "^4.2.3" 53 | 54 | "@codemirror/commands@^6.0.0": 55 | version "6.0.0" 56 | resolved "https://registry.yarnpkg.com/@codemirror/commands/-/commands-6.0.0.tgz#9eaa4d53e9cdb2e13da52c8a03636a9f9ad45d2b" 57 | integrity sha512-nVJDPiCQXWXj5AZxqNVXyIM3nOYauF4Dko9NGPSwgVdK+lXWJQhI5LGhS/AvdG5b7u7/pTQBkrQmzkLWRBF62A== 58 | dependencies: 59 | "@codemirror/language" "^6.0.0" 60 | "@codemirror/state" "^6.0.0" 61 | "@codemirror/view" "^6.0.0" 62 | "@lezer/common" "^1.0.0" 63 | 64 | "@codemirror/language@^6.0.0": 65 | version "6.1.0" 66 | resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.1.0.tgz#7686f0ecafd958c35332c3cc2aa3d564fd33dc44" 67 | integrity sha512-CeqY80nvUFrJcXcBW115aNi06D0PS8NSW6nuJRSwbrYFkE0SfJnPfyLGrcM90AV95lqg5+4xUi99BCmzNaPGJg== 68 | dependencies: 69 | "@codemirror/state" "^6.0.0" 70 | "@codemirror/view" "^6.0.0" 71 | "@lezer/common" "^1.0.0" 72 | "@lezer/highlight" "^1.0.0" 73 | "@lezer/lr" "^1.0.0" 74 | style-mod "^4.0.0" 75 | 76 | "@codemirror/lint@^6.0.0": 77 | version "6.0.0" 78 | resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.0.0.tgz#a249b021ac9933b94fe312d994d220f0ef11a157" 79 | integrity sha512-nUUXcJW1Xp54kNs+a1ToPLK8MadO0rMTnJB8Zk4Z8gBdrN0kqV7uvUraU/T2yqg+grDNR38Vmy/MrhQN/RgwiA== 80 | dependencies: 81 | "@codemirror/state" "^6.0.0" 82 | "@codemirror/view" "^6.0.0" 83 | crelt "^1.0.5" 84 | 85 | "@codemirror/search@^6.0.0": 86 | version "6.0.0" 87 | resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-6.0.0.tgz#43bd6341d9aff18869386d2fce27519850e919e3" 88 | integrity sha512-rL0rd3AhI0TAsaJPUaEwC63KHLO7KL0Z/dYozXj6E7L3wNHRyx7RfE0/j5HsIf912EE5n2PCb4Vg0rGYmDv4UQ== 89 | dependencies: 90 | "@codemirror/state" "^6.0.0" 91 | "@codemirror/view" "^6.0.0" 92 | crelt "^1.0.5" 93 | 94 | "@codemirror/state@^6.0.0": 95 | version "6.0.1" 96 | resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.0.1.tgz#a1994f14c49e2f77cb9e26aef35f63a8b3707c6c" 97 | integrity sha512-6vYgaXc4KjSY0BUfSVDJooGcoswg/RJZpq/ZGjsUYmY0KN1lmB8u03nv+jiG1ncUV5qoggyxFT5AGD5Ak+5Zrw== 98 | 99 | "@codemirror/view@^6.0.0", "@codemirror/view@^6.00.0": 100 | version "6.0.2" 101 | resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.0.2.tgz#27f4d08edd10a3678cf15390b4fba5e2a7220873" 102 | integrity sha512-mnVT/q1JvKPjpmjXJNeCi/xHyaJ3abGJsumIVpdQ1nE1MXAyHf7GHWt8QpWMUvDiqF0j+inkhVR2OviTdFFX7Q== 103 | dependencies: 104 | "@codemirror/state" "^6.0.0" 105 | style-mod "^4.0.0" 106 | w3c-keyname "^2.2.4" 107 | 108 | "@lezer/common@^1.0.0": 109 | version "1.0.0" 110 | resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.0.0.tgz#1c95ae53ec17706aa3cbcc88b52c23f22ed56096" 111 | integrity sha512-ohydQe+Hb+w4oMDvXzs8uuJd2NoA3D8YDcLiuDsLqH+yflDTPEpgCsWI3/6rH5C3BAedtH1/R51dxENldQceEA== 112 | 113 | "@lezer/generator@^1.0.0": 114 | version "1.0.0" 115 | resolved "https://registry.yarnpkg.com/@lezer/generator/-/generator-1.0.0.tgz#da647a3db6770d149c48760b1dda29cfc07df6d7" 116 | integrity sha512-MgtTb9O2RxAn+WNfv8z9xOg7Q2orbChs9P3tHLUSBzvRL1PR2wiL/MKFpUnsYFG4mkcTTLkrkQgzUMVYa/ATfA== 117 | dependencies: 118 | "@lezer/common" "^1.0.0" 119 | "@lezer/lr" "^1.0.0" 120 | 121 | "@lezer/highlight@^1.0.0": 122 | version "1.0.0" 123 | resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.0.0.tgz#1dc82300f5d39fbd67ae1194b5519b4c381878d3" 124 | integrity sha512-nsCnNtim90UKsB5YxoX65v3GEIw3iCHw9RM2DtdgkiqAbKh9pCdvi8AWNwkYf10Lu6fxNhXPpkpHbW6mihhvJA== 125 | dependencies: 126 | "@lezer/common" "^1.0.0" 127 | 128 | "@lezer/highlight@^1.2.0": 129 | version "1.2.0" 130 | resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.0.tgz#e5898c3644208b4b589084089dceeea2966f7780" 131 | integrity sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA== 132 | dependencies: 133 | "@lezer/common" "^1.0.0" 134 | 135 | "@lezer/lr@^1.0.0": 136 | version "1.0.0" 137 | resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.0.0.tgz#89e30c1e710b8715ac5c847ad063418c51d6e750" 138 | integrity sha512-k6DEqBh4HxqO/cVGedb6Ern6LS7K6IOzfydJ5WaqCR26v6UR9sIFyb6PS+5rPUs/mXgnBR/QQCW7RkyjSCMoQA== 139 | dependencies: 140 | "@lezer/common" "^1.0.0" 141 | 142 | "@types/mocha@^9.1.1": 143 | version "9.1.1" 144 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" 145 | integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== 146 | 147 | "@ungap/promise-all-settled@1.1.2": 148 | version "1.1.2" 149 | resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" 150 | integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== 151 | 152 | acorn-walk@^8.0.0, acorn-walk@^8.0.2: 153 | version "8.2.0" 154 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 155 | integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== 156 | 157 | acorn@^8.0.4, acorn@^8.1.0: 158 | version "8.7.1" 159 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" 160 | integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== 161 | 162 | ansi-colors@4.1.1: 163 | version "4.1.1" 164 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 165 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 166 | 167 | ansi-regex@^5.0.1: 168 | version "5.0.1" 169 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 170 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 171 | 172 | ansi-styles@^3.2.1: 173 | version "3.2.1" 174 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 175 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 176 | dependencies: 177 | color-convert "^1.9.0" 178 | 179 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 180 | version "4.3.0" 181 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 182 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 183 | dependencies: 184 | color-convert "^2.0.1" 185 | 186 | anymatch@~3.1.2: 187 | version "3.1.2" 188 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 189 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 190 | dependencies: 191 | normalize-path "^3.0.0" 192 | picomatch "^2.0.4" 193 | 194 | argparse@^2.0.1: 195 | version "2.0.1" 196 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 197 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 198 | 199 | balanced-match@^1.0.0: 200 | version "1.0.2" 201 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 202 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 203 | 204 | binary-extensions@^2.0.0: 205 | version "2.2.0" 206 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 207 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 208 | 209 | brace-expansion@^1.1.7: 210 | version "1.1.11" 211 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 212 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 213 | dependencies: 214 | balanced-match "^1.0.0" 215 | concat-map "0.0.1" 216 | 217 | brace-expansion@^2.0.1: 218 | version "2.0.1" 219 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 220 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 221 | dependencies: 222 | balanced-match "^1.0.0" 223 | 224 | braces@~3.0.2: 225 | version "3.0.2" 226 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 227 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 228 | dependencies: 229 | fill-range "^7.0.1" 230 | 231 | browser-stdout@1.3.1: 232 | version "1.3.1" 233 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 234 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 235 | 236 | camelcase@^6.0.0: 237 | version "6.3.0" 238 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 239 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 240 | 241 | chalk@^2.0.0: 242 | version "2.4.2" 243 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 244 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 245 | dependencies: 246 | ansi-styles "^3.2.1" 247 | escape-string-regexp "^1.0.5" 248 | supports-color "^5.3.0" 249 | 250 | chalk@^4.1.0: 251 | version "4.1.2" 252 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 253 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 254 | dependencies: 255 | ansi-styles "^4.1.0" 256 | supports-color "^7.1.0" 257 | 258 | chokidar@3.5.3: 259 | version "3.5.3" 260 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 261 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 262 | dependencies: 263 | anymatch "~3.1.2" 264 | braces "~3.0.2" 265 | glob-parent "~5.1.2" 266 | is-binary-path "~2.1.0" 267 | is-glob "~4.0.1" 268 | normalize-path "~3.0.0" 269 | readdirp "~3.6.0" 270 | optionalDependencies: 271 | fsevents "~2.3.2" 272 | 273 | cliui@^7.0.2: 274 | version "7.0.4" 275 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 276 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 277 | dependencies: 278 | string-width "^4.2.0" 279 | strip-ansi "^6.0.0" 280 | wrap-ansi "^7.0.0" 281 | 282 | codemirror@^6.0.0: 283 | version "6.0.0" 284 | resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-6.0.0.tgz#48aac6370d188f0761807ad9c3b62da7e7f72446" 285 | integrity sha512-c4XR9QtDn+NhKLM2FBsnRn9SFdRH7G6594DYC/fyKKIsTOcdLF0WNWRd+f6kNyd5j1vgYPucbIeq2XkywYCwhA== 286 | dependencies: 287 | "@codemirror/autocomplete" "^6.0.0" 288 | "@codemirror/commands" "^6.0.0" 289 | "@codemirror/language" "^6.0.0" 290 | "@codemirror/lint" "^6.0.0" 291 | "@codemirror/search" "^6.0.0" 292 | "@codemirror/state" "^6.0.0" 293 | "@codemirror/view" "^6.0.0" 294 | 295 | color-convert@^1.9.0: 296 | version "1.9.3" 297 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 298 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 299 | dependencies: 300 | color-name "1.1.3" 301 | 302 | color-convert@^2.0.1: 303 | version "2.0.1" 304 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 305 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 306 | dependencies: 307 | color-name "~1.1.4" 308 | 309 | color-name@1.1.3: 310 | version "1.1.3" 311 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 312 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 313 | 314 | color-name@~1.1.4: 315 | version "1.1.4" 316 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 317 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 318 | 319 | concat-map@0.0.1: 320 | version "0.0.1" 321 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 322 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 323 | 324 | core-util-is@~1.0.0: 325 | version "1.0.3" 326 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" 327 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 328 | 329 | crelt@^1.0.5: 330 | version "1.0.5" 331 | resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.5.tgz#57c0d52af8c859e354bace1883eb2e1eb182bb94" 332 | integrity sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA== 333 | 334 | debug@2.6.9: 335 | version "2.6.9" 336 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 337 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 338 | dependencies: 339 | ms "2.0.0" 340 | 341 | debug@4.3.4: 342 | version "4.3.4" 343 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 344 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 345 | dependencies: 346 | ms "2.1.2" 347 | 348 | decamelize@^4.0.0: 349 | version "4.0.0" 350 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" 351 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 352 | 353 | depd@2.0.0: 354 | version "2.0.0" 355 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 356 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 357 | 358 | destroy@1.2.0: 359 | version "1.2.0" 360 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 361 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 362 | 363 | diff@5.0.0: 364 | version "5.0.0" 365 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" 366 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== 367 | 368 | ee-first@1.1.1: 369 | version "1.1.1" 370 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 371 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 372 | 373 | emoji-regex@^8.0.0: 374 | version "8.0.0" 375 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 376 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 377 | 378 | encodeurl@~1.0.2: 379 | version "1.0.2" 380 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 381 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 382 | 383 | esbuild-android-64@0.14.47: 384 | version "0.14.47" 385 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" 386 | integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== 387 | 388 | esbuild-android-arm64@0.14.47: 389 | version "0.14.47" 390 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" 391 | integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== 392 | 393 | esbuild-darwin-64@0.14.47: 394 | version "0.14.47" 395 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" 396 | integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== 397 | 398 | esbuild-darwin-arm64@0.14.47: 399 | version "0.14.47" 400 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" 401 | integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== 402 | 403 | esbuild-freebsd-64@0.14.47: 404 | version "0.14.47" 405 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" 406 | integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== 407 | 408 | esbuild-freebsd-arm64@0.14.47: 409 | version "0.14.47" 410 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" 411 | integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== 412 | 413 | esbuild-linux-32@0.14.47: 414 | version "0.14.47" 415 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" 416 | integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== 417 | 418 | esbuild-linux-64@0.14.47: 419 | version "0.14.47" 420 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" 421 | integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== 422 | 423 | esbuild-linux-arm64@0.14.47: 424 | version "0.14.47" 425 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" 426 | integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== 427 | 428 | esbuild-linux-arm@0.14.47: 429 | version "0.14.47" 430 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" 431 | integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== 432 | 433 | esbuild-linux-mips64le@0.14.47: 434 | version "0.14.47" 435 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" 436 | integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== 437 | 438 | esbuild-linux-ppc64le@0.14.47: 439 | version "0.14.47" 440 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" 441 | integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== 442 | 443 | esbuild-linux-riscv64@0.14.47: 444 | version "0.14.47" 445 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" 446 | integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== 447 | 448 | esbuild-linux-s390x@0.14.47: 449 | version "0.14.47" 450 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" 451 | integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== 452 | 453 | esbuild-netbsd-64@0.14.47: 454 | version "0.14.47" 455 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" 456 | integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== 457 | 458 | esbuild-openbsd-64@0.14.47: 459 | version "0.14.47" 460 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" 461 | integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== 462 | 463 | esbuild-sunos-64@0.14.47: 464 | version "0.14.47" 465 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" 466 | integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== 467 | 468 | esbuild-windows-32@0.14.47: 469 | version "0.14.47" 470 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" 471 | integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== 472 | 473 | esbuild-windows-64@0.14.47: 474 | version "0.14.47" 475 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" 476 | integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== 477 | 478 | esbuild-windows-arm64@0.14.47: 479 | version "0.14.47" 480 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" 481 | integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== 482 | 483 | esbuild@^0.14.27: 484 | version "0.14.47" 485 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" 486 | integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== 487 | optionalDependencies: 488 | esbuild-android-64 "0.14.47" 489 | esbuild-android-arm64 "0.14.47" 490 | esbuild-darwin-64 "0.14.47" 491 | esbuild-darwin-arm64 "0.14.47" 492 | esbuild-freebsd-64 "0.14.47" 493 | esbuild-freebsd-arm64 "0.14.47" 494 | esbuild-linux-32 "0.14.47" 495 | esbuild-linux-64 "0.14.47" 496 | esbuild-linux-arm "0.14.47" 497 | esbuild-linux-arm64 "0.14.47" 498 | esbuild-linux-mips64le "0.14.47" 499 | esbuild-linux-ppc64le "0.14.47" 500 | esbuild-linux-riscv64 "0.14.47" 501 | esbuild-linux-s390x "0.14.47" 502 | esbuild-netbsd-64 "0.14.47" 503 | esbuild-openbsd-64 "0.14.47" 504 | esbuild-sunos-64 "0.14.47" 505 | esbuild-windows-32 "0.14.47" 506 | esbuild-windows-64 "0.14.47" 507 | esbuild-windows-arm64 "0.14.47" 508 | 509 | escalade@^3.1.1: 510 | version "3.1.1" 511 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 512 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 513 | 514 | escape-html@~1.0.3: 515 | version "1.0.3" 516 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 517 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 518 | 519 | escape-string-regexp@4.0.0: 520 | version "4.0.0" 521 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 522 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 523 | 524 | escape-string-regexp@^1.0.5: 525 | version "1.0.5" 526 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 527 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 528 | 529 | esmoduleserve@^0.2.0: 530 | version "0.2.0" 531 | resolved "https://registry.yarnpkg.com/esmoduleserve/-/esmoduleserve-0.2.0.tgz#01ed56cbee408f624641dab0b2916a54407c891e" 532 | integrity sha512-vg1j7fzKZUFR5TCsYQ3PABfBRMRi6V9K7mxcRh2MftO3gwAHBwYaPHtLHFDsKVSxdHmpu/GgT37lsRT+vezaKQ== 533 | dependencies: 534 | acorn "^8.0.4" 535 | acorn-walk "^8.0.0" 536 | resolve "^1.15.1" 537 | serve-static "^1.14.1" 538 | 539 | etag@~1.8.1: 540 | version "1.8.1" 541 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 542 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 543 | 544 | fill-range@^7.0.1: 545 | version "7.0.1" 546 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 547 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 548 | dependencies: 549 | to-regex-range "^5.0.1" 550 | 551 | find-up@5.0.0: 552 | version "5.0.0" 553 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 554 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 555 | dependencies: 556 | locate-path "^6.0.0" 557 | path-exists "^4.0.0" 558 | 559 | flat@^5.0.2: 560 | version "5.0.2" 561 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 562 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 563 | 564 | fresh@0.5.2: 565 | version "0.5.2" 566 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 567 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 568 | 569 | fs.realpath@^1.0.0: 570 | version "1.0.0" 571 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 572 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 573 | 574 | fsevents@~2.3.2: 575 | version "2.3.2" 576 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 577 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 578 | 579 | function-bind@^1.1.1: 580 | version "1.1.1" 581 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 582 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 583 | 584 | get-caller-file@^2.0.5: 585 | version "2.0.5" 586 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 587 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 588 | 589 | glob-parent@~5.1.2: 590 | version "5.1.2" 591 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 592 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 593 | dependencies: 594 | is-glob "^4.0.1" 595 | 596 | glob@7.2.0: 597 | version "7.2.0" 598 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 599 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 600 | dependencies: 601 | fs.realpath "^1.0.0" 602 | inflight "^1.0.4" 603 | inherits "2" 604 | minimatch "^3.0.4" 605 | once "^1.3.0" 606 | path-is-absolute "^1.0.0" 607 | 608 | glob@^7.1.3: 609 | version "7.2.3" 610 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 611 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 612 | dependencies: 613 | fs.realpath "^1.0.0" 614 | inflight "^1.0.4" 615 | inherits "2" 616 | minimatch "^3.1.1" 617 | once "^1.3.0" 618 | path-is-absolute "^1.0.0" 619 | 620 | has-flag@^3.0.0: 621 | version "3.0.0" 622 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 623 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 624 | 625 | has-flag@^4.0.0: 626 | version "4.0.0" 627 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 628 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 629 | 630 | has@^1.0.3: 631 | version "1.0.3" 632 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 633 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 634 | dependencies: 635 | function-bind "^1.1.1" 636 | 637 | he@1.2.0: 638 | version "1.2.0" 639 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 640 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 641 | 642 | http-errors@2.0.0: 643 | version "2.0.0" 644 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 645 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 646 | dependencies: 647 | depd "2.0.0" 648 | inherits "2.0.4" 649 | setprototypeof "1.2.0" 650 | statuses "2.0.1" 651 | toidentifier "1.0.1" 652 | 653 | immediate@~3.0.5: 654 | version "3.0.6" 655 | resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" 656 | integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== 657 | 658 | inflight@^1.0.4: 659 | version "1.0.6" 660 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 661 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 662 | dependencies: 663 | once "^1.3.0" 664 | wrappy "1" 665 | 666 | inherits@2, inherits@2.0.4, inherits@~2.0.3: 667 | version "2.0.4" 668 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 669 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 670 | 671 | is-binary-path@~2.1.0: 672 | version "2.1.0" 673 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 674 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 675 | dependencies: 676 | binary-extensions "^2.0.0" 677 | 678 | is-core-module@^2.9.0: 679 | version "2.9.0" 680 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" 681 | integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== 682 | dependencies: 683 | has "^1.0.3" 684 | 685 | is-extglob@^2.1.1: 686 | version "2.1.1" 687 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 688 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 689 | 690 | is-fullwidth-code-point@^3.0.0: 691 | version "3.0.0" 692 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 693 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 694 | 695 | is-glob@^4.0.1, is-glob@~4.0.1: 696 | version "4.0.3" 697 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 698 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 699 | dependencies: 700 | is-extglob "^2.1.1" 701 | 702 | is-number@^7.0.0: 703 | version "7.0.0" 704 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 705 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 706 | 707 | is-plain-obj@^2.1.0: 708 | version "2.1.0" 709 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" 710 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 711 | 712 | is-unicode-supported@^0.1.0: 713 | version "0.1.0" 714 | resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" 715 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== 716 | 717 | isarray@~1.0.0: 718 | version "1.0.0" 719 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 720 | integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== 721 | 722 | ist@^1.1.7: 723 | version "1.1.7" 724 | resolved "https://registry.yarnpkg.com/ist/-/ist-1.1.7.tgz#64161305bca42937d8e05394a2883c3431c5f7ff" 725 | integrity sha512-ex9JyqY+tCjBlxN1pXlqxEgtGGUGp1TG83ll1xpu8SfPgOhfAhEGCuepNHlB+d7Le+hLoBcfCu/G0ZQaFbi9hA== 726 | 727 | js-tokens@^4.0.0: 728 | version "4.0.0" 729 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 730 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 731 | 732 | js-yaml@4.1.0: 733 | version "4.1.0" 734 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 735 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 736 | dependencies: 737 | argparse "^2.0.1" 738 | 739 | jszip@^3.6.0: 740 | version "3.10.0" 741 | resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.0.tgz#faf3db2b4b8515425e34effcdbb086750a346061" 742 | integrity sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q== 743 | dependencies: 744 | lie "~3.3.0" 745 | pako "~1.0.2" 746 | readable-stream "~2.3.6" 747 | setimmediate "^1.0.5" 748 | 749 | lie@~3.3.0: 750 | version "3.3.0" 751 | resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" 752 | integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== 753 | dependencies: 754 | immediate "~3.0.5" 755 | 756 | locate-path@^6.0.0: 757 | version "6.0.0" 758 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 759 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 760 | dependencies: 761 | p-locate "^5.0.0" 762 | 763 | log-symbols@4.1.0: 764 | version "4.1.0" 765 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" 766 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== 767 | dependencies: 768 | chalk "^4.1.0" 769 | is-unicode-supported "^0.1.0" 770 | 771 | magic-string@^0.25.7: 772 | version "0.25.9" 773 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" 774 | integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== 775 | dependencies: 776 | sourcemap-codec "^1.4.8" 777 | 778 | mime@1.6.0: 779 | version "1.6.0" 780 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 781 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 782 | 783 | minimatch@5.0.1: 784 | version "5.0.1" 785 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" 786 | integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== 787 | dependencies: 788 | brace-expansion "^2.0.1" 789 | 790 | minimatch@^3.0.4, minimatch@^3.1.1: 791 | version "3.1.2" 792 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 793 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 794 | dependencies: 795 | brace-expansion "^1.1.7" 796 | 797 | mocha@^10.0.0: 798 | version "10.0.0" 799 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.0.0.tgz#205447d8993ec755335c4b13deba3d3a13c4def9" 800 | integrity sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA== 801 | dependencies: 802 | "@ungap/promise-all-settled" "1.1.2" 803 | ansi-colors "4.1.1" 804 | browser-stdout "1.3.1" 805 | chokidar "3.5.3" 806 | debug "4.3.4" 807 | diff "5.0.0" 808 | escape-string-regexp "4.0.0" 809 | find-up "5.0.0" 810 | glob "7.2.0" 811 | he "1.2.0" 812 | js-yaml "4.1.0" 813 | log-symbols "4.1.0" 814 | minimatch "5.0.1" 815 | ms "2.1.3" 816 | nanoid "3.3.3" 817 | serialize-javascript "6.0.0" 818 | strip-json-comments "3.1.1" 819 | supports-color "8.1.1" 820 | workerpool "6.2.1" 821 | yargs "16.2.0" 822 | yargs-parser "20.2.4" 823 | yargs-unparser "2.0.0" 824 | 825 | ms@2.0.0: 826 | version "2.0.0" 827 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 828 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 829 | 830 | ms@2.1.2: 831 | version "2.1.2" 832 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 833 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 834 | 835 | ms@2.1.3: 836 | version "2.1.3" 837 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 838 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 839 | 840 | nanoid@3.3.3: 841 | version "3.3.3" 842 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" 843 | integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== 844 | 845 | nanoid@^3.3.4: 846 | version "3.3.4" 847 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" 848 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== 849 | 850 | normalize-path@^3.0.0, normalize-path@~3.0.0: 851 | version "3.0.0" 852 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 853 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 854 | 855 | on-finished@2.4.1: 856 | version "2.4.1" 857 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 858 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 859 | dependencies: 860 | ee-first "1.1.1" 861 | 862 | once@^1.3.0: 863 | version "1.4.0" 864 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 865 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 866 | dependencies: 867 | wrappy "1" 868 | 869 | p-limit@^3.0.2: 870 | version "3.1.0" 871 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 872 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 873 | dependencies: 874 | yocto-queue "^0.1.0" 875 | 876 | p-locate@^5.0.0: 877 | version "5.0.0" 878 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 879 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 880 | dependencies: 881 | p-limit "^3.0.2" 882 | 883 | pako@~1.0.2: 884 | version "1.0.11" 885 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 886 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 887 | 888 | parseurl@~1.3.3: 889 | version "1.3.3" 890 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 891 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 892 | 893 | path-exists@^4.0.0: 894 | version "4.0.0" 895 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 896 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 897 | 898 | path-is-absolute@^1.0.0: 899 | version "1.0.1" 900 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 901 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 902 | 903 | path-parse@^1.0.7: 904 | version "1.0.7" 905 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 906 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 907 | 908 | picocolors@^1.0.0: 909 | version "1.0.0" 910 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 911 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 912 | 913 | picomatch@^2.0.4, picomatch@^2.2.1: 914 | version "2.3.1" 915 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 916 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 917 | 918 | postcss@^8.4.13: 919 | version "8.4.14" 920 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" 921 | integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== 922 | dependencies: 923 | nanoid "^3.3.4" 924 | picocolors "^1.0.0" 925 | source-map-js "^1.0.2" 926 | 927 | process-nextick-args@~2.0.0: 928 | version "2.0.1" 929 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 930 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 931 | 932 | randombytes@^2.1.0: 933 | version "2.1.0" 934 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 935 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 936 | dependencies: 937 | safe-buffer "^5.1.0" 938 | 939 | range-parser@~1.2.1: 940 | version "1.2.1" 941 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 942 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 943 | 944 | readable-stream@~2.3.6: 945 | version "2.3.7" 946 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 947 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 948 | dependencies: 949 | core-util-is "~1.0.0" 950 | inherits "~2.0.3" 951 | isarray "~1.0.0" 952 | process-nextick-args "~2.0.0" 953 | safe-buffer "~5.1.1" 954 | string_decoder "~1.1.1" 955 | util-deprecate "~1.0.1" 956 | 957 | readdirp@~3.6.0: 958 | version "3.6.0" 959 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 960 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 961 | dependencies: 962 | picomatch "^2.2.1" 963 | 964 | require-directory@^2.1.1: 965 | version "2.1.1" 966 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 967 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== 968 | 969 | resolve@^1.15.1, resolve@^1.22.0: 970 | version "1.22.1" 971 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" 972 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== 973 | dependencies: 974 | is-core-module "^2.9.0" 975 | path-parse "^1.0.7" 976 | supports-preserve-symlinks-flag "^1.0.0" 977 | 978 | rimraf@^3.0.0: 979 | version "3.0.2" 980 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 981 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 982 | dependencies: 983 | glob "^7.1.3" 984 | 985 | rollup-plugin-dts@^3.0.0: 986 | version "3.0.2" 987 | resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-3.0.2.tgz#2b628d88f864d271d6eaec2e4c2a60ae4e944c5c" 988 | integrity sha512-hswlsdWu/x7k5pXzaLP6OvKRKcx8Bzprksz9i9mUe72zvt8LvqAb/AZpzs6FkLgmyRaN8B6rUQOVtzA3yEt9Yw== 989 | dependencies: 990 | magic-string "^0.25.7" 991 | optionalDependencies: 992 | "@babel/code-frame" "^7.12.13" 993 | 994 | rollup@^2.35.1, rollup@^2.59.0: 995 | version "2.75.7" 996 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.7.tgz#221ff11887ae271e37dcc649ba32ce1590aaa0b9" 997 | integrity sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ== 998 | optionalDependencies: 999 | fsevents "~2.3.2" 1000 | 1001 | safe-buffer@^5.1.0: 1002 | version "5.2.1" 1003 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1004 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1005 | 1006 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1007 | version "5.1.2" 1008 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1009 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1010 | 1011 | selenium-webdriver@^4.0.0-beta.3: 1012 | version "4.2.0" 1013 | resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.2.0.tgz#d3c9704735c6228e09580eb4613932b30bdb4d27" 1014 | integrity sha512-gPPXYSz4jJBM2kANRQ9cZW6KFBzR/ptxqGLtyC75eXtdgOsWWRRRyZz5F2pqdnwNmAjrCSFMMXfisJaZeWVejg== 1015 | dependencies: 1016 | jszip "^3.6.0" 1017 | tmp "^0.2.1" 1018 | ws ">=7.4.6" 1019 | 1020 | send@0.18.0: 1021 | version "0.18.0" 1022 | resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" 1023 | integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 1024 | dependencies: 1025 | debug "2.6.9" 1026 | depd "2.0.0" 1027 | destroy "1.2.0" 1028 | encodeurl "~1.0.2" 1029 | escape-html "~1.0.3" 1030 | etag "~1.8.1" 1031 | fresh "0.5.2" 1032 | http-errors "2.0.0" 1033 | mime "1.6.0" 1034 | ms "2.1.3" 1035 | on-finished "2.4.1" 1036 | range-parser "~1.2.1" 1037 | statuses "2.0.1" 1038 | 1039 | serialize-javascript@6.0.0: 1040 | version "6.0.0" 1041 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" 1042 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 1043 | dependencies: 1044 | randombytes "^2.1.0" 1045 | 1046 | serve-static@^1.14.1: 1047 | version "1.15.0" 1048 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" 1049 | integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 1050 | dependencies: 1051 | encodeurl "~1.0.2" 1052 | escape-html "~1.0.3" 1053 | parseurl "~1.3.3" 1054 | send "0.18.0" 1055 | 1056 | setimmediate@^1.0.5: 1057 | version "1.0.5" 1058 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 1059 | integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== 1060 | 1061 | setprototypeof@1.2.0: 1062 | version "1.2.0" 1063 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 1064 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 1065 | 1066 | source-map-js@^1.0.2: 1067 | version "1.0.2" 1068 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 1069 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 1070 | 1071 | sourcemap-codec@^1.4.8: 1072 | version "1.4.8" 1073 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1074 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1075 | 1076 | statuses@2.0.1: 1077 | version "2.0.1" 1078 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 1079 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 1080 | 1081 | string-width@^4.1.0, string-width@^4.2.0: 1082 | version "4.2.3" 1083 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1084 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1085 | dependencies: 1086 | emoji-regex "^8.0.0" 1087 | is-fullwidth-code-point "^3.0.0" 1088 | strip-ansi "^6.0.1" 1089 | 1090 | string_decoder@~1.1.1: 1091 | version "1.1.1" 1092 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1093 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1094 | dependencies: 1095 | safe-buffer "~5.1.0" 1096 | 1097 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1098 | version "6.0.1" 1099 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1100 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1101 | dependencies: 1102 | ansi-regex "^5.0.1" 1103 | 1104 | strip-json-comments@3.1.1: 1105 | version "3.1.1" 1106 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1107 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1108 | 1109 | style-mod@^4.0.0: 1110 | version "4.0.0" 1111 | resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.0.0.tgz#97e7c2d68b592975f2ca7a63d0dd6fcacfe35a01" 1112 | integrity sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw== 1113 | 1114 | supports-color@8.1.1: 1115 | version "8.1.1" 1116 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 1117 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1118 | dependencies: 1119 | has-flag "^4.0.0" 1120 | 1121 | supports-color@^5.3.0: 1122 | version "5.5.0" 1123 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1124 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1125 | dependencies: 1126 | has-flag "^3.0.0" 1127 | 1128 | supports-color@^7.1.0: 1129 | version "7.2.0" 1130 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1131 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1132 | dependencies: 1133 | has-flag "^4.0.0" 1134 | 1135 | supports-preserve-symlinks-flag@^1.0.0: 1136 | version "1.0.0" 1137 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1138 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1139 | 1140 | tmp@^0.2.1: 1141 | version "0.2.1" 1142 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" 1143 | integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== 1144 | dependencies: 1145 | rimraf "^3.0.0" 1146 | 1147 | to-regex-range@^5.0.1: 1148 | version "5.0.1" 1149 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1150 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1151 | dependencies: 1152 | is-number "^7.0.0" 1153 | 1154 | toidentifier@1.0.1: 1155 | version "1.0.1" 1156 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 1157 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 1158 | 1159 | typescript@^4.2.3: 1160 | version "4.7.4" 1161 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" 1162 | integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== 1163 | 1164 | util-deprecate@~1.0.1: 1165 | version "1.0.2" 1166 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1167 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1168 | 1169 | vite@^2.3.8: 1170 | version "2.9.12" 1171 | resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.12.tgz#b1d636b0a8ac636afe9d83e3792d4895509a941b" 1172 | integrity sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew== 1173 | dependencies: 1174 | esbuild "^0.14.27" 1175 | postcss "^8.4.13" 1176 | resolve "^1.22.0" 1177 | rollup "^2.59.0" 1178 | optionalDependencies: 1179 | fsevents "~2.3.2" 1180 | 1181 | w3c-keyname@^2.2.4: 1182 | version "2.2.4" 1183 | resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.4.tgz#4ade6916f6290224cdbd1db8ac49eab03d0eef6b" 1184 | integrity sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw== 1185 | 1186 | workerpool@6.2.1: 1187 | version "6.2.1" 1188 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" 1189 | integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== 1190 | 1191 | wrap-ansi@^7.0.0: 1192 | version "7.0.0" 1193 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1194 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1195 | dependencies: 1196 | ansi-styles "^4.0.0" 1197 | string-width "^4.1.0" 1198 | strip-ansi "^6.0.0" 1199 | 1200 | wrappy@1: 1201 | version "1.0.2" 1202 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1203 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1204 | 1205 | ws@>=7.4.6: 1206 | version "8.8.0" 1207 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" 1208 | integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== 1209 | 1210 | y18n@^5.0.5: 1211 | version "5.0.8" 1212 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 1213 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1214 | 1215 | yargs-parser@20.2.4: 1216 | version "20.2.4" 1217 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" 1218 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 1219 | 1220 | yargs-parser@^20.2.2: 1221 | version "20.2.9" 1222 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 1223 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 1224 | 1225 | yargs-unparser@2.0.0: 1226 | version "2.0.0" 1227 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" 1228 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== 1229 | dependencies: 1230 | camelcase "^6.0.0" 1231 | decamelize "^4.0.0" 1232 | flat "^5.0.2" 1233 | is-plain-obj "^2.1.0" 1234 | 1235 | yargs@16.2.0: 1236 | version "16.2.0" 1237 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 1238 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1239 | dependencies: 1240 | cliui "^7.0.2" 1241 | escalade "^3.1.1" 1242 | get-caller-file "^2.0.5" 1243 | require-directory "^2.1.1" 1244 | string-width "^4.2.0" 1245 | y18n "^5.0.5" 1246 | yargs-parser "^20.2.2" 1247 | 1248 | yocto-queue@^0.1.0: 1249 | version "0.1.0" 1250 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 1251 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 1252 | --------------------------------------------------------------------------------