├── .gitignore ├── data_files ├── .DS_Store ├── csgo.zip └── dota.zip ├── .gitattributes ├── server.js ├── package.json ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | *.jsonl 2 | *.json 3 | node_modules 4 | !package.json -------------------------------------------------------------------------------- /data_files/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/grid-esports/datajam-2023/HEAD/data_files/.DS_Store -------------------------------------------------------------------------------- /data_files/csgo.zip: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a74b92b32f36d32a583c2a9ffe92b06dfd4b04d8b66919dcc1328b6707f34dec 3 | size 215752807 4 | -------------------------------------------------------------------------------- /data_files/dota.zip: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98e6a5723019fd9d9e273872db260dbf91a714eb71cab92cb2a0f87bf016ccf7 3 | size 353665117 4 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | data_files/csgo.zip filter=lfs diff=lfs merge=lfs -text 2 | data_files/dota.zip filter=lfs diff=lfs merge=lfs -text 3 | *.zip filter=lfs diff=lfs merge=lfs -text 4 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | import { WebSocketServer } from "ws"; 2 | import jsonlFile from "jsonl-db"; 3 | import { glob } from "glob"; 4 | 5 | const wss = new WebSocketServer({ 6 | port: 8080, 7 | }); 8 | 9 | wss.on("connection", async function connection(ws, req) { 10 | ws.on("ping", () => { 11 | ws.pong(); 12 | }); 13 | 14 | console.log(req.url); 15 | 16 | const jsfiles = await glob(`**/${req.url}_events.jsonl`, { 17 | ignore: "node_modules/**", 18 | }); 19 | 20 | console.log('Emitting', jsfiles[0]); 21 | const eventsFile = jsonlFile(jsfiles[0]); 22 | eventsFile.read((line) => ws.send(JSON.stringify(line))); 23 | }); 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "grid-data-jam", 3 | "version": "1.0.0", 4 | "description": "## Overview", 5 | "main": "server.js", 6 | "engines" : { 7 | "npm" : ">=8.0.0", 8 | "node" : ">=16.18.0" 9 | }, 10 | "scripts": { 11 | "test": "echo \"Error: no test specified\" && exit 1", 12 | "start": "node server.js" 13 | }, 14 | "type": "module", 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/grid-esports/datajam-2023.git" 18 | }, 19 | "author": "", 20 | "license": "ISC", 21 | "bugs": { 22 | "url": "https://github.com/grid-esports/datajam-2023/issues" 23 | }, 24 | "homepage": "https://github.com/grid-esports/datajam-2023#readme", 25 | "dependencies": { 26 | "glob": "^10.3.1", 27 | "jsonl-db": "^1.0.1", 28 | "node-jsonl": "^0.1.0", 29 | "ws": "^8.13.0" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GRID DataJam 2023 2 | 3 | ## Overview 4 | Welcome to the GRID Esports DataJam GitHub, where you will find the data sets and documentation needed to complete your submission for our DataJam, organized in partnership with Opera GX and Esports Insider. 5 | 6 | If you haven’t signed up yet, [head over to our Devpost page and join the challenge](http://grid-esports-datajam23.devpost.com). 7 | 8 | Participation is free and you can win exclusive awards including a prize pool of over 20k USD, access to the GRID Data Platform, and consulting sessions with industry professionals. 9 | 10 | ## About GRID Esports 11 | :wave: [GRID](https://grid.gg) is a data platform serving the game industry with end-to-end in-game data infrastructure, data management, and asset distribution solutions. GRID offers only official data, directly from the source through partnerships with over 90 rights holders such as Riot Games, KRAFTON, WePlay and PGL. GRID Data is used by over 350 commercial clients in over 20 use cases such as betting, integrity, media, player coaching, talent scouting, and AI. 12 | 13 | :tada: P.S. We are hiring! [There are multiple engineering roles available so make sure you don't miss out on building the next-generation of game-tech with us!](https://grid.recruitee.com) 14 | 15 | ## Getting Started 16 | Inside the `data_files` folder you'll find two zip files once unzipped, you'll find a few different data files. These are the real events coming from our Series Events API, these are stored as JSONL files. 17 | 18 | We have also included a simple node script that will allow you to connect via a websocket and consume the events files. 19 | 20 | You can find additional event documentation and terminology [here](https://docs.google.com/document/d/1FPkcvrgtKSyPmnxSWM4xITzaxDMHikz3PHOQLxvoJao/edit?usp=sharing). 21 | 22 | ## Data Available 23 | Each ID listed here is what's known as our GRID Series ID, you can reference this within the attached data files or using the server we have bundled with this repository. 24 | 25 | - CCT Online Finals #1 26 | - Final 27 | - ID: 2579089 28 | - Semifinals 29 | - ID: 2579048 30 | - ID: 2578928gi 31 | - DotA 2 The International 2022 32 | - Final 33 | - ID: 2432453 34 | - Semifinals 35 | - ID: 2364966 36 | - ID: 2432302 37 | - PGL Arlington Major 2022 38 | - Final 39 | - ID: 1598060 40 | - Semifinals 41 | - ID: 1597139 42 | - ID: 1614507 43 | 44 | ### GIT LFS 45 | We use git LFS to store the files you should install this from the [git lfs website](https://git-lfs.com/), and then run `git lfs fetch --all` to get the files from LFS. You'll then need to unarchive the ZIP files to be able to run the test server. 46 | 47 | ### Test Server 48 | Included is a test server, this is written in node and will allow you to connect to a websocket connection 49 | 50 | ``` 51 | npm install 52 | npm run start 53 | ``` 54 | 55 | Once the server is running you can connect via the following URL `ws://localhost:8080/{series_ID}` replacing the `{SERIES_ID}` with one listed above. 56 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@isaacs/cliui@^8.0.2": 6 | version "8.0.2" 7 | resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" 8 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 9 | dependencies: 10 | string-width "^5.1.2" 11 | string-width-cjs "npm:string-width@^4.2.0" 12 | strip-ansi "^7.0.1" 13 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 14 | wrap-ansi "^8.1.0" 15 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 16 | 17 | "@pkgjs/parseargs@^0.11.0": 18 | version "0.11.0" 19 | resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" 20 | integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== 21 | 22 | ansi-regex@^5.0.1: 23 | version "5.0.1" 24 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 25 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 26 | 27 | ansi-regex@^6.0.1: 28 | version "6.0.1" 29 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" 30 | integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== 31 | 32 | ansi-styles@^4.0.0: 33 | version "4.3.0" 34 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 35 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 36 | dependencies: 37 | color-convert "^2.0.1" 38 | 39 | ansi-styles@^6.1.0: 40 | version "6.2.1" 41 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" 42 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 43 | 44 | balanced-match@^1.0.0: 45 | version "1.0.2" 46 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 47 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 48 | 49 | brace-expansion@^2.0.1: 50 | version "2.0.1" 51 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 52 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 53 | dependencies: 54 | balanced-match "^1.0.0" 55 | 56 | color-convert@^2.0.1: 57 | version "2.0.1" 58 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 59 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 60 | dependencies: 61 | color-name "~1.1.4" 62 | 63 | color-name@~1.1.4: 64 | version "1.1.4" 65 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 66 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 67 | 68 | cross-spawn@^7.0.0: 69 | version "7.0.3" 70 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 71 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 72 | dependencies: 73 | path-key "^3.1.0" 74 | shebang-command "^2.0.0" 75 | which "^2.0.1" 76 | 77 | crypto-random-string@^4.0.0: 78 | version "4.0.0" 79 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" 80 | integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== 81 | dependencies: 82 | type-fest "^1.0.1" 83 | 84 | eastasianwidth@^0.2.0: 85 | version "0.2.0" 86 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" 87 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 88 | 89 | emoji-regex@^8.0.0: 90 | version "8.0.0" 91 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 92 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 93 | 94 | emoji-regex@^9.2.2: 95 | version "9.2.2" 96 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 97 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 98 | 99 | foreground-child@^3.1.0: 100 | version "3.1.1" 101 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" 102 | integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== 103 | dependencies: 104 | cross-spawn "^7.0.0" 105 | signal-exit "^4.0.1" 106 | 107 | glob@^10.3.1: 108 | version "10.3.1" 109 | resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.1.tgz#9789cb1b994515bedb811a6deca735b5c37d2bf4" 110 | integrity sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw== 111 | dependencies: 112 | foreground-child "^3.1.0" 113 | jackspeak "^2.0.3" 114 | minimatch "^9.0.1" 115 | minipass "^5.0.0 || ^6.0.2" 116 | path-scurry "^1.10.0" 117 | 118 | is-fullwidth-code-point@^3.0.0: 119 | version "3.0.0" 120 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 121 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 122 | 123 | is-stream@^3.0.0: 124 | version "3.0.0" 125 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" 126 | integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== 127 | 128 | isexe@^2.0.0: 129 | version "2.0.0" 130 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 131 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 132 | 133 | jackspeak@^2.0.3: 134 | version "2.2.1" 135 | resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6" 136 | integrity sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw== 137 | dependencies: 138 | "@isaacs/cliui" "^8.0.2" 139 | optionalDependencies: 140 | "@pkgjs/parseargs" "^0.11.0" 141 | 142 | jsonl-db@^1.0.1: 143 | version "1.0.1" 144 | resolved "https://registry.yarnpkg.com/jsonl-db/-/jsonl-db-1.0.1.tgz#4ca18e510227a383f2699e1455592f0e236c7631" 145 | integrity sha512-4RQHfoVDcBDc5TR/ukNM1ot6/az6x+Q6eTNe+InAv6akjM/n9ss/BZE3KRAMUn6zLlhXvldVJoKzYK5VkeMjUg== 146 | dependencies: 147 | tempy "^3.0.0" 148 | 149 | "lru-cache@^9.1.1 || ^10.0.0": 150 | version "10.0.0" 151 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" 152 | integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== 153 | 154 | minimatch@^9.0.1: 155 | version "9.0.2" 156 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.2.tgz#397e387fff22f6795844d00badc903a3d5de7057" 157 | integrity sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg== 158 | dependencies: 159 | brace-expansion "^2.0.1" 160 | 161 | "minipass@^5.0.0 || ^6.0.2": 162 | version "6.0.2" 163 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" 164 | integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== 165 | 166 | node-jsonl@^0.1.0: 167 | version "0.1.0" 168 | resolved "https://registry.yarnpkg.com/node-jsonl/-/node-jsonl-0.1.0.tgz#e6724595df85f34e218077d9665c9f77e2e8fbc0" 169 | integrity sha512-lNoAqQQDx68zexR/EZv4VFdqdzzb04bm3/WSYHqkYp0dqKHQM0jm+gkWHmxEWR3N0fNBYQQwlqJhMqKP9Kyjhg== 170 | 171 | path-key@^3.1.0: 172 | version "3.1.1" 173 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 174 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 175 | 176 | path-scurry@^1.10.0: 177 | version "1.10.0" 178 | resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.0.tgz#0ffbd4c1f7de9600f98a1405507d9f9acb438ab3" 179 | integrity sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g== 180 | dependencies: 181 | lru-cache "^9.1.1 || ^10.0.0" 182 | minipass "^5.0.0 || ^6.0.2" 183 | 184 | shebang-command@^2.0.0: 185 | version "2.0.0" 186 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 187 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 188 | dependencies: 189 | shebang-regex "^3.0.0" 190 | 191 | shebang-regex@^3.0.0: 192 | version "3.0.0" 193 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 194 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 195 | 196 | signal-exit@^4.0.1: 197 | version "4.0.2" 198 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" 199 | integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== 200 | 201 | "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: 202 | version "4.2.3" 203 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 204 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 205 | dependencies: 206 | emoji-regex "^8.0.0" 207 | is-fullwidth-code-point "^3.0.0" 208 | strip-ansi "^6.0.1" 209 | 210 | string-width@^5.0.1, string-width@^5.1.2: 211 | version "5.1.2" 212 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" 213 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 214 | dependencies: 215 | eastasianwidth "^0.2.0" 216 | emoji-regex "^9.2.2" 217 | strip-ansi "^7.0.1" 218 | 219 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: 220 | version "6.0.1" 221 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 222 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 223 | dependencies: 224 | ansi-regex "^5.0.1" 225 | 226 | strip-ansi@^7.0.1: 227 | version "7.1.0" 228 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" 229 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 230 | dependencies: 231 | ansi-regex "^6.0.1" 232 | 233 | temp-dir@^2.0.0: 234 | version "2.0.0" 235 | resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" 236 | integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== 237 | 238 | tempy@^3.0.0: 239 | version "3.0.0" 240 | resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.0.0.tgz#a6c0a15f5534a820e92c3e1369f1c1e87ebd6b68" 241 | integrity sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA== 242 | dependencies: 243 | is-stream "^3.0.0" 244 | temp-dir "^2.0.0" 245 | type-fest "^2.12.2" 246 | unique-string "^3.0.0" 247 | 248 | type-fest@^1.0.1: 249 | version "1.4.0" 250 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" 251 | integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== 252 | 253 | type-fest@^2.12.2: 254 | version "2.19.0" 255 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" 256 | integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== 257 | 258 | unique-string@^3.0.0: 259 | version "3.0.0" 260 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" 261 | integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== 262 | dependencies: 263 | crypto-random-string "^4.0.0" 264 | 265 | which@^2.0.1: 266 | version "2.0.2" 267 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 268 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 269 | dependencies: 270 | isexe "^2.0.0" 271 | 272 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 273 | version "7.0.0" 274 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 275 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 276 | dependencies: 277 | ansi-styles "^4.0.0" 278 | string-width "^4.1.0" 279 | strip-ansi "^6.0.0" 280 | 281 | wrap-ansi@^8.1.0: 282 | version "8.1.0" 283 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" 284 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 285 | dependencies: 286 | ansi-styles "^6.1.0" 287 | string-width "^5.0.1" 288 | strip-ansi "^7.0.1" 289 | 290 | ws@^8.13.0: 291 | version "8.13.0" 292 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" 293 | integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== 294 | --------------------------------------------------------------------------------