.pnp.cjs (955699B)
1 #!/usr/bin/env node 2 /* eslint-disable */ 3 "use strict"; 4 5 function $$SETUP_STATE(hydrateRuntimeState, basePath) { 6 return hydrateRuntimeState(JSON.parse('{\ 7 "__info": [\ 8 "This file is automatically generated. Do not touch it, or risk",\ 9 "your modifications being lost. We also recommend you not to read",\ 10 "it either without using the @yarnpkg/pnp package, as the data layout",\ 11 "is entirely unspecified and WILL change from a version to another."\ 12 ],\ 13 "dependencyTreeRoots": [\ 14 {\ 15 "name": "dreamhanks-demo-project",\ 16 "reference": "workspace:."\ 17 }\ 18 ],\ 19 "enableTopLevelFallback": true,\ 20 "ignorePatternData": "(^(?:\\\\.yarn\\\\/sdks(?:\\\\/(?!\\\\.{1,2}(?:\\\\/|$))(?:(?:(?!(?:^|\\\\/)\\\\.{1,2}(?:\\\\/|$)).)*?)|$))$)",\ 21 "fallbackExclusionList": [\ 22 ["dreamhanks-demo-project", ["workspace:."]]\ 23 ],\ 24 "fallbackPool": [\ 25 ],\ 26 "packageRegistryData": [\ 27 [null, [\ 28 [null, {\ 29 "packageLocation": "./",\ 30 "packageDependencies": [\ 31 ["@next/font", "npm:13.1.2"],\ 32 ["@testing-library/jest-dom", "npm:5.16.5"],\ 33 ["@testing-library/react", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.4.0"],\ 34 ["@testing-library/user-event", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:14.4.3"],\ 35 ["@types/bcrypt", "npm:5.0.0"],\ 36 ["@types/diff", "npm:5.0.2"],\ 37 ["@types/jest", "npm:29.2.6"],\ 38 ["@types/jsonwebtoken", "npm:9.0.1"],\ 39 ["@types/node", "npm:18.11.18"],\ 40 ["@types/nodemailer", "npm:6.4.7"],\ 41 ["@types/react", "npm:18.0.26"],\ 42 ["@types/react-dom", "npm:18.0.10"],\ 43 ["@types/testing-library__jest-dom", "npm:5.14.5"],\ 44 ["bcrypt", "npm:5.1.0"],\ 45 ["diff", "npm:5.1.0"],\ 46 ["eslint", "npm:8.32.0"],\ 47 ["eslint-config-next", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2"],\ 48 ["handlebars", "npm:4.7.7"],\ 49 ["jest", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:29.3.1"],\ 50 ["jest-environment-jsdom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:29.3.1"],\ 51 ["jsonwebtoken", "npm:9.0.0"],\ 52 ["moment", "npm:2.29.4"],\ 53 ["mysql2", "npm:3.0.1"],\ 54 ["nanoevents", "npm:7.0.1"],\ 55 ["nanoid", "npm:4.0.0"],\ 56 ["next", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2"],\ 57 ["next-router-mock", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:0.9.1-beta.0"],\ 58 ["next-superjson-plugin", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:0.5.4"],\ 59 ["nodemailer", "npm:6.9.0"],\ 60 ["pino", "npm:8.8.0"],\ 61 ["react", "npm:18.2.0"],\ 62 ["react-dom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:18.2.0"],\ 63 ["react-hot-toast", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:2.4.0"],\ 64 ["redis", "npm:4.6.1"],\ 65 ["sass", "npm:1.57.1"],\ 66 ["superjson", "npm:1.12.2"],\ 67 ["typescript", "patch:typescript@npm%3A4.9.4#~builtin<compat/typescript>::version=4.9.4&hash=ad5954"],\ 68 ["ws", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:8.12.0"],\ 69 ["yaml", "npm:2.2.1"]\ 70 ],\ 71 "linkType": "SOFT"\ 72 }]\ 73 ]],\ 74 ["@adobe/css-tools", [\ 75 ["npm:4.0.2", {\ 76 "packageLocation": "./.yarn/cache/@adobe-css-tools-npm-4.0.2-3802712175-f9ffd602fc.zip/node_modules/@adobe/css-tools/",\ 77 "packageDependencies": [\ 78 ["@adobe/css-tools", "npm:4.0.2"]\ 79 ],\ 80 "linkType": "HARD"\ 81 }]\ 82 ]],\ 83 ["@ampproject/remapping", [\ 84 ["npm:2.2.0", {\ 85 "packageLocation": "./.yarn/cache/@ampproject-remapping-npm-2.2.0-114878fa50-d74d170d06.zip/node_modules/@ampproject/remapping/",\ 86 "packageDependencies": [\ 87 ["@ampproject/remapping", "npm:2.2.0"],\ 88 ["@jridgewell/gen-mapping", "npm:0.1.1"],\ 89 ["@jridgewell/trace-mapping", "npm:0.3.17"]\ 90 ],\ 91 "linkType": "HARD"\ 92 }]\ 93 ]],\ 94 ["@babel/code-frame", [\ 95 ["npm:7.18.6", {\ 96 "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.18.6-25229a7e34-195e2be317.zip/node_modules/@babel/code-frame/",\ 97 "packageDependencies": [\ 98 ["@babel/code-frame", "npm:7.18.6"],\ 99 ["@babel/highlight", "npm:7.18.6"]\ 100 ],\ 101 "linkType": "HARD"\ 102 }]\ 103 ]],\ 104 ["@babel/compat-data", [\ 105 ["npm:7.20.10", {\ 106 "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.20.10-b619ecdaef-6ed6c1bb6f.zip/node_modules/@babel/compat-data/",\ 107 "packageDependencies": [\ 108 ["@babel/compat-data", "npm:7.20.10"]\ 109 ],\ 110 "linkType": "HARD"\ 111 }]\ 112 ]],\ 113 ["@babel/core", [\ 114 ["npm:7.20.12", {\ 115 "packageLocation": "./.yarn/cache/@babel-core-npm-7.20.12-1f7c5fb4ea-62e6c3e214.zip/node_modules/@babel/core/",\ 116 "packageDependencies": [\ 117 ["@babel/core", "npm:7.20.12"],\ 118 ["@ampproject/remapping", "npm:2.2.0"],\ 119 ["@babel/code-frame", "npm:7.18.6"],\ 120 ["@babel/generator", "npm:7.20.7"],\ 121 ["@babel/helper-compilation-targets", "virtual:1f7c5fb4eaf0e3fac538c847dd78775a2a11c71ccc52672116f07149d0ab5042c14ba5bc568151ff9c88f489eaba473057ed1a22ca9a46823248c87b5a5a1217#npm:7.20.7"],\ 122 ["@babel/helper-module-transforms", "npm:7.20.11"],\ 123 ["@babel/helpers", "npm:7.20.7"],\ 124 ["@babel/parser", "npm:7.20.7"],\ 125 ["@babel/template", "npm:7.20.7"],\ 126 ["@babel/traverse", "npm:7.20.12"],\ 127 ["@babel/types", "npm:7.20.7"],\ 128 ["convert-source-map", "npm:1.9.0"],\ 129 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 130 ["gensync", "npm:1.0.0-beta.2"],\ 131 ["json5", "npm:2.2.3"],\ 132 ["semver", "npm:6.3.0"]\ 133 ],\ 134 "linkType": "HARD"\ 135 }]\ 136 ]],\ 137 ["@babel/generator", [\ 138 ["npm:7.20.7", {\ 139 "packageLocation": "./.yarn/cache/@babel-generator-npm-7.20.7-6446968b78-84b6983ffd.zip/node_modules/@babel/generator/",\ 140 "packageDependencies": [\ 141 ["@babel/generator", "npm:7.20.7"],\ 142 ["@babel/types", "npm:7.20.7"],\ 143 ["@jridgewell/gen-mapping", "npm:0.3.2"],\ 144 ["jsesc", "npm:2.5.2"]\ 145 ],\ 146 "linkType": "HARD"\ 147 }]\ 148 ]],\ 149 ["@babel/helper-compilation-targets", [\ 150 ["npm:7.20.7", {\ 151 "packageLocation": "./.yarn/cache/@babel-helper-compilation-targets-npm-7.20.7-fbd2fdfc71-8c32c873ba.zip/node_modules/@babel/helper-compilation-targets/",\ 152 "packageDependencies": [\ 153 ["@babel/helper-compilation-targets", "npm:7.20.7"]\ 154 ],\ 155 "linkType": "SOFT"\ 156 }],\ 157 ["virtual:1f7c5fb4eaf0e3fac538c847dd78775a2a11c71ccc52672116f07149d0ab5042c14ba5bc568151ff9c88f489eaba473057ed1a22ca9a46823248c87b5a5a1217#npm:7.20.7", {\ 158 "packageLocation": "./.yarn/__virtual__/@babel-helper-compilation-targets-virtual-a7cbcc026a/0/cache/@babel-helper-compilation-targets-npm-7.20.7-fbd2fdfc71-8c32c873ba.zip/node_modules/@babel/helper-compilation-targets/",\ 159 "packageDependencies": [\ 160 ["@babel/helper-compilation-targets", "virtual:1f7c5fb4eaf0e3fac538c847dd78775a2a11c71ccc52672116f07149d0ab5042c14ba5bc568151ff9c88f489eaba473057ed1a22ca9a46823248c87b5a5a1217#npm:7.20.7"],\ 161 ["@babel/compat-data", "npm:7.20.10"],\ 162 ["@babel/core", "npm:7.20.12"],\ 163 ["@babel/helper-validator-option", "npm:7.18.6"],\ 164 ["@types/babel__core", null],\ 165 ["browserslist", "npm:4.21.4"],\ 166 ["lru-cache", "npm:5.1.1"],\ 167 ["semver", "npm:6.3.0"]\ 168 ],\ 169 "packagePeers": [\ 170 "@babel/core",\ 171 "@types/babel__core"\ 172 ],\ 173 "linkType": "HARD"\ 174 }]\ 175 ]],\ 176 ["@babel/helper-environment-visitor", [\ 177 ["npm:7.18.9", {\ 178 "packageLocation": "./.yarn/cache/@babel-helper-environment-visitor-npm-7.18.9-9f5b3635a1-b25101f616.zip/node_modules/@babel/helper-environment-visitor/",\ 179 "packageDependencies": [\ 180 ["@babel/helper-environment-visitor", "npm:7.18.9"]\ 181 ],\ 182 "linkType": "HARD"\ 183 }]\ 184 ]],\ 185 ["@babel/helper-function-name", [\ 186 ["npm:7.19.0", {\ 187 "packageLocation": "./.yarn/cache/@babel-helper-function-name-npm-7.19.0-5bcf55236f-eac1f5db42.zip/node_modules/@babel/helper-function-name/",\ 188 "packageDependencies": [\ 189 ["@babel/helper-function-name", "npm:7.19.0"],\ 190 ["@babel/template", "npm:7.20.7"],\ 191 ["@babel/types", "npm:7.20.7"]\ 192 ],\ 193 "linkType": "HARD"\ 194 }]\ 195 ]],\ 196 ["@babel/helper-hoist-variables", [\ 197 ["npm:7.18.6", {\ 198 "packageLocation": "./.yarn/cache/@babel-helper-hoist-variables-npm-7.18.6-6eb061f405-fd9c35bb43.zip/node_modules/@babel/helper-hoist-variables/",\ 199 "packageDependencies": [\ 200 ["@babel/helper-hoist-variables", "npm:7.18.6"],\ 201 ["@babel/types", "npm:7.20.7"]\ 202 ],\ 203 "linkType": "HARD"\ 204 }]\ 205 ]],\ 206 ["@babel/helper-module-imports", [\ 207 ["npm:7.18.6", {\ 208 "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.18.6-1031faa864-f393f8a3b3.zip/node_modules/@babel/helper-module-imports/",\ 209 "packageDependencies": [\ 210 ["@babel/helper-module-imports", "npm:7.18.6"],\ 211 ["@babel/types", "npm:7.20.7"]\ 212 ],\ 213 "linkType": "HARD"\ 214 }]\ 215 ]],\ 216 ["@babel/helper-module-transforms", [\ 217 ["npm:7.20.11", {\ 218 "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.20.11-3e2102ac8a-29319ebafa.zip/node_modules/@babel/helper-module-transforms/",\ 219 "packageDependencies": [\ 220 ["@babel/helper-module-transforms", "npm:7.20.11"],\ 221 ["@babel/helper-environment-visitor", "npm:7.18.9"],\ 222 ["@babel/helper-module-imports", "npm:7.18.6"],\ 223 ["@babel/helper-simple-access", "npm:7.20.2"],\ 224 ["@babel/helper-split-export-declaration", "npm:7.18.6"],\ 225 ["@babel/helper-validator-identifier", "npm:7.19.1"],\ 226 ["@babel/template", "npm:7.20.7"],\ 227 ["@babel/traverse", "npm:7.20.12"],\ 228 ["@babel/types", "npm:7.20.7"]\ 229 ],\ 230 "linkType": "HARD"\ 231 }]\ 232 ]],\ 233 ["@babel/helper-plugin-utils", [\ 234 ["npm:7.20.2", {\ 235 "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.20.2-63f605bb73-f6cae53b7f.zip/node_modules/@babel/helper-plugin-utils/",\ 236 "packageDependencies": [\ 237 ["@babel/helper-plugin-utils", "npm:7.20.2"]\ 238 ],\ 239 "linkType": "HARD"\ 240 }]\ 241 ]],\ 242 ["@babel/helper-simple-access", [\ 243 ["npm:7.20.2", {\ 244 "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.20.2-842ec98fbb-ad1e96ee2e.zip/node_modules/@babel/helper-simple-access/",\ 245 "packageDependencies": [\ 246 ["@babel/helper-simple-access", "npm:7.20.2"],\ 247 ["@babel/types", "npm:7.20.7"]\ 248 ],\ 249 "linkType": "HARD"\ 250 }]\ 251 ]],\ 252 ["@babel/helper-split-export-declaration", [\ 253 ["npm:7.18.6", {\ 254 "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.18.6-53ebf8ad4c-c6d3dede53.zip/node_modules/@babel/helper-split-export-declaration/",\ 255 "packageDependencies": [\ 256 ["@babel/helper-split-export-declaration", "npm:7.18.6"],\ 257 ["@babel/types", "npm:7.20.7"]\ 258 ],\ 259 "linkType": "HARD"\ 260 }]\ 261 ]],\ 262 ["@babel/helper-string-parser", [\ 263 ["npm:7.19.4", {\ 264 "packageLocation": "./.yarn/cache/@babel-helper-string-parser-npm-7.19.4-0db110dc3a-b2f8a3920b.zip/node_modules/@babel/helper-string-parser/",\ 265 "packageDependencies": [\ 266 ["@babel/helper-string-parser", "npm:7.19.4"]\ 267 ],\ 268 "linkType": "HARD"\ 269 }]\ 270 ]],\ 271 ["@babel/helper-validator-identifier", [\ 272 ["npm:7.19.1", {\ 273 "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.19.1-d84f19e1dc-0eca5e86a7.zip/node_modules/@babel/helper-validator-identifier/",\ 274 "packageDependencies": [\ 275 ["@babel/helper-validator-identifier", "npm:7.19.1"]\ 276 ],\ 277 "linkType": "HARD"\ 278 }]\ 279 ]],\ 280 ["@babel/helper-validator-option", [\ 281 ["npm:7.18.6", {\ 282 "packageLocation": "./.yarn/cache/@babel-helper-validator-option-npm-7.18.6-cc7d1a3315-f9cc6eb7cc.zip/node_modules/@babel/helper-validator-option/",\ 283 "packageDependencies": [\ 284 ["@babel/helper-validator-option", "npm:7.18.6"]\ 285 ],\ 286 "linkType": "HARD"\ 287 }]\ 288 ]],\ 289 ["@babel/helpers", [\ 290 ["npm:7.20.7", {\ 291 "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.20.7-58121e4a26-3fb10df351.zip/node_modules/@babel/helpers/",\ 292 "packageDependencies": [\ 293 ["@babel/helpers", "npm:7.20.7"],\ 294 ["@babel/template", "npm:7.20.7"],\ 295 ["@babel/traverse", "npm:7.20.12"],\ 296 ["@babel/types", "npm:7.20.7"]\ 297 ],\ 298 "linkType": "HARD"\ 299 }]\ 300 ]],\ 301 ["@babel/highlight", [\ 302 ["npm:7.18.6", {\ 303 "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.18.6-9d35ad2e27-92d8ee6154.zip/node_modules/@babel/highlight/",\ 304 "packageDependencies": [\ 305 ["@babel/highlight", "npm:7.18.6"],\ 306 ["@babel/helper-validator-identifier", "npm:7.19.1"],\ 307 ["chalk", "npm:2.4.2"],\ 308 ["js-tokens", "npm:4.0.0"]\ 309 ],\ 310 "linkType": "HARD"\ 311 }]\ 312 ]],\ 313 ["@babel/parser", [\ 314 ["npm:7.20.7", {\ 315 "packageLocation": "./.yarn/cache/@babel-parser-npm-7.20.7-3710a9bc4f-25b5266e3b.zip/node_modules/@babel/parser/",\ 316 "packageDependencies": [\ 317 ["@babel/parser", "npm:7.20.7"],\ 318 ["@babel/types", "npm:7.20.7"]\ 319 ],\ 320 "linkType": "HARD"\ 321 }]\ 322 ]],\ 323 ["@babel/plugin-syntax-async-generators", [\ 324 ["npm:7.8.4", {\ 325 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip/node_modules/@babel/plugin-syntax-async-generators/",\ 326 "packageDependencies": [\ 327 ["@babel/plugin-syntax-async-generators", "npm:7.8.4"]\ 328 ],\ 329 "linkType": "SOFT"\ 330 }],\ 331 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.4", {\ 332 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-d8571a5bcc/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip/node_modules/@babel/plugin-syntax-async-generators/",\ 333 "packageDependencies": [\ 334 ["@babel/plugin-syntax-async-generators", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.4"],\ 335 ["@babel/core", "npm:7.20.12"],\ 336 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 337 ["@types/babel__core", "npm:7.20.0"]\ 338 ],\ 339 "packagePeers": [\ 340 "@babel/core",\ 341 "@types/babel__core"\ 342 ],\ 343 "linkType": "HARD"\ 344 }],\ 345 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.4", {\ 346 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-async-generators-virtual-c08bf2a997/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip/node_modules/@babel/plugin-syntax-async-generators/",\ 347 "packageDependencies": [\ 348 ["@babel/plugin-syntax-async-generators", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.4"],\ 349 ["@babel/core", "npm:7.20.12"],\ 350 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 351 ["@types/babel__core", null]\ 352 ],\ 353 "packagePeers": [\ 354 "@babel/core",\ 355 "@types/babel__core"\ 356 ],\ 357 "linkType": "HARD"\ 358 }]\ 359 ]],\ 360 ["@babel/plugin-syntax-bigint", [\ 361 ["npm:7.8.3", {\ 362 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-3a10849d83.zip/node_modules/@babel/plugin-syntax-bigint/",\ 363 "packageDependencies": [\ 364 ["@babel/plugin-syntax-bigint", "npm:7.8.3"]\ 365 ],\ 366 "linkType": "SOFT"\ 367 }],\ 368 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3", {\ 369 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-bigint-virtual-6a40e79f7c/0/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-3a10849d83.zip/node_modules/@babel/plugin-syntax-bigint/",\ 370 "packageDependencies": [\ 371 ["@babel/plugin-syntax-bigint", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 372 ["@babel/core", "npm:7.20.12"],\ 373 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 374 ["@types/babel__core", "npm:7.20.0"]\ 375 ],\ 376 "packagePeers": [\ 377 "@babel/core",\ 378 "@types/babel__core"\ 379 ],\ 380 "linkType": "HARD"\ 381 }],\ 382 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3", {\ 383 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-bigint-virtual-5bdfe1131a/0/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-3a10849d83.zip/node_modules/@babel/plugin-syntax-bigint/",\ 384 "packageDependencies": [\ 385 ["@babel/plugin-syntax-bigint", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 386 ["@babel/core", "npm:7.20.12"],\ 387 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 388 ["@types/babel__core", null]\ 389 ],\ 390 "packagePeers": [\ 391 "@babel/core",\ 392 "@types/babel__core"\ 393 ],\ 394 "linkType": "HARD"\ 395 }]\ 396 ]],\ 397 ["@babel/plugin-syntax-class-properties", [\ 398 ["npm:7.12.13", {\ 399 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip/node_modules/@babel/plugin-syntax-class-properties/",\ 400 "packageDependencies": [\ 401 ["@babel/plugin-syntax-class-properties", "npm:7.12.13"]\ 402 ],\ 403 "linkType": "SOFT"\ 404 }],\ 405 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.12.13", {\ 406 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-properties-virtual-836eaa04c4/0/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip/node_modules/@babel/plugin-syntax-class-properties/",\ 407 "packageDependencies": [\ 408 ["@babel/plugin-syntax-class-properties", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.12.13"],\ 409 ["@babel/core", "npm:7.20.12"],\ 410 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 411 ["@types/babel__core", "npm:7.20.0"]\ 412 ],\ 413 "packagePeers": [\ 414 "@babel/core",\ 415 "@types/babel__core"\ 416 ],\ 417 "linkType": "HARD"\ 418 }],\ 419 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.12.13", {\ 420 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-class-properties-virtual-02aaa83924/0/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip/node_modules/@babel/plugin-syntax-class-properties/",\ 421 "packageDependencies": [\ 422 ["@babel/plugin-syntax-class-properties", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.12.13"],\ 423 ["@babel/core", "npm:7.20.12"],\ 424 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 425 ["@types/babel__core", null]\ 426 ],\ 427 "packagePeers": [\ 428 "@babel/core",\ 429 "@types/babel__core"\ 430 ],\ 431 "linkType": "HARD"\ 432 }]\ 433 ]],\ 434 ["@babel/plugin-syntax-import-meta", [\ 435 ["npm:7.10.4", {\ 436 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-166ac1125d.zip/node_modules/@babel/plugin-syntax-import-meta/",\ 437 "packageDependencies": [\ 438 ["@babel/plugin-syntax-import-meta", "npm:7.10.4"]\ 439 ],\ 440 "linkType": "SOFT"\ 441 }],\ 442 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4", {\ 443 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-meta-virtual-bf5e117f90/0/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-166ac1125d.zip/node_modules/@babel/plugin-syntax-import-meta/",\ 444 "packageDependencies": [\ 445 ["@babel/plugin-syntax-import-meta", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4"],\ 446 ["@babel/core", "npm:7.20.12"],\ 447 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 448 ["@types/babel__core", "npm:7.20.0"]\ 449 ],\ 450 "packagePeers": [\ 451 "@babel/core",\ 452 "@types/babel__core"\ 453 ],\ 454 "linkType": "HARD"\ 455 }],\ 456 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4", {\ 457 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-import-meta-virtual-54fa45e977/0/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-166ac1125d.zip/node_modules/@babel/plugin-syntax-import-meta/",\ 458 "packageDependencies": [\ 459 ["@babel/plugin-syntax-import-meta", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4"],\ 460 ["@babel/core", "npm:7.20.12"],\ 461 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 462 ["@types/babel__core", null]\ 463 ],\ 464 "packagePeers": [\ 465 "@babel/core",\ 466 "@types/babel__core"\ 467 ],\ 468 "linkType": "HARD"\ 469 }]\ 470 ]],\ 471 ["@babel/plugin-syntax-json-strings", [\ 472 ["npm:7.8.3", {\ 473 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip/node_modules/@babel/plugin-syntax-json-strings/",\ 474 "packageDependencies": [\ 475 ["@babel/plugin-syntax-json-strings", "npm:7.8.3"]\ 476 ],\ 477 "linkType": "SOFT"\ 478 }],\ 479 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3", {\ 480 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-json-strings-virtual-c540626e20/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip/node_modules/@babel/plugin-syntax-json-strings/",\ 481 "packageDependencies": [\ 482 ["@babel/plugin-syntax-json-strings", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 483 ["@babel/core", "npm:7.20.12"],\ 484 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 485 ["@types/babel__core", "npm:7.20.0"]\ 486 ],\ 487 "packagePeers": [\ 488 "@babel/core",\ 489 "@types/babel__core"\ 490 ],\ 491 "linkType": "HARD"\ 492 }],\ 493 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3", {\ 494 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-json-strings-virtual-bc4360e1fa/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip/node_modules/@babel/plugin-syntax-json-strings/",\ 495 "packageDependencies": [\ 496 ["@babel/plugin-syntax-json-strings", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 497 ["@babel/core", "npm:7.20.12"],\ 498 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 499 ["@types/babel__core", null]\ 500 ],\ 501 "packagePeers": [\ 502 "@babel/core",\ 503 "@types/babel__core"\ 504 ],\ 505 "linkType": "HARD"\ 506 }]\ 507 ]],\ 508 ["@babel/plugin-syntax-jsx", [\ 509 ["npm:7.18.6", {\ 510 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-jsx-npm-7.18.6-3e378d5f11-6d37ea9729.zip/node_modules/@babel/plugin-syntax-jsx/",\ 511 "packageDependencies": [\ 512 ["@babel/plugin-syntax-jsx", "npm:7.18.6"]\ 513 ],\ 514 "linkType": "SOFT"\ 515 }],\ 516 ["virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:7.18.6", {\ 517 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-jsx-virtual-d868c887e0/0/cache/@babel-plugin-syntax-jsx-npm-7.18.6-3e378d5f11-6d37ea9729.zip/node_modules/@babel/plugin-syntax-jsx/",\ 518 "packageDependencies": [\ 519 ["@babel/plugin-syntax-jsx", "virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:7.18.6"],\ 520 ["@babel/core", "npm:7.20.12"],\ 521 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 522 ["@types/babel__core", null]\ 523 ],\ 524 "packagePeers": [\ 525 "@babel/core",\ 526 "@types/babel__core"\ 527 ],\ 528 "linkType": "HARD"\ 529 }]\ 530 ]],\ 531 ["@babel/plugin-syntax-logical-assignment-operators", [\ 532 ["npm:7.10.4", {\ 533 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ 534 "packageDependencies": [\ 535 ["@babel/plugin-syntax-logical-assignment-operators", "npm:7.10.4"]\ 536 ],\ 537 "linkType": "SOFT"\ 538 }],\ 539 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4", {\ 540 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-bdabe856d7/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ 541 "packageDependencies": [\ 542 ["@babel/plugin-syntax-logical-assignment-operators", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4"],\ 543 ["@babel/core", "npm:7.20.12"],\ 544 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 545 ["@types/babel__core", "npm:7.20.0"]\ 546 ],\ 547 "packagePeers": [\ 548 "@babel/core",\ 549 "@types/babel__core"\ 550 ],\ 551 "linkType": "HARD"\ 552 }],\ 553 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4", {\ 554 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-logical-assignment-operators-virtual-3565873bbb/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/",\ 555 "packageDependencies": [\ 556 ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4"],\ 557 ["@babel/core", "npm:7.20.12"],\ 558 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 559 ["@types/babel__core", null]\ 560 ],\ 561 "packagePeers": [\ 562 "@babel/core",\ 563 "@types/babel__core"\ 564 ],\ 565 "linkType": "HARD"\ 566 }]\ 567 ]],\ 568 ["@babel/plugin-syntax-nullish-coalescing-operator", [\ 569 ["npm:7.8.3", {\ 570 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ 571 "packageDependencies": [\ 572 ["@babel/plugin-syntax-nullish-coalescing-operator", "npm:7.8.3"]\ 573 ],\ 574 "linkType": "SOFT"\ 575 }],\ 576 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3", {\ 577 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-a7c53bc55d/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ 578 "packageDependencies": [\ 579 ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 580 ["@babel/core", "npm:7.20.12"],\ 581 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 582 ["@types/babel__core", "npm:7.20.0"]\ 583 ],\ 584 "packagePeers": [\ 585 "@babel/core",\ 586 "@types/babel__core"\ 587 ],\ 588 "linkType": "HARD"\ 589 }],\ 590 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3", {\ 591 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-nullish-coalescing-operator-virtual-76203aa973/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/",\ 592 "packageDependencies": [\ 593 ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 594 ["@babel/core", "npm:7.20.12"],\ 595 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 596 ["@types/babel__core", null]\ 597 ],\ 598 "packagePeers": [\ 599 "@babel/core",\ 600 "@types/babel__core"\ 601 ],\ 602 "linkType": "HARD"\ 603 }]\ 604 ]],\ 605 ["@babel/plugin-syntax-numeric-separator", [\ 606 ["npm:7.10.4", {\ 607 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ 608 "packageDependencies": [\ 609 ["@babel/plugin-syntax-numeric-separator", "npm:7.10.4"]\ 610 ],\ 611 "linkType": "SOFT"\ 612 }],\ 613 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4", {\ 614 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-5c15b1ab3b/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ 615 "packageDependencies": [\ 616 ["@babel/plugin-syntax-numeric-separator", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4"],\ 617 ["@babel/core", "npm:7.20.12"],\ 618 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 619 ["@types/babel__core", "npm:7.20.0"]\ 620 ],\ 621 "packagePeers": [\ 622 "@babel/core",\ 623 "@types/babel__core"\ 624 ],\ 625 "linkType": "HARD"\ 626 }],\ 627 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4", {\ 628 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-numeric-separator-virtual-f31995b066/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip/node_modules/@babel/plugin-syntax-numeric-separator/",\ 629 "packageDependencies": [\ 630 ["@babel/plugin-syntax-numeric-separator", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4"],\ 631 ["@babel/core", "npm:7.20.12"],\ 632 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 633 ["@types/babel__core", null]\ 634 ],\ 635 "packagePeers": [\ 636 "@babel/core",\ 637 "@types/babel__core"\ 638 ],\ 639 "linkType": "HARD"\ 640 }]\ 641 ]],\ 642 ["@babel/plugin-syntax-object-rest-spread", [\ 643 ["npm:7.8.3", {\ 644 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ 645 "packageDependencies": [\ 646 ["@babel/plugin-syntax-object-rest-spread", "npm:7.8.3"]\ 647 ],\ 648 "linkType": "SOFT"\ 649 }],\ 650 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3", {\ 651 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-816146b153/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ 652 "packageDependencies": [\ 653 ["@babel/plugin-syntax-object-rest-spread", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 654 ["@babel/core", "npm:7.20.12"],\ 655 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 656 ["@types/babel__core", "npm:7.20.0"]\ 657 ],\ 658 "packagePeers": [\ 659 "@babel/core",\ 660 "@types/babel__core"\ 661 ],\ 662 "linkType": "HARD"\ 663 }],\ 664 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3", {\ 665 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-object-rest-spread-virtual-f020e2fb1a/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip/node_modules/@babel/plugin-syntax-object-rest-spread/",\ 666 "packageDependencies": [\ 667 ["@babel/plugin-syntax-object-rest-spread", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 668 ["@babel/core", "npm:7.20.12"],\ 669 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 670 ["@types/babel__core", null]\ 671 ],\ 672 "packagePeers": [\ 673 "@babel/core",\ 674 "@types/babel__core"\ 675 ],\ 676 "linkType": "HARD"\ 677 }]\ 678 ]],\ 679 ["@babel/plugin-syntax-optional-catch-binding", [\ 680 ["npm:7.8.3", {\ 681 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ 682 "packageDependencies": [\ 683 ["@babel/plugin-syntax-optional-catch-binding", "npm:7.8.3"]\ 684 ],\ 685 "linkType": "SOFT"\ 686 }],\ 687 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3", {\ 688 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-e24cb18e8a/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ 689 "packageDependencies": [\ 690 ["@babel/plugin-syntax-optional-catch-binding", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 691 ["@babel/core", "npm:7.20.12"],\ 692 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 693 ["@types/babel__core", "npm:7.20.0"]\ 694 ],\ 695 "packagePeers": [\ 696 "@babel/core",\ 697 "@types/babel__core"\ 698 ],\ 699 "linkType": "HARD"\ 700 }],\ 701 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3", {\ 702 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-catch-binding-virtual-ddca1346b3/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/",\ 703 "packageDependencies": [\ 704 ["@babel/plugin-syntax-optional-catch-binding", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 705 ["@babel/core", "npm:7.20.12"],\ 706 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 707 ["@types/babel__core", null]\ 708 ],\ 709 "packagePeers": [\ 710 "@babel/core",\ 711 "@types/babel__core"\ 712 ],\ 713 "linkType": "HARD"\ 714 }]\ 715 ]],\ 716 ["@babel/plugin-syntax-optional-chaining", [\ 717 ["npm:7.8.3", {\ 718 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ 719 "packageDependencies": [\ 720 ["@babel/plugin-syntax-optional-chaining", "npm:7.8.3"]\ 721 ],\ 722 "linkType": "SOFT"\ 723 }],\ 724 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3", {\ 725 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-12a1a3ce9c/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ 726 "packageDependencies": [\ 727 ["@babel/plugin-syntax-optional-chaining", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 728 ["@babel/core", "npm:7.20.12"],\ 729 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 730 ["@types/babel__core", "npm:7.20.0"]\ 731 ],\ 732 "packagePeers": [\ 733 "@babel/core",\ 734 "@types/babel__core"\ 735 ],\ 736 "linkType": "HARD"\ 737 }],\ 738 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3", {\ 739 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-optional-chaining-virtual-dc70241b66/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip/node_modules/@babel/plugin-syntax-optional-chaining/",\ 740 "packageDependencies": [\ 741 ["@babel/plugin-syntax-optional-chaining", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 742 ["@babel/core", "npm:7.20.12"],\ 743 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 744 ["@types/babel__core", null]\ 745 ],\ 746 "packagePeers": [\ 747 "@babel/core",\ 748 "@types/babel__core"\ 749 ],\ 750 "linkType": "HARD"\ 751 }]\ 752 ]],\ 753 ["@babel/plugin-syntax-top-level-await", [\ 754 ["npm:7.14.5", {\ 755 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-bbd1a56b09.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ 756 "packageDependencies": [\ 757 ["@babel/plugin-syntax-top-level-await", "npm:7.14.5"]\ 758 ],\ 759 "linkType": "SOFT"\ 760 }],\ 761 ["virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.14.5", {\ 762 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-top-level-await-virtual-c90367563b/0/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-bbd1a56b09.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ 763 "packageDependencies": [\ 764 ["@babel/plugin-syntax-top-level-await", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.14.5"],\ 765 ["@babel/core", "npm:7.20.12"],\ 766 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 767 ["@types/babel__core", "npm:7.20.0"]\ 768 ],\ 769 "packagePeers": [\ 770 "@babel/core",\ 771 "@types/babel__core"\ 772 ],\ 773 "linkType": "HARD"\ 774 }],\ 775 ["virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.14.5", {\ 776 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-top-level-await-virtual-89f7a8a7b2/0/cache/@babel-plugin-syntax-top-level-await-npm-7.14.5-60a0a2e83b-bbd1a56b09.zip/node_modules/@babel/plugin-syntax-top-level-await/",\ 777 "packageDependencies": [\ 778 ["@babel/plugin-syntax-top-level-await", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.14.5"],\ 779 ["@babel/core", "npm:7.20.12"],\ 780 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 781 ["@types/babel__core", null]\ 782 ],\ 783 "packagePeers": [\ 784 "@babel/core",\ 785 "@types/babel__core"\ 786 ],\ 787 "linkType": "HARD"\ 788 }]\ 789 ]],\ 790 ["@babel/plugin-syntax-typescript", [\ 791 ["npm:7.20.0", {\ 792 "packageLocation": "./.yarn/cache/@babel-plugin-syntax-typescript-npm-7.20.0-21fa6329fe-6189c0b5c3.zip/node_modules/@babel/plugin-syntax-typescript/",\ 793 "packageDependencies": [\ 794 ["@babel/plugin-syntax-typescript", "npm:7.20.0"]\ 795 ],\ 796 "linkType": "SOFT"\ 797 }],\ 798 ["virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:7.20.0", {\ 799 "packageLocation": "./.yarn/__virtual__/@babel-plugin-syntax-typescript-virtual-55d1ab3a55/0/cache/@babel-plugin-syntax-typescript-npm-7.20.0-21fa6329fe-6189c0b5c3.zip/node_modules/@babel/plugin-syntax-typescript/",\ 800 "packageDependencies": [\ 801 ["@babel/plugin-syntax-typescript", "virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:7.20.0"],\ 802 ["@babel/core", "npm:7.20.12"],\ 803 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 804 ["@types/babel__core", null]\ 805 ],\ 806 "packagePeers": [\ 807 "@babel/core",\ 808 "@types/babel__core"\ 809 ],\ 810 "linkType": "HARD"\ 811 }]\ 812 ]],\ 813 ["@babel/runtime", [\ 814 ["npm:7.20.7", {\ 815 "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.20.7-69d8df458c-4629ce5c46.zip/node_modules/@babel/runtime/",\ 816 "packageDependencies": [\ 817 ["@babel/runtime", "npm:7.20.7"],\ 818 ["regenerator-runtime", "npm:0.13.11"]\ 819 ],\ 820 "linkType": "HARD"\ 821 }]\ 822 ]],\ 823 ["@babel/template", [\ 824 ["npm:7.20.7", {\ 825 "packageLocation": "./.yarn/cache/@babel-template-npm-7.20.7-c157fc5838-2eb1a0ab8d.zip/node_modules/@babel/template/",\ 826 "packageDependencies": [\ 827 ["@babel/template", "npm:7.20.7"],\ 828 ["@babel/code-frame", "npm:7.18.6"],\ 829 ["@babel/parser", "npm:7.20.7"],\ 830 ["@babel/types", "npm:7.20.7"]\ 831 ],\ 832 "linkType": "HARD"\ 833 }]\ 834 ]],\ 835 ["@babel/traverse", [\ 836 ["npm:7.20.12", {\ 837 "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.20.12-68fa1c73c8-d758b355ab.zip/node_modules/@babel/traverse/",\ 838 "packageDependencies": [\ 839 ["@babel/traverse", "npm:7.20.12"],\ 840 ["@babel/code-frame", "npm:7.18.6"],\ 841 ["@babel/generator", "npm:7.20.7"],\ 842 ["@babel/helper-environment-visitor", "npm:7.18.9"],\ 843 ["@babel/helper-function-name", "npm:7.19.0"],\ 844 ["@babel/helper-hoist-variables", "npm:7.18.6"],\ 845 ["@babel/helper-split-export-declaration", "npm:7.18.6"],\ 846 ["@babel/parser", "npm:7.20.7"],\ 847 ["@babel/types", "npm:7.20.7"],\ 848 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 849 ["globals", "npm:11.12.0"]\ 850 ],\ 851 "linkType": "HARD"\ 852 }]\ 853 ]],\ 854 ["@babel/types", [\ 855 ["npm:7.20.7", {\ 856 "packageLocation": "./.yarn/cache/@babel-types-npm-7.20.7-8dc703d95e-b39af241f0.zip/node_modules/@babel/types/",\ 857 "packageDependencies": [\ 858 ["@babel/types", "npm:7.20.7"],\ 859 ["@babel/helper-string-parser", "npm:7.19.4"],\ 860 ["@babel/helper-validator-identifier", "npm:7.19.1"],\ 861 ["to-fast-properties", "npm:2.0.0"]\ 862 ],\ 863 "linkType": "HARD"\ 864 }]\ 865 ]],\ 866 ["@bcoe/v8-coverage", [\ 867 ["npm:0.2.3", {\ 868 "packageLocation": "./.yarn/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-850f930553.zip/node_modules/@bcoe/v8-coverage/",\ 869 "packageDependencies": [\ 870 ["@bcoe/v8-coverage", "npm:0.2.3"]\ 871 ],\ 872 "linkType": "HARD"\ 873 }]\ 874 ]],\ 875 ["@eslint/eslintrc", [\ 876 ["npm:1.4.1", {\ 877 "packageLocation": "./.yarn/cache/@eslint-eslintrc-npm-1.4.1-007f670de2-cd3e5a8683.zip/node_modules/@eslint/eslintrc/",\ 878 "packageDependencies": [\ 879 ["@eslint/eslintrc", "npm:1.4.1"],\ 880 ["ajv", "npm:6.12.6"],\ 881 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 882 ["espree", "npm:9.4.1"],\ 883 ["globals", "npm:13.19.0"],\ 884 ["ignore", "npm:5.2.4"],\ 885 ["import-fresh", "npm:3.3.0"],\ 886 ["js-yaml", "npm:4.1.0"],\ 887 ["minimatch", "npm:3.1.2"],\ 888 ["strip-json-comments", "npm:3.1.1"]\ 889 ],\ 890 "linkType": "HARD"\ 891 }]\ 892 ]],\ 893 ["@gar/promisify", [\ 894 ["npm:1.1.3", {\ 895 "packageLocation": "./.yarn/cache/@gar-promisify-npm-1.1.3-ac1a325862-4059f790e2.zip/node_modules/@gar/promisify/",\ 896 "packageDependencies": [\ 897 ["@gar/promisify", "npm:1.1.3"]\ 898 ],\ 899 "linkType": "HARD"\ 900 }]\ 901 ]],\ 902 ["@humanwhocodes/config-array", [\ 903 ["npm:0.11.8", {\ 904 "packageLocation": "./.yarn/cache/@humanwhocodes-config-array-npm-0.11.8-7955bfecc2-0fd6b3c54f.zip/node_modules/@humanwhocodes/config-array/",\ 905 "packageDependencies": [\ 906 ["@humanwhocodes/config-array", "npm:0.11.8"],\ 907 ["@humanwhocodes/object-schema", "npm:1.2.1"],\ 908 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 909 ["minimatch", "npm:3.1.2"]\ 910 ],\ 911 "linkType": "HARD"\ 912 }]\ 913 ]],\ 914 ["@humanwhocodes/module-importer", [\ 915 ["npm:1.0.1", {\ 916 "packageLocation": "./.yarn/cache/@humanwhocodes-module-importer-npm-1.0.1-9d07ed2e4a-0fd22007db.zip/node_modules/@humanwhocodes/module-importer/",\ 917 "packageDependencies": [\ 918 ["@humanwhocodes/module-importer", "npm:1.0.1"]\ 919 ],\ 920 "linkType": "HARD"\ 921 }]\ 922 ]],\ 923 ["@humanwhocodes/object-schema", [\ 924 ["npm:1.2.1", {\ 925 "packageLocation": "./.yarn/cache/@humanwhocodes-object-schema-npm-1.2.1-eb622b5d0e-a824a1ec31.zip/node_modules/@humanwhocodes/object-schema/",\ 926 "packageDependencies": [\ 927 ["@humanwhocodes/object-schema", "npm:1.2.1"]\ 928 ],\ 929 "linkType": "HARD"\ 930 }]\ 931 ]],\ 932 ["@istanbuljs/load-nyc-config", [\ 933 ["npm:1.1.0", {\ 934 "packageLocation": "./.yarn/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-d578da5e2e.zip/node_modules/@istanbuljs/load-nyc-config/",\ 935 "packageDependencies": [\ 936 ["@istanbuljs/load-nyc-config", "npm:1.1.0"],\ 937 ["camelcase", "npm:5.3.1"],\ 938 ["find-up", "npm:4.1.0"],\ 939 ["get-package-type", "npm:0.1.0"],\ 940 ["js-yaml", "npm:3.14.1"],\ 941 ["resolve-from", "npm:5.0.0"]\ 942 ],\ 943 "linkType": "HARD"\ 944 }]\ 945 ]],\ 946 ["@istanbuljs/schema", [\ 947 ["npm:0.1.3", {\ 948 "packageLocation": "./.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-5282759d96.zip/node_modules/@istanbuljs/schema/",\ 949 "packageDependencies": [\ 950 ["@istanbuljs/schema", "npm:0.1.3"]\ 951 ],\ 952 "linkType": "HARD"\ 953 }]\ 954 ]],\ 955 ["@jest/console", [\ 956 ["npm:29.3.1", {\ 957 "packageLocation": "./.yarn/cache/@jest-console-npm-29.3.1-8c9f654275-9eecbfb6df.zip/node_modules/@jest/console/",\ 958 "packageDependencies": [\ 959 ["@jest/console", "npm:29.3.1"],\ 960 ["@jest/types", "npm:29.3.1"],\ 961 ["@types/node", "npm:18.11.18"],\ 962 ["chalk", "npm:4.1.2"],\ 963 ["jest-message-util", "npm:29.3.1"],\ 964 ["jest-util", "npm:29.3.1"],\ 965 ["slash", "npm:3.0.0"]\ 966 ],\ 967 "linkType": "HARD"\ 968 }]\ 969 ]],\ 970 ["@jest/core", [\ 971 ["npm:29.3.1", {\ 972 "packageLocation": "./.yarn/cache/@jest-core-npm-29.3.1-11862a6fa6-e3ac9201e8.zip/node_modules/@jest/core/",\ 973 "packageDependencies": [\ 974 ["@jest/core", "npm:29.3.1"]\ 975 ],\ 976 "linkType": "SOFT"\ 977 }],\ 978 ["virtual:862fe11ad734d9824bb5179f29c186fa9f77ceebedb2f944ac18ed20d5fcc37038a2424aefa361ad967aa043e9ab786e57cbb123d8e240896e168d8c77eb943c#npm:29.3.1", {\ 979 "packageLocation": "./.yarn/__virtual__/@jest-core-virtual-7aebeda1ba/0/cache/@jest-core-npm-29.3.1-11862a6fa6-e3ac9201e8.zip/node_modules/@jest/core/",\ 980 "packageDependencies": [\ 981 ["@jest/core", "virtual:862fe11ad734d9824bb5179f29c186fa9f77ceebedb2f944ac18ed20d5fcc37038a2424aefa361ad967aa043e9ab786e57cbb123d8e240896e168d8c77eb943c#npm:29.3.1"],\ 982 ["@jest/console", "npm:29.3.1"],\ 983 ["@jest/reporters", "virtual:7aebeda1bac4461522e36f1704237701105565624a839dea899a630763a93d41f851157efaf3e44178f8554a7b861dbe5ebb77e2cfbbcfb8de3fbad419c572ff#npm:29.3.1"],\ 984 ["@jest/test-result", "npm:29.3.1"],\ 985 ["@jest/transform", "npm:29.3.1"],\ 986 ["@jest/types", "npm:29.3.1"],\ 987 ["@types/node", "npm:18.11.18"],\ 988 ["@types/node-notifier", null],\ 989 ["ansi-escapes", "npm:4.3.2"],\ 990 ["chalk", "npm:4.1.2"],\ 991 ["ci-info", "npm:3.7.1"],\ 992 ["exit", "npm:0.1.2"],\ 993 ["graceful-fs", "npm:4.2.10"],\ 994 ["jest-changed-files", "npm:29.2.0"],\ 995 ["jest-config", "virtual:7aebeda1bac4461522e36f1704237701105565624a839dea899a630763a93d41f851157efaf3e44178f8554a7b861dbe5ebb77e2cfbbcfb8de3fbad419c572ff#npm:29.3.1"],\ 996 ["jest-haste-map", "npm:29.3.1"],\ 997 ["jest-message-util", "npm:29.3.1"],\ 998 ["jest-regex-util", "npm:29.2.0"],\ 999 ["jest-resolve", "npm:29.3.1"],\ 1000 ["jest-resolve-dependencies", "npm:29.3.1"],\ 1001 ["jest-runner", "npm:29.3.1"],\ 1002 ["jest-runtime", "npm:29.3.1"],\ 1003 ["jest-snapshot", "npm:29.3.1"],\ 1004 ["jest-util", "npm:29.3.1"],\ 1005 ["jest-validate", "npm:29.3.1"],\ 1006 ["jest-watcher", "npm:29.3.1"],\ 1007 ["micromatch", "npm:4.0.5"],\ 1008 ["node-notifier", null],\ 1009 ["pretty-format", "npm:29.3.1"],\ 1010 ["slash", "npm:3.0.0"],\ 1011 ["strip-ansi", "npm:6.0.1"]\ 1012 ],\ 1013 "packagePeers": [\ 1014 "@types/node-notifier",\ 1015 "node-notifier"\ 1016 ],\ 1017 "linkType": "HARD"\ 1018 }]\ 1019 ]],\ 1020 ["@jest/environment", [\ 1021 ["npm:29.3.1", {\ 1022 "packageLocation": "./.yarn/cache/@jest-environment-npm-29.3.1-a92f501968-974102aba7.zip/node_modules/@jest/environment/",\ 1023 "packageDependencies": [\ 1024 ["@jest/environment", "npm:29.3.1"],\ 1025 ["@jest/fake-timers", "npm:29.3.1"],\ 1026 ["@jest/types", "npm:29.3.1"],\ 1027 ["@types/node", "npm:18.11.18"],\ 1028 ["jest-mock", "npm:29.3.1"]\ 1029 ],\ 1030 "linkType": "HARD"\ 1031 }]\ 1032 ]],\ 1033 ["@jest/expect", [\ 1034 ["npm:29.3.1", {\ 1035 "packageLocation": "./.yarn/cache/@jest-expect-npm-29.3.1-0790624347-1d7b5cc735.zip/node_modules/@jest/expect/",\ 1036 "packageDependencies": [\ 1037 ["@jest/expect", "npm:29.3.1"],\ 1038 ["expect", "npm:29.3.1"],\ 1039 ["jest-snapshot", "npm:29.3.1"]\ 1040 ],\ 1041 "linkType": "HARD"\ 1042 }]\ 1043 ]],\ 1044 ["@jest/expect-utils", [\ 1045 ["npm:29.3.1", {\ 1046 "packageLocation": "./.yarn/cache/@jest-expect-utils-npm-29.3.1-97cd2f0a06-7f3b853eb1.zip/node_modules/@jest/expect-utils/",\ 1047 "packageDependencies": [\ 1048 ["@jest/expect-utils", "npm:29.3.1"],\ 1049 ["jest-get-type", "npm:29.2.0"]\ 1050 ],\ 1051 "linkType": "HARD"\ 1052 }]\ 1053 ]],\ 1054 ["@jest/fake-timers", [\ 1055 ["npm:29.3.1", {\ 1056 "packageLocation": "./.yarn/cache/@jest-fake-timers-npm-29.3.1-8489ff87cf-b1dafa8cdc.zip/node_modules/@jest/fake-timers/",\ 1057 "packageDependencies": [\ 1058 ["@jest/fake-timers", "npm:29.3.1"],\ 1059 ["@jest/types", "npm:29.3.1"],\ 1060 ["@sinonjs/fake-timers", "npm:9.1.2"],\ 1061 ["@types/node", "npm:18.11.18"],\ 1062 ["jest-message-util", "npm:29.3.1"],\ 1063 ["jest-mock", "npm:29.3.1"],\ 1064 ["jest-util", "npm:29.3.1"]\ 1065 ],\ 1066 "linkType": "HARD"\ 1067 }]\ 1068 ]],\ 1069 ["@jest/globals", [\ 1070 ["npm:29.3.1", {\ 1071 "packageLocation": "./.yarn/cache/@jest-globals-npm-29.3.1-8cd2f1156d-4d2b9458aa.zip/node_modules/@jest/globals/",\ 1072 "packageDependencies": [\ 1073 ["@jest/globals", "npm:29.3.1"],\ 1074 ["@jest/environment", "npm:29.3.1"],\ 1075 ["@jest/expect", "npm:29.3.1"],\ 1076 ["@jest/types", "npm:29.3.1"],\ 1077 ["jest-mock", "npm:29.3.1"]\ 1078 ],\ 1079 "linkType": "HARD"\ 1080 }]\ 1081 ]],\ 1082 ["@jest/reporters", [\ 1083 ["npm:29.3.1", {\ 1084 "packageLocation": "./.yarn/cache/@jest-reporters-npm-29.3.1-08646fa246-273e0c6953.zip/node_modules/@jest/reporters/",\ 1085 "packageDependencies": [\ 1086 ["@jest/reporters", "npm:29.3.1"]\ 1087 ],\ 1088 "linkType": "SOFT"\ 1089 }],\ 1090 ["virtual:7aebeda1bac4461522e36f1704237701105565624a839dea899a630763a93d41f851157efaf3e44178f8554a7b861dbe5ebb77e2cfbbcfb8de3fbad419c572ff#npm:29.3.1", {\ 1091 "packageLocation": "./.yarn/__virtual__/@jest-reporters-virtual-d380536b77/0/cache/@jest-reporters-npm-29.3.1-08646fa246-273e0c6953.zip/node_modules/@jest/reporters/",\ 1092 "packageDependencies": [\ 1093 ["@jest/reporters", "virtual:7aebeda1bac4461522e36f1704237701105565624a839dea899a630763a93d41f851157efaf3e44178f8554a7b861dbe5ebb77e2cfbbcfb8de3fbad419c572ff#npm:29.3.1"],\ 1094 ["@bcoe/v8-coverage", "npm:0.2.3"],\ 1095 ["@jest/console", "npm:29.3.1"],\ 1096 ["@jest/test-result", "npm:29.3.1"],\ 1097 ["@jest/transform", "npm:29.3.1"],\ 1098 ["@jest/types", "npm:29.3.1"],\ 1099 ["@jridgewell/trace-mapping", "npm:0.3.17"],\ 1100 ["@types/node", "npm:18.11.18"],\ 1101 ["@types/node-notifier", null],\ 1102 ["chalk", "npm:4.1.2"],\ 1103 ["collect-v8-coverage", "npm:1.0.1"],\ 1104 ["exit", "npm:0.1.2"],\ 1105 ["glob", "npm:7.2.3"],\ 1106 ["graceful-fs", "npm:4.2.10"],\ 1107 ["istanbul-lib-coverage", "npm:3.2.0"],\ 1108 ["istanbul-lib-instrument", "npm:5.2.1"],\ 1109 ["istanbul-lib-report", "npm:3.0.0"],\ 1110 ["istanbul-lib-source-maps", "npm:4.0.1"],\ 1111 ["istanbul-reports", "npm:3.1.5"],\ 1112 ["jest-message-util", "npm:29.3.1"],\ 1113 ["jest-util", "npm:29.3.1"],\ 1114 ["jest-worker", "npm:29.3.1"],\ 1115 ["node-notifier", null],\ 1116 ["slash", "npm:3.0.0"],\ 1117 ["string-length", "npm:4.0.2"],\ 1118 ["strip-ansi", "npm:6.0.1"],\ 1119 ["v8-to-istanbul", "npm:9.0.1"]\ 1120 ],\ 1121 "packagePeers": [\ 1122 "@types/node-notifier",\ 1123 "node-notifier"\ 1124 ],\ 1125 "linkType": "HARD"\ 1126 }]\ 1127 ]],\ 1128 ["@jest/schemas", [\ 1129 ["npm:29.0.0", {\ 1130 "packageLocation": "./.yarn/cache/@jest-schemas-npm-29.0.0-5d6c90262d-41355c78f0.zip/node_modules/@jest/schemas/",\ 1131 "packageDependencies": [\ 1132 ["@jest/schemas", "npm:29.0.0"],\ 1133 ["@sinclair/typebox", "npm:0.24.51"]\ 1134 ],\ 1135 "linkType": "HARD"\ 1136 }]\ 1137 ]],\ 1138 ["@jest/source-map", [\ 1139 ["npm:29.2.0", {\ 1140 "packageLocation": "./.yarn/cache/@jest-source-map-npm-29.2.0-cb038ff173-09f76ab63d.zip/node_modules/@jest/source-map/",\ 1141 "packageDependencies": [\ 1142 ["@jest/source-map", "npm:29.2.0"],\ 1143 ["@jridgewell/trace-mapping", "npm:0.3.17"],\ 1144 ["callsites", "npm:3.1.0"],\ 1145 ["graceful-fs", "npm:4.2.10"]\ 1146 ],\ 1147 "linkType": "HARD"\ 1148 }]\ 1149 ]],\ 1150 ["@jest/test-result", [\ 1151 ["npm:29.3.1", {\ 1152 "packageLocation": "./.yarn/cache/@jest-test-result-npm-29.3.1-77136fcf4d-b24ac28332.zip/node_modules/@jest/test-result/",\ 1153 "packageDependencies": [\ 1154 ["@jest/test-result", "npm:29.3.1"],\ 1155 ["@jest/console", "npm:29.3.1"],\ 1156 ["@jest/types", "npm:29.3.1"],\ 1157 ["@types/istanbul-lib-coverage", "npm:2.0.4"],\ 1158 ["collect-v8-coverage", "npm:1.0.1"]\ 1159 ],\ 1160 "linkType": "HARD"\ 1161 }]\ 1162 ]],\ 1163 ["@jest/test-sequencer", [\ 1164 ["npm:29.3.1", {\ 1165 "packageLocation": "./.yarn/cache/@jest-test-sequencer-npm-29.3.1-9e41fb7e41-a8325b1ea0.zip/node_modules/@jest/test-sequencer/",\ 1166 "packageDependencies": [\ 1167 ["@jest/test-sequencer", "npm:29.3.1"],\ 1168 ["@jest/test-result", "npm:29.3.1"],\ 1169 ["graceful-fs", "npm:4.2.10"],\ 1170 ["jest-haste-map", "npm:29.3.1"],\ 1171 ["slash", "npm:3.0.0"]\ 1172 ],\ 1173 "linkType": "HARD"\ 1174 }]\ 1175 ]],\ 1176 ["@jest/transform", [\ 1177 ["npm:29.3.1", {\ 1178 "packageLocation": "./.yarn/cache/@jest-transform-npm-29.3.1-45dc4bf517-673df5900f.zip/node_modules/@jest/transform/",\ 1179 "packageDependencies": [\ 1180 ["@jest/transform", "npm:29.3.1"],\ 1181 ["@babel/core", "npm:7.20.12"],\ 1182 ["@jest/types", "npm:29.3.1"],\ 1183 ["@jridgewell/trace-mapping", "npm:0.3.17"],\ 1184 ["babel-plugin-istanbul", "npm:6.1.1"],\ 1185 ["chalk", "npm:4.1.2"],\ 1186 ["convert-source-map", "npm:2.0.0"],\ 1187 ["fast-json-stable-stringify", "npm:2.1.0"],\ 1188 ["graceful-fs", "npm:4.2.10"],\ 1189 ["jest-haste-map", "npm:29.3.1"],\ 1190 ["jest-regex-util", "npm:29.2.0"],\ 1191 ["jest-util", "npm:29.3.1"],\ 1192 ["micromatch", "npm:4.0.5"],\ 1193 ["pirates", "npm:4.0.5"],\ 1194 ["slash", "npm:3.0.0"],\ 1195 ["write-file-atomic", "npm:4.0.2"]\ 1196 ],\ 1197 "linkType": "HARD"\ 1198 }]\ 1199 ]],\ 1200 ["@jest/types", [\ 1201 ["npm:29.3.1", {\ 1202 "packageLocation": "./.yarn/cache/@jest-types-npm-29.3.1-6b45218613-6f9faf2750.zip/node_modules/@jest/types/",\ 1203 "packageDependencies": [\ 1204 ["@jest/types", "npm:29.3.1"],\ 1205 ["@jest/schemas", "npm:29.0.0"],\ 1206 ["@types/istanbul-lib-coverage", "npm:2.0.4"],\ 1207 ["@types/istanbul-reports", "npm:3.0.1"],\ 1208 ["@types/node", "npm:18.11.18"],\ 1209 ["@types/yargs", "npm:17.0.20"],\ 1210 ["chalk", "npm:4.1.2"]\ 1211 ],\ 1212 "linkType": "HARD"\ 1213 }]\ 1214 ]],\ 1215 ["@jridgewell/gen-mapping", [\ 1216 ["npm:0.1.1", {\ 1217 "packageLocation": "./.yarn/cache/@jridgewell-gen-mapping-npm-0.1.1-3bad172ac6-3bcc21fe78.zip/node_modules/@jridgewell/gen-mapping/",\ 1218 "packageDependencies": [\ 1219 ["@jridgewell/gen-mapping", "npm:0.1.1"],\ 1220 ["@jridgewell/set-array", "npm:1.1.2"],\ 1221 ["@jridgewell/sourcemap-codec", "npm:1.4.14"]\ 1222 ],\ 1223 "linkType": "HARD"\ 1224 }],\ 1225 ["npm:0.3.2", {\ 1226 "packageLocation": "./.yarn/cache/@jridgewell-gen-mapping-npm-0.3.2-c64eeb4a4e-1832707a1c.zip/node_modules/@jridgewell/gen-mapping/",\ 1227 "packageDependencies": [\ 1228 ["@jridgewell/gen-mapping", "npm:0.3.2"],\ 1229 ["@jridgewell/set-array", "npm:1.1.2"],\ 1230 ["@jridgewell/sourcemap-codec", "npm:1.4.14"],\ 1231 ["@jridgewell/trace-mapping", "npm:0.3.17"]\ 1232 ],\ 1233 "linkType": "HARD"\ 1234 }]\ 1235 ]],\ 1236 ["@jridgewell/resolve-uri", [\ 1237 ["npm:3.1.0", {\ 1238 "packageLocation": "./.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip/node_modules/@jridgewell/resolve-uri/",\ 1239 "packageDependencies": [\ 1240 ["@jridgewell/resolve-uri", "npm:3.1.0"]\ 1241 ],\ 1242 "linkType": "HARD"\ 1243 }]\ 1244 ]],\ 1245 ["@jridgewell/set-array", [\ 1246 ["npm:1.1.2", {\ 1247 "packageLocation": "./.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip/node_modules/@jridgewell/set-array/",\ 1248 "packageDependencies": [\ 1249 ["@jridgewell/set-array", "npm:1.1.2"]\ 1250 ],\ 1251 "linkType": "HARD"\ 1252 }]\ 1253 ]],\ 1254 ["@jridgewell/sourcemap-codec", [\ 1255 ["npm:1.4.14", {\ 1256 "packageLocation": "./.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip/node_modules/@jridgewell/sourcemap-codec/",\ 1257 "packageDependencies": [\ 1258 ["@jridgewell/sourcemap-codec", "npm:1.4.14"]\ 1259 ],\ 1260 "linkType": "HARD"\ 1261 }]\ 1262 ]],\ 1263 ["@jridgewell/trace-mapping", [\ 1264 ["npm:0.3.17", {\ 1265 "packageLocation": "./.yarn/cache/@jridgewell-trace-mapping-npm-0.3.17-57578fd48c-9d703b859c.zip/node_modules/@jridgewell/trace-mapping/",\ 1266 "packageDependencies": [\ 1267 ["@jridgewell/trace-mapping", "npm:0.3.17"],\ 1268 ["@jridgewell/resolve-uri", "npm:3.1.0"],\ 1269 ["@jridgewell/sourcemap-codec", "npm:1.4.14"]\ 1270 ],\ 1271 "linkType": "HARD"\ 1272 }]\ 1273 ]],\ 1274 ["@mapbox/node-pre-gyp", [\ 1275 ["npm:1.0.10", {\ 1276 "packageLocation": "./.yarn/cache/@mapbox-node-pre-gyp-npm-1.0.10-1811160047-1a98db05d9.zip/node_modules/@mapbox/node-pre-gyp/",\ 1277 "packageDependencies": [\ 1278 ["@mapbox/node-pre-gyp", "npm:1.0.10"],\ 1279 ["detect-libc", "npm:2.0.1"],\ 1280 ["https-proxy-agent", "npm:5.0.1"],\ 1281 ["make-dir", "npm:3.1.0"],\ 1282 ["node-fetch", "virtual:1811160047d7e0f7e43f371e07920c11204416dd6ae0b8461e04538b2f68e9167aca28b60b34dbd287674a5cdd52bd05be5797bbe2f7de916231958cb58055fb#npm:2.6.8"],\ 1283 ["nopt", "npm:5.0.0"],\ 1284 ["npmlog", "npm:5.0.1"],\ 1285 ["rimraf", "npm:3.0.2"],\ 1286 ["semver", "npm:7.3.8"],\ 1287 ["tar", "npm:6.1.13"]\ 1288 ],\ 1289 "linkType": "HARD"\ 1290 }]\ 1291 ]],\ 1292 ["@next/env", [\ 1293 ["npm:13.1.2", {\ 1294 "packageLocation": "./.yarn/cache/@next-env-npm-13.1.2-7075a70589-0b25af4a1c.zip/node_modules/@next/env/",\ 1295 "packageDependencies": [\ 1296 ["@next/env", "npm:13.1.2"]\ 1297 ],\ 1298 "linkType": "HARD"\ 1299 }]\ 1300 ]],\ 1301 ["@next/eslint-plugin-next", [\ 1302 ["npm:13.1.2", {\ 1303 "packageLocation": "./.yarn/cache/@next-eslint-plugin-next-npm-13.1.2-10f098f40d-6095e224fe.zip/node_modules/@next/eslint-plugin-next/",\ 1304 "packageDependencies": [\ 1305 ["@next/eslint-plugin-next", "npm:13.1.2"],\ 1306 ["glob", "npm:7.1.7"]\ 1307 ],\ 1308 "linkType": "HARD"\ 1309 }]\ 1310 ]],\ 1311 ["@next/font", [\ 1312 ["npm:13.1.2", {\ 1313 "packageLocation": "./.yarn/cache/@next-font-npm-13.1.2-20441f5803-36fa827f95.zip/node_modules/@next/font/",\ 1314 "packageDependencies": [\ 1315 ["@next/font", "npm:13.1.2"]\ 1316 ],\ 1317 "linkType": "HARD"\ 1318 }]\ 1319 ]],\ 1320 ["@next/swc-android-arm-eabi", [\ 1321 ["npm:13.1.2", {\ 1322 "packageLocation": "./.yarn/unplugged/@next-swc-android-arm-eabi-npm-13.1.2-7e75255834/node_modules/@next/swc-android-arm-eabi/",\ 1323 "packageDependencies": [\ 1324 ["@next/swc-android-arm-eabi", "npm:13.1.2"]\ 1325 ],\ 1326 "linkType": "HARD"\ 1327 }]\ 1328 ]],\ 1329 ["@next/swc-android-arm64", [\ 1330 ["npm:13.1.2", {\ 1331 "packageLocation": "./.yarn/unplugged/@next-swc-android-arm64-npm-13.1.2-16a93ad635/node_modules/@next/swc-android-arm64/",\ 1332 "packageDependencies": [\ 1333 ["@next/swc-android-arm64", "npm:13.1.2"]\ 1334 ],\ 1335 "linkType": "HARD"\ 1336 }]\ 1337 ]],\ 1338 ["@next/swc-darwin-arm64", [\ 1339 ["npm:13.1.2", {\ 1340 "packageLocation": "./.yarn/unplugged/@next-swc-darwin-arm64-npm-13.1.2-1936e39ed9/node_modules/@next/swc-darwin-arm64/",\ 1341 "packageDependencies": [\ 1342 ["@next/swc-darwin-arm64", "npm:13.1.2"]\ 1343 ],\ 1344 "linkType": "HARD"\ 1345 }]\ 1346 ]],\ 1347 ["@next/swc-darwin-x64", [\ 1348 ["npm:13.1.2", {\ 1349 "packageLocation": "./.yarn/unplugged/@next-swc-darwin-x64-npm-13.1.2-99fe43f01f/node_modules/@next/swc-darwin-x64/",\ 1350 "packageDependencies": [\ 1351 ["@next/swc-darwin-x64", "npm:13.1.2"]\ 1352 ],\ 1353 "linkType": "HARD"\ 1354 }]\ 1355 ]],\ 1356 ["@next/swc-freebsd-x64", [\ 1357 ["npm:13.1.2", {\ 1358 "packageLocation": "./.yarn/unplugged/@next-swc-freebsd-x64-npm-13.1.2-fc567eaa21/node_modules/@next/swc-freebsd-x64/",\ 1359 "packageDependencies": [\ 1360 ["@next/swc-freebsd-x64", "npm:13.1.2"]\ 1361 ],\ 1362 "linkType": "HARD"\ 1363 }]\ 1364 ]],\ 1365 ["@next/swc-linux-arm-gnueabihf", [\ 1366 ["npm:13.1.2", {\ 1367 "packageLocation": "./.yarn/unplugged/@next-swc-linux-arm-gnueabihf-npm-13.1.2-8dfc2b359e/node_modules/@next/swc-linux-arm-gnueabihf/",\ 1368 "packageDependencies": [\ 1369 ["@next/swc-linux-arm-gnueabihf", "npm:13.1.2"]\ 1370 ],\ 1371 "linkType": "HARD"\ 1372 }]\ 1373 ]],\ 1374 ["@next/swc-linux-arm64-gnu", [\ 1375 ["npm:13.1.2", {\ 1376 "packageLocation": "./.yarn/unplugged/@next-swc-linux-arm64-gnu-npm-13.1.2-7853060194/node_modules/@next/swc-linux-arm64-gnu/",\ 1377 "packageDependencies": [\ 1378 ["@next/swc-linux-arm64-gnu", "npm:13.1.2"]\ 1379 ],\ 1380 "linkType": "HARD"\ 1381 }]\ 1382 ]],\ 1383 ["@next/swc-linux-arm64-musl", [\ 1384 ["npm:13.1.2", {\ 1385 "packageLocation": "./.yarn/unplugged/@next-swc-linux-arm64-musl-npm-13.1.2-36640f5522/node_modules/@next/swc-linux-arm64-musl/",\ 1386 "packageDependencies": [\ 1387 ["@next/swc-linux-arm64-musl", "npm:13.1.2"]\ 1388 ],\ 1389 "linkType": "HARD"\ 1390 }]\ 1391 ]],\ 1392 ["@next/swc-linux-x64-gnu", [\ 1393 ["npm:13.1.2", {\ 1394 "packageLocation": "./.yarn/unplugged/@next-swc-linux-x64-gnu-npm-13.1.2-22f45902ec/node_modules/@next/swc-linux-x64-gnu/",\ 1395 "packageDependencies": [\ 1396 ["@next/swc-linux-x64-gnu", "npm:13.1.2"]\ 1397 ],\ 1398 "linkType": "HARD"\ 1399 }]\ 1400 ]],\ 1401 ["@next/swc-linux-x64-musl", [\ 1402 ["npm:13.1.2", {\ 1403 "packageLocation": "./.yarn/unplugged/@next-swc-linux-x64-musl-npm-13.1.2-0be5444d6e/node_modules/@next/swc-linux-x64-musl/",\ 1404 "packageDependencies": [\ 1405 ["@next/swc-linux-x64-musl", "npm:13.1.2"]\ 1406 ],\ 1407 "linkType": "HARD"\ 1408 }]\ 1409 ]],\ 1410 ["@next/swc-win32-arm64-msvc", [\ 1411 ["npm:13.1.2", {\ 1412 "packageLocation": "./.yarn/unplugged/@next-swc-win32-arm64-msvc-npm-13.1.2-7eafb1d1be/node_modules/@next/swc-win32-arm64-msvc/",\ 1413 "packageDependencies": [\ 1414 ["@next/swc-win32-arm64-msvc", "npm:13.1.2"]\ 1415 ],\ 1416 "linkType": "HARD"\ 1417 }]\ 1418 ]],\ 1419 ["@next/swc-win32-ia32-msvc", [\ 1420 ["npm:13.1.2", {\ 1421 "packageLocation": "./.yarn/unplugged/@next-swc-win32-ia32-msvc-npm-13.1.2-73373a6979/node_modules/@next/swc-win32-ia32-msvc/",\ 1422 "packageDependencies": [\ 1423 ["@next/swc-win32-ia32-msvc", "npm:13.1.2"]\ 1424 ],\ 1425 "linkType": "HARD"\ 1426 }]\ 1427 ]],\ 1428 ["@next/swc-win32-x64-msvc", [\ 1429 ["npm:13.1.2", {\ 1430 "packageLocation": "./.yarn/unplugged/@next-swc-win32-x64-msvc-npm-13.1.2-a265282130/node_modules/@next/swc-win32-x64-msvc/",\ 1431 "packageDependencies": [\ 1432 ["@next/swc-win32-x64-msvc", "npm:13.1.2"]\ 1433 ],\ 1434 "linkType": "HARD"\ 1435 }]\ 1436 ]],\ 1437 ["@nodelib/fs.scandir", [\ 1438 ["npm:2.1.5", {\ 1439 "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-a970d595bd.zip/node_modules/@nodelib/fs.scandir/",\ 1440 "packageDependencies": [\ 1441 ["@nodelib/fs.scandir", "npm:2.1.5"],\ 1442 ["@nodelib/fs.stat", "npm:2.0.5"],\ 1443 ["run-parallel", "npm:1.2.0"]\ 1444 ],\ 1445 "linkType": "HARD"\ 1446 }]\ 1447 ]],\ 1448 ["@nodelib/fs.stat", [\ 1449 ["npm:2.0.5", {\ 1450 "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-012480b5ca.zip/node_modules/@nodelib/fs.stat/",\ 1451 "packageDependencies": [\ 1452 ["@nodelib/fs.stat", "npm:2.0.5"]\ 1453 ],\ 1454 "linkType": "HARD"\ 1455 }]\ 1456 ]],\ 1457 ["@nodelib/fs.walk", [\ 1458 ["npm:1.2.8", {\ 1459 "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-190c643f15.zip/node_modules/@nodelib/fs.walk/",\ 1460 "packageDependencies": [\ 1461 ["@nodelib/fs.walk", "npm:1.2.8"],\ 1462 ["@nodelib/fs.scandir", "npm:2.1.5"],\ 1463 ["fastq", "npm:1.15.0"]\ 1464 ],\ 1465 "linkType": "HARD"\ 1466 }]\ 1467 ]],\ 1468 ["@npmcli/fs", [\ 1469 ["npm:2.1.2", {\ 1470 "packageLocation": "./.yarn/cache/@npmcli-fs-npm-2.1.2-08d434e77b-405074965e.zip/node_modules/@npmcli/fs/",\ 1471 "packageDependencies": [\ 1472 ["@npmcli/fs", "npm:2.1.2"],\ 1473 ["@gar/promisify", "npm:1.1.3"],\ 1474 ["semver", "npm:7.3.8"]\ 1475 ],\ 1476 "linkType": "HARD"\ 1477 }]\ 1478 ]],\ 1479 ["@npmcli/move-file", [\ 1480 ["npm:2.0.1", {\ 1481 "packageLocation": "./.yarn/cache/@npmcli-move-file-npm-2.0.1-b593d8f741-52dc02259d.zip/node_modules/@npmcli/move-file/",\ 1482 "packageDependencies": [\ 1483 ["@npmcli/move-file", "npm:2.0.1"],\ 1484 ["mkdirp", "npm:1.0.4"],\ 1485 ["rimraf", "npm:3.0.2"]\ 1486 ],\ 1487 "linkType": "HARD"\ 1488 }]\ 1489 ]],\ 1490 ["@pkgr/utils", [\ 1491 ["npm:2.3.1", {\ 1492 "packageLocation": "./.yarn/cache/@pkgr-utils-npm-2.3.1-c89c217c08-118a197112.zip/node_modules/@pkgr/utils/",\ 1493 "packageDependencies": [\ 1494 ["@pkgr/utils", "npm:2.3.1"],\ 1495 ["cross-spawn", "npm:7.0.3"],\ 1496 ["is-glob", "npm:4.0.3"],\ 1497 ["open", "npm:8.4.0"],\ 1498 ["picocolors", "npm:1.0.0"],\ 1499 ["tiny-glob", "npm:0.2.9"],\ 1500 ["tslib", "npm:2.4.1"]\ 1501 ],\ 1502 "linkType": "HARD"\ 1503 }]\ 1504 ]],\ 1505 ["@redis/bloom", [\ 1506 ["npm:1.2.0", {\ 1507 "packageLocation": "./.yarn/cache/@redis-bloom-npm-1.2.0-c3ffcb341a-8c21422728.zip/node_modules/@redis/bloom/",\ 1508 "packageDependencies": [\ 1509 ["@redis/bloom", "npm:1.2.0"]\ 1510 ],\ 1511 "linkType": "SOFT"\ 1512 }],\ 1513 ["virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.2.0", {\ 1514 "packageLocation": "./.yarn/__virtual__/@redis-bloom-virtual-55d8dbbf85/0/cache/@redis-bloom-npm-1.2.0-c3ffcb341a-8c21422728.zip/node_modules/@redis/bloom/",\ 1515 "packageDependencies": [\ 1516 ["@redis/bloom", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.2.0"],\ 1517 ["@redis/client", "npm:1.5.2"],\ 1518 ["@types/redis__client", null]\ 1519 ],\ 1520 "packagePeers": [\ 1521 "@redis/client",\ 1522 "@types/redis__client"\ 1523 ],\ 1524 "linkType": "HARD"\ 1525 }]\ 1526 ]],\ 1527 ["@redis/client", [\ 1528 ["npm:1.5.2", {\ 1529 "packageLocation": "./.yarn/cache/@redis-client-npm-1.5.2-18bbe90822-b23af6e82d.zip/node_modules/@redis/client/",\ 1530 "packageDependencies": [\ 1531 ["@redis/client", "npm:1.5.2"],\ 1532 ["cluster-key-slot", "npm:1.1.2"],\ 1533 ["generic-pool", "npm:3.9.0"],\ 1534 ["yallist", "npm:4.0.0"]\ 1535 ],\ 1536 "linkType": "HARD"\ 1537 }]\ 1538 ]],\ 1539 ["@redis/graph", [\ 1540 ["npm:1.1.0", {\ 1541 "packageLocation": "./.yarn/cache/@redis-graph-npm-1.1.0-84c3d1d722-d3df807108.zip/node_modules/@redis/graph/",\ 1542 "packageDependencies": [\ 1543 ["@redis/graph", "npm:1.1.0"]\ 1544 ],\ 1545 "linkType": "SOFT"\ 1546 }],\ 1547 ["virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.1.0", {\ 1548 "packageLocation": "./.yarn/__virtual__/@redis-graph-virtual-405dec6f0e/0/cache/@redis-graph-npm-1.1.0-84c3d1d722-d3df807108.zip/node_modules/@redis/graph/",\ 1549 "packageDependencies": [\ 1550 ["@redis/graph", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.1.0"],\ 1551 ["@redis/client", "npm:1.5.2"],\ 1552 ["@types/redis__client", null]\ 1553 ],\ 1554 "packagePeers": [\ 1555 "@redis/client",\ 1556 "@types/redis__client"\ 1557 ],\ 1558 "linkType": "HARD"\ 1559 }]\ 1560 ]],\ 1561 ["@redis/json", [\ 1562 ["npm:1.0.4", {\ 1563 "packageLocation": "./.yarn/cache/@redis-json-npm-1.0.4-213f95e10f-de07f9c37a.zip/node_modules/@redis/json/",\ 1564 "packageDependencies": [\ 1565 ["@redis/json", "npm:1.0.4"]\ 1566 ],\ 1567 "linkType": "SOFT"\ 1568 }],\ 1569 ["virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.0.4", {\ 1570 "packageLocation": "./.yarn/__virtual__/@redis-json-virtual-47024e7e1a/0/cache/@redis-json-npm-1.0.4-213f95e10f-de07f9c37a.zip/node_modules/@redis/json/",\ 1571 "packageDependencies": [\ 1572 ["@redis/json", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.0.4"],\ 1573 ["@redis/client", "npm:1.5.2"],\ 1574 ["@types/redis__client", null]\ 1575 ],\ 1576 "packagePeers": [\ 1577 "@redis/client",\ 1578 "@types/redis__client"\ 1579 ],\ 1580 "linkType": "HARD"\ 1581 }]\ 1582 ]],\ 1583 ["@redis/search", [\ 1584 ["npm:1.1.1", {\ 1585 "packageLocation": "./.yarn/cache/@redis-search-npm-1.1.1-228edc852f-5c574679e8.zip/node_modules/@redis/search/",\ 1586 "packageDependencies": [\ 1587 ["@redis/search", "npm:1.1.1"]\ 1588 ],\ 1589 "linkType": "SOFT"\ 1590 }],\ 1591 ["virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.1.1", {\ 1592 "packageLocation": "./.yarn/__virtual__/@redis-search-virtual-0ac2f79fc0/0/cache/@redis-search-npm-1.1.1-228edc852f-5c574679e8.zip/node_modules/@redis/search/",\ 1593 "packageDependencies": [\ 1594 ["@redis/search", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.1.1"],\ 1595 ["@redis/client", "npm:1.5.2"],\ 1596 ["@types/redis__client", null]\ 1597 ],\ 1598 "packagePeers": [\ 1599 "@redis/client",\ 1600 "@types/redis__client"\ 1601 ],\ 1602 "linkType": "HARD"\ 1603 }]\ 1604 ]],\ 1605 ["@redis/time-series", [\ 1606 ["npm:1.0.4", {\ 1607 "packageLocation": "./.yarn/cache/@redis-time-series-npm-1.0.4-1dfa6fdc7e-a5fca079de.zip/node_modules/@redis/time-series/",\ 1608 "packageDependencies": [\ 1609 ["@redis/time-series", "npm:1.0.4"]\ 1610 ],\ 1611 "linkType": "SOFT"\ 1612 }],\ 1613 ["virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.0.4", {\ 1614 "packageLocation": "./.yarn/__virtual__/@redis-time-series-virtual-a598a1a087/0/cache/@redis-time-series-npm-1.0.4-1dfa6fdc7e-a5fca079de.zip/node_modules/@redis/time-series/",\ 1615 "packageDependencies": [\ 1616 ["@redis/time-series", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.0.4"],\ 1617 ["@redis/client", "npm:1.5.2"],\ 1618 ["@types/redis__client", null]\ 1619 ],\ 1620 "packagePeers": [\ 1621 "@redis/client",\ 1622 "@types/redis__client"\ 1623 ],\ 1624 "linkType": "HARD"\ 1625 }]\ 1626 ]],\ 1627 ["@rushstack/eslint-patch", [\ 1628 ["npm:1.2.0", {\ 1629 "packageLocation": "./.yarn/cache/@rushstack-eslint-patch-npm-1.2.0-917f402e4e-faa749faae.zip/node_modules/@rushstack/eslint-patch/",\ 1630 "packageDependencies": [\ 1631 ["@rushstack/eslint-patch", "npm:1.2.0"]\ 1632 ],\ 1633 "linkType": "HARD"\ 1634 }]\ 1635 ]],\ 1636 ["@sinclair/typebox", [\ 1637 ["npm:0.24.51", {\ 1638 "packageLocation": "./.yarn/cache/@sinclair-typebox-npm-0.24.51-cdde4a266f-fd0d855e74.zip/node_modules/@sinclair/typebox/",\ 1639 "packageDependencies": [\ 1640 ["@sinclair/typebox", "npm:0.24.51"]\ 1641 ],\ 1642 "linkType": "HARD"\ 1643 }]\ 1644 ]],\ 1645 ["@sinonjs/commons", [\ 1646 ["npm:1.8.6", {\ 1647 "packageLocation": "./.yarn/cache/@sinonjs-commons-npm-1.8.6-e3593ed6d6-7d3f8c1e85.zip/node_modules/@sinonjs/commons/",\ 1648 "packageDependencies": [\ 1649 ["@sinonjs/commons", "npm:1.8.6"],\ 1650 ["type-detect", "npm:4.0.8"]\ 1651 ],\ 1652 "linkType": "HARD"\ 1653 }]\ 1654 ]],\ 1655 ["@sinonjs/fake-timers", [\ 1656 ["npm:9.1.2", {\ 1657 "packageLocation": "./.yarn/cache/@sinonjs-fake-timers-npm-9.1.2-3ff37ab7fb-7d3aef54e1.zip/node_modules/@sinonjs/fake-timers/",\ 1658 "packageDependencies": [\ 1659 ["@sinonjs/fake-timers", "npm:9.1.2"],\ 1660 ["@sinonjs/commons", "npm:1.8.6"]\ 1661 ],\ 1662 "linkType": "HARD"\ 1663 }]\ 1664 ]],\ 1665 ["@swc/helpers", [\ 1666 ["npm:0.4.14", {\ 1667 "packageLocation": "./.yarn/cache/@swc-helpers-npm-0.4.14-f806c3fb16-273fd3f3fc.zip/node_modules/@swc/helpers/",\ 1668 "packageDependencies": [\ 1669 ["@swc/helpers", "npm:0.4.14"],\ 1670 ["tslib", "npm:2.4.1"]\ 1671 ],\ 1672 "linkType": "HARD"\ 1673 }]\ 1674 ]],\ 1675 ["@testing-library/dom", [\ 1676 ["npm:8.20.0", {\ 1677 "packageLocation": "./.yarn/cache/@testing-library-dom-npm-8.20.0-afe79da119-1e599129a2.zip/node_modules/@testing-library/dom/",\ 1678 "packageDependencies": [\ 1679 ["@testing-library/dom", "npm:8.20.0"],\ 1680 ["@babel/code-frame", "npm:7.18.6"],\ 1681 ["@babel/runtime", "npm:7.20.7"],\ 1682 ["@types/aria-query", "npm:5.0.1"],\ 1683 ["aria-query", "npm:5.1.3"],\ 1684 ["chalk", "npm:4.1.2"],\ 1685 ["dom-accessibility-api", "npm:0.5.16"],\ 1686 ["lz-string", "npm:1.4.4"],\ 1687 ["pretty-format", "npm:27.5.1"]\ 1688 ],\ 1689 "linkType": "HARD"\ 1690 }]\ 1691 ]],\ 1692 ["@testing-library/jest-dom", [\ 1693 ["npm:5.16.5", {\ 1694 "packageLocation": "./.yarn/cache/@testing-library-jest-dom-npm-5.16.5-b6d1f4e02f-94911f901a.zip/node_modules/@testing-library/jest-dom/",\ 1695 "packageDependencies": [\ 1696 ["@testing-library/jest-dom", "npm:5.16.5"],\ 1697 ["@adobe/css-tools", "npm:4.0.2"],\ 1698 ["@babel/runtime", "npm:7.20.7"],\ 1699 ["@types/testing-library__jest-dom", "npm:5.14.5"],\ 1700 ["aria-query", "npm:5.1.3"],\ 1701 ["chalk", "npm:3.0.0"],\ 1702 ["css.escape", "npm:1.5.1"],\ 1703 ["dom-accessibility-api", "npm:0.5.16"],\ 1704 ["lodash", "npm:4.17.21"],\ 1705 ["redent", "npm:3.0.0"]\ 1706 ],\ 1707 "linkType": "HARD"\ 1708 }]\ 1709 ]],\ 1710 ["@testing-library/react", [\ 1711 ["npm:13.4.0", {\ 1712 "packageLocation": "./.yarn/cache/@testing-library-react-npm-13.4.0-eaa652c0f5-51ec548c1f.zip/node_modules/@testing-library/react/",\ 1713 "packageDependencies": [\ 1714 ["@testing-library/react", "npm:13.4.0"]\ 1715 ],\ 1716 "linkType": "SOFT"\ 1717 }],\ 1718 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.4.0", {\ 1719 "packageLocation": "./.yarn/__virtual__/@testing-library-react-virtual-00b2d0d2fc/0/cache/@testing-library-react-npm-13.4.0-eaa652c0f5-51ec548c1f.zip/node_modules/@testing-library/react/",\ 1720 "packageDependencies": [\ 1721 ["@testing-library/react", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.4.0"],\ 1722 ["@babel/runtime", "npm:7.20.7"],\ 1723 ["@testing-library/dom", "npm:8.20.0"],\ 1724 ["@types/react", "npm:18.0.26"],\ 1725 ["@types/react-dom", "npm:18.0.10"],\ 1726 ["react", "npm:18.2.0"],\ 1727 ["react-dom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:18.2.0"]\ 1728 ],\ 1729 "packagePeers": [\ 1730 "@types/react-dom",\ 1731 "@types/react",\ 1732 "react-dom",\ 1733 "react"\ 1734 ],\ 1735 "linkType": "HARD"\ 1736 }]\ 1737 ]],\ 1738 ["@testing-library/user-event", [\ 1739 ["npm:14.4.3", {\ 1740 "packageLocation": "./.yarn/cache/@testing-library-user-event-npm-14.4.3-2d1a75355f-852c48ea6d.zip/node_modules/@testing-library/user-event/",\ 1741 "packageDependencies": [\ 1742 ["@testing-library/user-event", "npm:14.4.3"]\ 1743 ],\ 1744 "linkType": "SOFT"\ 1745 }],\ 1746 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:14.4.3", {\ 1747 "packageLocation": "./.yarn/__virtual__/@testing-library-user-event-virtual-bb3f51d731/0/cache/@testing-library-user-event-npm-14.4.3-2d1a75355f-852c48ea6d.zip/node_modules/@testing-library/user-event/",\ 1748 "packageDependencies": [\ 1749 ["@testing-library/user-event", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:14.4.3"],\ 1750 ["@testing-library/dom", null],\ 1751 ["@types/testing-library__dom", null]\ 1752 ],\ 1753 "packagePeers": [\ 1754 "@testing-library/dom",\ 1755 "@types/testing-library__dom"\ 1756 ],\ 1757 "linkType": "HARD"\ 1758 }]\ 1759 ]],\ 1760 ["@tootallnate/once", [\ 1761 ["npm:2.0.0", {\ 1762 "packageLocation": "./.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip/node_modules/@tootallnate/once/",\ 1763 "packageDependencies": [\ 1764 ["@tootallnate/once", "npm:2.0.0"]\ 1765 ],\ 1766 "linkType": "HARD"\ 1767 }]\ 1768 ]],\ 1769 ["@types/aria-query", [\ 1770 ["npm:5.0.1", {\ 1771 "packageLocation": "./.yarn/cache/@types-aria-query-npm-5.0.1-5c01a56741-69fd7cceb6.zip/node_modules/@types/aria-query/",\ 1772 "packageDependencies": [\ 1773 ["@types/aria-query", "npm:5.0.1"]\ 1774 ],\ 1775 "linkType": "HARD"\ 1776 }]\ 1777 ]],\ 1778 ["@types/babel__core", [\ 1779 ["npm:7.20.0", {\ 1780 "packageLocation": "./.yarn/cache/@types-babel__core-npm-7.20.0-cf2ab39970-49b601a0a7.zip/node_modules/@types/babel__core/",\ 1781 "packageDependencies": [\ 1782 ["@types/babel__core", "npm:7.20.0"],\ 1783 ["@babel/parser", "npm:7.20.7"],\ 1784 ["@babel/types", "npm:7.20.7"],\ 1785 ["@types/babel__generator", "npm:7.6.4"],\ 1786 ["@types/babel__template", "npm:7.4.1"],\ 1787 ["@types/babel__traverse", "npm:7.18.3"]\ 1788 ],\ 1789 "linkType": "HARD"\ 1790 }]\ 1791 ]],\ 1792 ["@types/babel__generator", [\ 1793 ["npm:7.6.4", {\ 1794 "packageLocation": "./.yarn/cache/@types-babel__generator-npm-7.6.4-03e776f956-20effbbb5f.zip/node_modules/@types/babel__generator/",\ 1795 "packageDependencies": [\ 1796 ["@types/babel__generator", "npm:7.6.4"],\ 1797 ["@babel/types", "npm:7.20.7"]\ 1798 ],\ 1799 "linkType": "HARD"\ 1800 }]\ 1801 ]],\ 1802 ["@types/babel__template", [\ 1803 ["npm:7.4.1", {\ 1804 "packageLocation": "./.yarn/cache/@types-babel__template-npm-7.4.1-fe1db49e53-649fe8b42c.zip/node_modules/@types/babel__template/",\ 1805 "packageDependencies": [\ 1806 ["@types/babel__template", "npm:7.4.1"],\ 1807 ["@babel/parser", "npm:7.20.7"],\ 1808 ["@babel/types", "npm:7.20.7"]\ 1809 ],\ 1810 "linkType": "HARD"\ 1811 }]\ 1812 ]],\ 1813 ["@types/babel__traverse", [\ 1814 ["npm:7.18.3", {\ 1815 "packageLocation": "./.yarn/cache/@types-babel__traverse-npm-7.18.3-db279a0ed0-d20953338b.zip/node_modules/@types/babel__traverse/",\ 1816 "packageDependencies": [\ 1817 ["@types/babel__traverse", "npm:7.18.3"],\ 1818 ["@babel/types", "npm:7.20.7"]\ 1819 ],\ 1820 "linkType": "HARD"\ 1821 }]\ 1822 ]],\ 1823 ["@types/bcrypt", [\ 1824 ["npm:5.0.0", {\ 1825 "packageLocation": "./.yarn/cache/@types-bcrypt-npm-5.0.0-c074c165c2-063c32c7a5.zip/node_modules/@types/bcrypt/",\ 1826 "packageDependencies": [\ 1827 ["@types/bcrypt", "npm:5.0.0"],\ 1828 ["@types/node", "npm:18.11.18"]\ 1829 ],\ 1830 "linkType": "HARD"\ 1831 }]\ 1832 ]],\ 1833 ["@types/diff", [\ 1834 ["npm:5.0.2", {\ 1835 "packageLocation": "./.yarn/cache/@types-diff-npm-5.0.2-cc002907d4-8fbc419b5a.zip/node_modules/@types/diff/",\ 1836 "packageDependencies": [\ 1837 ["@types/diff", "npm:5.0.2"]\ 1838 ],\ 1839 "linkType": "HARD"\ 1840 }]\ 1841 ]],\ 1842 ["@types/graceful-fs", [\ 1843 ["npm:4.1.6", {\ 1844 "packageLocation": "./.yarn/cache/@types-graceful-fs-npm-4.1.6-1eadcf742d-c3070ccdc9.zip/node_modules/@types/graceful-fs/",\ 1845 "packageDependencies": [\ 1846 ["@types/graceful-fs", "npm:4.1.6"],\ 1847 ["@types/node", "npm:18.11.18"]\ 1848 ],\ 1849 "linkType": "HARD"\ 1850 }]\ 1851 ]],\ 1852 ["@types/istanbul-lib-coverage", [\ 1853 ["npm:2.0.4", {\ 1854 "packageLocation": "./.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.4-734954bb56-a25d7589ee.zip/node_modules/@types/istanbul-lib-coverage/",\ 1855 "packageDependencies": [\ 1856 ["@types/istanbul-lib-coverage", "npm:2.0.4"]\ 1857 ],\ 1858 "linkType": "HARD"\ 1859 }]\ 1860 ]],\ 1861 ["@types/istanbul-lib-report", [\ 1862 ["npm:3.0.0", {\ 1863 "packageLocation": "./.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-656398b62d.zip/node_modules/@types/istanbul-lib-report/",\ 1864 "packageDependencies": [\ 1865 ["@types/istanbul-lib-report", "npm:3.0.0"],\ 1866 ["@types/istanbul-lib-coverage", "npm:2.0.4"]\ 1867 ],\ 1868 "linkType": "HARD"\ 1869 }]\ 1870 ]],\ 1871 ["@types/istanbul-reports", [\ 1872 ["npm:3.0.1", {\ 1873 "packageLocation": "./.yarn/cache/@types-istanbul-reports-npm-3.0.1-770e825002-f1ad54bc68.zip/node_modules/@types/istanbul-reports/",\ 1874 "packageDependencies": [\ 1875 ["@types/istanbul-reports", "npm:3.0.1"],\ 1876 ["@types/istanbul-lib-report", "npm:3.0.0"]\ 1877 ],\ 1878 "linkType": "HARD"\ 1879 }]\ 1880 ]],\ 1881 ["@types/jest", [\ 1882 ["npm:29.2.6", {\ 1883 "packageLocation": "./.yarn/cache/@types-jest-npm-29.2.6-6feedd29f5-90190ac830.zip/node_modules/@types/jest/",\ 1884 "packageDependencies": [\ 1885 ["@types/jest", "npm:29.2.6"],\ 1886 ["expect", "npm:29.3.1"],\ 1887 ["pretty-format", "npm:29.3.1"]\ 1888 ],\ 1889 "linkType": "HARD"\ 1890 }]\ 1891 ]],\ 1892 ["@types/jsdom", [\ 1893 ["npm:20.0.1", {\ 1894 "packageLocation": "./.yarn/cache/@types-jsdom-npm-20.0.1-5bb899e006-d55402c525.zip/node_modules/@types/jsdom/",\ 1895 "packageDependencies": [\ 1896 ["@types/jsdom", "npm:20.0.1"],\ 1897 ["@types/node", "npm:18.11.18"],\ 1898 ["@types/tough-cookie", "npm:4.0.2"],\ 1899 ["parse5", "npm:7.1.2"]\ 1900 ],\ 1901 "linkType": "HARD"\ 1902 }]\ 1903 ]],\ 1904 ["@types/json5", [\ 1905 ["npm:0.0.29", {\ 1906 "packageLocation": "./.yarn/cache/@types-json5-npm-0.0.29-f63a7916bd-e60b153664.zip/node_modules/@types/json5/",\ 1907 "packageDependencies": [\ 1908 ["@types/json5", "npm:0.0.29"]\ 1909 ],\ 1910 "linkType": "HARD"\ 1911 }]\ 1912 ]],\ 1913 ["@types/jsonwebtoken", [\ 1914 ["npm:9.0.1", {\ 1915 "packageLocation": "./.yarn/cache/@types-jsonwebtoken-npm-9.0.1-5f660fdf38-a7f0925e9a.zip/node_modules/@types/jsonwebtoken/",\ 1916 "packageDependencies": [\ 1917 ["@types/jsonwebtoken", "npm:9.0.1"],\ 1918 ["@types/node", "npm:18.11.18"]\ 1919 ],\ 1920 "linkType": "HARD"\ 1921 }]\ 1922 ]],\ 1923 ["@types/node", [\ 1924 ["npm:18.11.18", {\ 1925 "packageLocation": "./.yarn/cache/@types-node-npm-18.11.18-d61e8a4a20-03f17f9480.zip/node_modules/@types/node/",\ 1926 "packageDependencies": [\ 1927 ["@types/node", "npm:18.11.18"]\ 1928 ],\ 1929 "linkType": "HARD"\ 1930 }]\ 1931 ]],\ 1932 ["@types/nodemailer", [\ 1933 ["npm:6.4.7", {\ 1934 "packageLocation": "./.yarn/cache/@types-nodemailer-npm-6.4.7-8618621ba9-dc2a33a891.zip/node_modules/@types/nodemailer/",\ 1935 "packageDependencies": [\ 1936 ["@types/nodemailer", "npm:6.4.7"],\ 1937 ["@types/node", "npm:18.11.18"]\ 1938 ],\ 1939 "linkType": "HARD"\ 1940 }]\ 1941 ]],\ 1942 ["@types/prettier", [\ 1943 ["npm:2.7.2", {\ 1944 "packageLocation": "./.yarn/cache/@types-prettier-npm-2.7.2-6b2e2f518f-b47d76a525.zip/node_modules/@types/prettier/",\ 1945 "packageDependencies": [\ 1946 ["@types/prettier", "npm:2.7.2"]\ 1947 ],\ 1948 "linkType": "HARD"\ 1949 }]\ 1950 ]],\ 1951 ["@types/prop-types", [\ 1952 ["npm:15.7.5", {\ 1953 "packageLocation": "./.yarn/cache/@types-prop-types-npm-15.7.5-2aa48aa177-5b43b8b154.zip/node_modules/@types/prop-types/",\ 1954 "packageDependencies": [\ 1955 ["@types/prop-types", "npm:15.7.5"]\ 1956 ],\ 1957 "linkType": "HARD"\ 1958 }]\ 1959 ]],\ 1960 ["@types/react", [\ 1961 ["npm:18.0.26", {\ 1962 "packageLocation": "./.yarn/cache/@types-react-npm-18.0.26-d708995a34-b62f0ea3cd.zip/node_modules/@types/react/",\ 1963 "packageDependencies": [\ 1964 ["@types/react", "npm:18.0.26"],\ 1965 ["@types/prop-types", "npm:15.7.5"],\ 1966 ["@types/scheduler", "npm:0.16.2"],\ 1967 ["csstype", "npm:3.1.1"]\ 1968 ],\ 1969 "linkType": "HARD"\ 1970 }]\ 1971 ]],\ 1972 ["@types/react-dom", [\ 1973 ["npm:18.0.10", {\ 1974 "packageLocation": "./.yarn/cache/@types-react-dom-npm-18.0.10-97fe360927-ff8282d500.zip/node_modules/@types/react-dom/",\ 1975 "packageDependencies": [\ 1976 ["@types/react-dom", "npm:18.0.10"],\ 1977 ["@types/react", "npm:18.0.26"]\ 1978 ],\ 1979 "linkType": "HARD"\ 1980 }]\ 1981 ]],\ 1982 ["@types/scheduler", [\ 1983 ["npm:0.16.2", {\ 1984 "packageLocation": "./.yarn/cache/@types-scheduler-npm-0.16.2-ba3a7d8c68-b6b4dcfeae.zip/node_modules/@types/scheduler/",\ 1985 "packageDependencies": [\ 1986 ["@types/scheduler", "npm:0.16.2"]\ 1987 ],\ 1988 "linkType": "HARD"\ 1989 }]\ 1990 ]],\ 1991 ["@types/stack-utils", [\ 1992 ["npm:2.0.1", {\ 1993 "packageLocation": "./.yarn/cache/@types-stack-utils-npm-2.0.1-867718ab70-205fdbe332.zip/node_modules/@types/stack-utils/",\ 1994 "packageDependencies": [\ 1995 ["@types/stack-utils", "npm:2.0.1"]\ 1996 ],\ 1997 "linkType": "HARD"\ 1998 }]\ 1999 ]],\ 2000 ["@types/testing-library__jest-dom", [\ 2001 ["npm:5.14.5", {\ 2002 "packageLocation": "./.yarn/cache/@types-testing-library__jest-dom-npm-5.14.5-251c4c9d75-dcb0541675.zip/node_modules/@types/testing-library__jest-dom/",\ 2003 "packageDependencies": [\ 2004 ["@types/testing-library__jest-dom", "npm:5.14.5"],\ 2005 ["@types/jest", "npm:29.2.6"]\ 2006 ],\ 2007 "linkType": "HARD"\ 2008 }]\ 2009 ]],\ 2010 ["@types/tough-cookie", [\ 2011 ["npm:4.0.2", {\ 2012 "packageLocation": "./.yarn/cache/@types-tough-cookie-npm-4.0.2-9e61f877e6-e055556ffd.zip/node_modules/@types/tough-cookie/",\ 2013 "packageDependencies": [\ 2014 ["@types/tough-cookie", "npm:4.0.2"]\ 2015 ],\ 2016 "linkType": "HARD"\ 2017 }]\ 2018 ]],\ 2019 ["@types/yargs", [\ 2020 ["npm:17.0.20", {\ 2021 "packageLocation": "./.yarn/cache/@types-yargs-npm-17.0.20-a48364a46f-dc2edbb0e4.zip/node_modules/@types/yargs/",\ 2022 "packageDependencies": [\ 2023 ["@types/yargs", "npm:17.0.20"],\ 2024 ["@types/yargs-parser", "npm:21.0.0"]\ 2025 ],\ 2026 "linkType": "HARD"\ 2027 }]\ 2028 ]],\ 2029 ["@types/yargs-parser", [\ 2030 ["npm:21.0.0", {\ 2031 "packageLocation": "./.yarn/cache/@types-yargs-parser-npm-21.0.0-c8a3b32c52-b2f4c8d12a.zip/node_modules/@types/yargs-parser/",\ 2032 "packageDependencies": [\ 2033 ["@types/yargs-parser", "npm:21.0.0"]\ 2034 ],\ 2035 "linkType": "HARD"\ 2036 }]\ 2037 ]],\ 2038 ["@typescript-eslint/parser", [\ 2039 ["npm:5.48.1", {\ 2040 "packageLocation": "./.yarn/cache/@typescript-eslint-parser-npm-5.48.1-e11c82966a-c624d24eb2.zip/node_modules/@typescript-eslint/parser/",\ 2041 "packageDependencies": [\ 2042 ["@typescript-eslint/parser", "npm:5.48.1"]\ 2043 ],\ 2044 "linkType": "SOFT"\ 2045 }],\ 2046 ["virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:5.48.1", {\ 2047 "packageLocation": "./.yarn/__virtual__/@typescript-eslint-parser-virtual-f2555630c6/0/cache/@typescript-eslint-parser-npm-5.48.1-e11c82966a-c624d24eb2.zip/node_modules/@typescript-eslint/parser/",\ 2048 "packageDependencies": [\ 2049 ["@typescript-eslint/parser", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:5.48.1"],\ 2050 ["@types/eslint", null],\ 2051 ["@types/typescript", null],\ 2052 ["@typescript-eslint/scope-manager", "npm:5.48.1"],\ 2053 ["@typescript-eslint/types", "npm:5.48.1"],\ 2054 ["@typescript-eslint/typescript-estree", "virtual:f2555630c69b17811a08f262f7620c8327b7b3e551a941b56ea0fbf3d4c2ab94a53b934b9cbf4c8fcc577abacf4b6d6dff560634161468aae5b678d9751665f6#npm:5.48.1"],\ 2055 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 2056 ["eslint", "npm:8.32.0"],\ 2057 ["typescript", "patch:typescript@npm%3A4.9.4#~builtin<compat/typescript>::version=4.9.4&hash=ad5954"]\ 2058 ],\ 2059 "packagePeers": [\ 2060 "@types/eslint",\ 2061 "@types/typescript",\ 2062 "eslint",\ 2063 "typescript"\ 2064 ],\ 2065 "linkType": "HARD"\ 2066 }]\ 2067 ]],\ 2068 ["@typescript-eslint/scope-manager", [\ 2069 ["npm:5.48.1", {\ 2070 "packageLocation": "./.yarn/cache/@typescript-eslint-scope-manager-npm-5.48.1-cac4c73878-f60a7efe91.zip/node_modules/@typescript-eslint/scope-manager/",\ 2071 "packageDependencies": [\ 2072 ["@typescript-eslint/scope-manager", "npm:5.48.1"],\ 2073 ["@typescript-eslint/types", "npm:5.48.1"],\ 2074 ["@typescript-eslint/visitor-keys", "npm:5.48.1"]\ 2075 ],\ 2076 "linkType": "HARD"\ 2077 }]\ 2078 ]],\ 2079 ["@typescript-eslint/types", [\ 2080 ["npm:5.48.1", {\ 2081 "packageLocation": "./.yarn/cache/@typescript-eslint-types-npm-5.48.1-f6c112f9dc-8437986e9d.zip/node_modules/@typescript-eslint/types/",\ 2082 "packageDependencies": [\ 2083 ["@typescript-eslint/types", "npm:5.48.1"]\ 2084 ],\ 2085 "linkType": "HARD"\ 2086 }]\ 2087 ]],\ 2088 ["@typescript-eslint/typescript-estree", [\ 2089 ["npm:5.48.1", {\ 2090 "packageLocation": "./.yarn/cache/@typescript-eslint-typescript-estree-npm-5.48.1-3e28a6f3b7-2b26e5848e.zip/node_modules/@typescript-eslint/typescript-estree/",\ 2091 "packageDependencies": [\ 2092 ["@typescript-eslint/typescript-estree", "npm:5.48.1"]\ 2093 ],\ 2094 "linkType": "SOFT"\ 2095 }],\ 2096 ["virtual:f2555630c69b17811a08f262f7620c8327b7b3e551a941b56ea0fbf3d4c2ab94a53b934b9cbf4c8fcc577abacf4b6d6dff560634161468aae5b678d9751665f6#npm:5.48.1", {\ 2097 "packageLocation": "./.yarn/__virtual__/@typescript-eslint-typescript-estree-virtual-7405f37162/0/cache/@typescript-eslint-typescript-estree-npm-5.48.1-3e28a6f3b7-2b26e5848e.zip/node_modules/@typescript-eslint/typescript-estree/",\ 2098 "packageDependencies": [\ 2099 ["@typescript-eslint/typescript-estree", "virtual:f2555630c69b17811a08f262f7620c8327b7b3e551a941b56ea0fbf3d4c2ab94a53b934b9cbf4c8fcc577abacf4b6d6dff560634161468aae5b678d9751665f6#npm:5.48.1"],\ 2100 ["@types/typescript", null],\ 2101 ["@typescript-eslint/types", "npm:5.48.1"],\ 2102 ["@typescript-eslint/visitor-keys", "npm:5.48.1"],\ 2103 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 2104 ["globby", "npm:11.1.0"],\ 2105 ["is-glob", "npm:4.0.3"],\ 2106 ["semver", "npm:7.3.8"],\ 2107 ["tsutils", "virtual:7405f371622a6871c6a8d58e7bdb32f140e6bfae8a5e144f129244df6c027e2d160980c8d4cee0e4473d9243e7c00f918872fe46db463a64ee59e1da7e9c0d2d#npm:3.21.0"],\ 2108 ["typescript", "patch:typescript@npm%3A4.9.4#~builtin<compat/typescript>::version=4.9.4&hash=ad5954"]\ 2109 ],\ 2110 "packagePeers": [\ 2111 "@types/typescript",\ 2112 "typescript"\ 2113 ],\ 2114 "linkType": "HARD"\ 2115 }]\ 2116 ]],\ 2117 ["@typescript-eslint/visitor-keys", [\ 2118 ["npm:5.48.1", {\ 2119 "packageLocation": "./.yarn/cache/@typescript-eslint-visitor-keys-npm-5.48.1-60f2bfb2a6-2bda10cf4e.zip/node_modules/@typescript-eslint/visitor-keys/",\ 2120 "packageDependencies": [\ 2121 ["@typescript-eslint/visitor-keys", "npm:5.48.1"],\ 2122 ["@typescript-eslint/types", "npm:5.48.1"],\ 2123 ["eslint-visitor-keys", "npm:3.3.0"]\ 2124 ],\ 2125 "linkType": "HARD"\ 2126 }]\ 2127 ]],\ 2128 ["abab", [\ 2129 ["npm:2.0.6", {\ 2130 "packageLocation": "./.yarn/cache/abab-npm-2.0.6-2662fba7f0-6ffc1af4ff.zip/node_modules/abab/",\ 2131 "packageDependencies": [\ 2132 ["abab", "npm:2.0.6"]\ 2133 ],\ 2134 "linkType": "HARD"\ 2135 }]\ 2136 ]],\ 2137 ["abbrev", [\ 2138 ["npm:1.1.1", {\ 2139 "packageLocation": "./.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip/node_modules/abbrev/",\ 2140 "packageDependencies": [\ 2141 ["abbrev", "npm:1.1.1"]\ 2142 ],\ 2143 "linkType": "HARD"\ 2144 }]\ 2145 ]],\ 2146 ["abort-controller", [\ 2147 ["npm:3.0.0", {\ 2148 "packageLocation": "./.yarn/cache/abort-controller-npm-3.0.0-2f3a9a2bcb-170bdba9b4.zip/node_modules/abort-controller/",\ 2149 "packageDependencies": [\ 2150 ["abort-controller", "npm:3.0.0"],\ 2151 ["event-target-shim", "npm:5.0.1"]\ 2152 ],\ 2153 "linkType": "HARD"\ 2154 }]\ 2155 ]],\ 2156 ["acorn", [\ 2157 ["npm:8.8.1", {\ 2158 "packageLocation": "./.yarn/cache/acorn-npm-8.8.1-20e4aea981-4079b67283.zip/node_modules/acorn/",\ 2159 "packageDependencies": [\ 2160 ["acorn", "npm:8.8.1"]\ 2161 ],\ 2162 "linkType": "HARD"\ 2163 }]\ 2164 ]],\ 2165 ["acorn-globals", [\ 2166 ["npm:7.0.1", {\ 2167 "packageLocation": "./.yarn/cache/acorn-globals-npm-7.0.1-97c48c0140-2a2998a547.zip/node_modules/acorn-globals/",\ 2168 "packageDependencies": [\ 2169 ["acorn-globals", "npm:7.0.1"],\ 2170 ["acorn", "npm:8.8.1"],\ 2171 ["acorn-walk", "npm:8.2.0"]\ 2172 ],\ 2173 "linkType": "HARD"\ 2174 }]\ 2175 ]],\ 2176 ["acorn-jsx", [\ 2177 ["npm:5.3.2", {\ 2178 "packageLocation": "./.yarn/cache/acorn-jsx-npm-5.3.2-d7594599ea-c3d3b2a89c.zip/node_modules/acorn-jsx/",\ 2179 "packageDependencies": [\ 2180 ["acorn-jsx", "npm:5.3.2"]\ 2181 ],\ 2182 "linkType": "SOFT"\ 2183 }],\ 2184 ["virtual:b88faf10bc38b7bf99c4359521e8a0ed3f77dcbbc8677c8ff2c327d003d8f82b0e79a6212f450e879d54de3af7d71a6a67818de313afc6e195445593b76b6db0#npm:5.3.2", {\ 2185 "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-18707c8687/0/cache/acorn-jsx-npm-5.3.2-d7594599ea-c3d3b2a89c.zip/node_modules/acorn-jsx/",\ 2186 "packageDependencies": [\ 2187 ["acorn-jsx", "virtual:b88faf10bc38b7bf99c4359521e8a0ed3f77dcbbc8677c8ff2c327d003d8f82b0e79a6212f450e879d54de3af7d71a6a67818de313afc6e195445593b76b6db0#npm:5.3.2"],\ 2188 ["@types/acorn", null],\ 2189 ["acorn", "npm:8.8.1"]\ 2190 ],\ 2191 "packagePeers": [\ 2192 "@types/acorn",\ 2193 "acorn"\ 2194 ],\ 2195 "linkType": "HARD"\ 2196 }]\ 2197 ]],\ 2198 ["acorn-walk", [\ 2199 ["npm:8.2.0", {\ 2200 "packageLocation": "./.yarn/cache/acorn-walk-npm-8.2.0-2f2cac3177-1715e76c01.zip/node_modules/acorn-walk/",\ 2201 "packageDependencies": [\ 2202 ["acorn-walk", "npm:8.2.0"]\ 2203 ],\ 2204 "linkType": "HARD"\ 2205 }]\ 2206 ]],\ 2207 ["agent-base", [\ 2208 ["npm:6.0.2", {\ 2209 "packageLocation": "./.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip/node_modules/agent-base/",\ 2210 "packageDependencies": [\ 2211 ["agent-base", "npm:6.0.2"],\ 2212 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"]\ 2213 ],\ 2214 "linkType": "HARD"\ 2215 }]\ 2216 ]],\ 2217 ["agentkeepalive", [\ 2218 ["npm:4.2.1", {\ 2219 "packageLocation": "./.yarn/cache/agentkeepalive-npm-4.2.1-b86a9fb343-39cb49ed8c.zip/node_modules/agentkeepalive/",\ 2220 "packageDependencies": [\ 2221 ["agentkeepalive", "npm:4.2.1"],\ 2222 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 2223 ["depd", "npm:1.1.2"],\ 2224 ["humanize-ms", "npm:1.2.1"]\ 2225 ],\ 2226 "linkType": "HARD"\ 2227 }]\ 2228 ]],\ 2229 ["aggregate-error", [\ 2230 ["npm:3.1.0", {\ 2231 "packageLocation": "./.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip/node_modules/aggregate-error/",\ 2232 "packageDependencies": [\ 2233 ["aggregate-error", "npm:3.1.0"],\ 2234 ["clean-stack", "npm:2.2.0"],\ 2235 ["indent-string", "npm:4.0.0"]\ 2236 ],\ 2237 "linkType": "HARD"\ 2238 }]\ 2239 ]],\ 2240 ["ajv", [\ 2241 ["npm:6.12.6", {\ 2242 "packageLocation": "./.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-874972efe5.zip/node_modules/ajv/",\ 2243 "packageDependencies": [\ 2244 ["ajv", "npm:6.12.6"],\ 2245 ["fast-deep-equal", "npm:3.1.3"],\ 2246 ["fast-json-stable-stringify", "npm:2.1.0"],\ 2247 ["json-schema-traverse", "npm:0.4.1"],\ 2248 ["uri-js", "npm:4.4.1"]\ 2249 ],\ 2250 "linkType": "HARD"\ 2251 }]\ 2252 ]],\ 2253 ["ansi-escapes", [\ 2254 ["npm:4.3.2", {\ 2255 "packageLocation": "./.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-93111c4218.zip/node_modules/ansi-escapes/",\ 2256 "packageDependencies": [\ 2257 ["ansi-escapes", "npm:4.3.2"],\ 2258 ["type-fest", "npm:0.21.3"]\ 2259 ],\ 2260 "linkType": "HARD"\ 2261 }]\ 2262 ]],\ 2263 ["ansi-regex", [\ 2264 ["npm:5.0.1", {\ 2265 "packageLocation": "./.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip/node_modules/ansi-regex/",\ 2266 "packageDependencies": [\ 2267 ["ansi-regex", "npm:5.0.1"]\ 2268 ],\ 2269 "linkType": "HARD"\ 2270 }]\ 2271 ]],\ 2272 ["ansi-styles", [\ 2273 ["npm:3.2.1", {\ 2274 "packageLocation": "./.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip/node_modules/ansi-styles/",\ 2275 "packageDependencies": [\ 2276 ["ansi-styles", "npm:3.2.1"],\ 2277 ["color-convert", "npm:1.9.3"]\ 2278 ],\ 2279 "linkType": "HARD"\ 2280 }],\ 2281 ["npm:4.3.0", {\ 2282 "packageLocation": "./.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip/node_modules/ansi-styles/",\ 2283 "packageDependencies": [\ 2284 ["ansi-styles", "npm:4.3.0"],\ 2285 ["color-convert", "npm:2.0.1"]\ 2286 ],\ 2287 "linkType": "HARD"\ 2288 }],\ 2289 ["npm:5.2.0", {\ 2290 "packageLocation": "./.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-d7f4e97ce0.zip/node_modules/ansi-styles/",\ 2291 "packageDependencies": [\ 2292 ["ansi-styles", "npm:5.2.0"]\ 2293 ],\ 2294 "linkType": "HARD"\ 2295 }]\ 2296 ]],\ 2297 ["anymatch", [\ 2298 ["npm:3.1.3", {\ 2299 "packageLocation": "./.yarn/cache/anymatch-npm-3.1.3-bc81d103b1-3e044fd6d1.zip/node_modules/anymatch/",\ 2300 "packageDependencies": [\ 2301 ["anymatch", "npm:3.1.3"],\ 2302 ["normalize-path", "npm:3.0.0"],\ 2303 ["picomatch", "npm:2.3.1"]\ 2304 ],\ 2305 "linkType": "HARD"\ 2306 }]\ 2307 ]],\ 2308 ["aproba", [\ 2309 ["npm:2.0.0", {\ 2310 "packageLocation": "./.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip/node_modules/aproba/",\ 2311 "packageDependencies": [\ 2312 ["aproba", "npm:2.0.0"]\ 2313 ],\ 2314 "linkType": "HARD"\ 2315 }]\ 2316 ]],\ 2317 ["are-we-there-yet", [\ 2318 ["npm:2.0.0", {\ 2319 "packageLocation": "./.yarn/cache/are-we-there-yet-npm-2.0.0-7d2f5201ce-6c80b4fd04.zip/node_modules/are-we-there-yet/",\ 2320 "packageDependencies": [\ 2321 ["are-we-there-yet", "npm:2.0.0"],\ 2322 ["delegates", "npm:1.0.0"],\ 2323 ["readable-stream", "npm:3.6.0"]\ 2324 ],\ 2325 "linkType": "HARD"\ 2326 }],\ 2327 ["npm:3.0.1", {\ 2328 "packageLocation": "./.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip/node_modules/are-we-there-yet/",\ 2329 "packageDependencies": [\ 2330 ["are-we-there-yet", "npm:3.0.1"],\ 2331 ["delegates", "npm:1.0.0"],\ 2332 ["readable-stream", "npm:3.6.0"]\ 2333 ],\ 2334 "linkType": "HARD"\ 2335 }]\ 2336 ]],\ 2337 ["argparse", [\ 2338 ["npm:1.0.10", {\ 2339 "packageLocation": "./.yarn/cache/argparse-npm-1.0.10-528934e59d-7ca6e45583.zip/node_modules/argparse/",\ 2340 "packageDependencies": [\ 2341 ["argparse", "npm:1.0.10"],\ 2342 ["sprintf-js", "npm:1.0.3"]\ 2343 ],\ 2344 "linkType": "HARD"\ 2345 }],\ 2346 ["npm:2.0.1", {\ 2347 "packageLocation": "./.yarn/cache/argparse-npm-2.0.1-faff7999e6-83644b5649.zip/node_modules/argparse/",\ 2348 "packageDependencies": [\ 2349 ["argparse", "npm:2.0.1"]\ 2350 ],\ 2351 "linkType": "HARD"\ 2352 }]\ 2353 ]],\ 2354 ["aria-query", [\ 2355 ["npm:5.1.3", {\ 2356 "packageLocation": "./.yarn/cache/aria-query-npm-5.1.3-9632eccdee-929ff95f02.zip/node_modules/aria-query/",\ 2357 "packageDependencies": [\ 2358 ["aria-query", "npm:5.1.3"],\ 2359 ["deep-equal", "npm:2.2.0"]\ 2360 ],\ 2361 "linkType": "HARD"\ 2362 }]\ 2363 ]],\ 2364 ["array-includes", [\ 2365 ["npm:3.1.6", {\ 2366 "packageLocation": "./.yarn/cache/array-includes-npm-3.1.6-d0ff9d248b-f22f8cd8ba.zip/node_modules/array-includes/",\ 2367 "packageDependencies": [\ 2368 ["array-includes", "npm:3.1.6"],\ 2369 ["call-bind", "npm:1.0.2"],\ 2370 ["define-properties", "npm:1.1.4"],\ 2371 ["es-abstract", "npm:1.21.1"],\ 2372 ["get-intrinsic", "npm:1.1.3"],\ 2373 ["is-string", "npm:1.0.7"]\ 2374 ],\ 2375 "linkType": "HARD"\ 2376 }]\ 2377 ]],\ 2378 ["array-union", [\ 2379 ["npm:2.1.0", {\ 2380 "packageLocation": "./.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip/node_modules/array-union/",\ 2381 "packageDependencies": [\ 2382 ["array-union", "npm:2.1.0"]\ 2383 ],\ 2384 "linkType": "HARD"\ 2385 }]\ 2386 ]],\ 2387 ["array.prototype.flat", [\ 2388 ["npm:1.3.1", {\ 2389 "packageLocation": "./.yarn/cache/array.prototype.flat-npm-1.3.1-e9a9e389c0-5a8415949d.zip/node_modules/array.prototype.flat/",\ 2390 "packageDependencies": [\ 2391 ["array.prototype.flat", "npm:1.3.1"],\ 2392 ["call-bind", "npm:1.0.2"],\ 2393 ["define-properties", "npm:1.1.4"],\ 2394 ["es-abstract", "npm:1.21.1"],\ 2395 ["es-shim-unscopables", "npm:1.0.0"]\ 2396 ],\ 2397 "linkType": "HARD"\ 2398 }]\ 2399 ]],\ 2400 ["array.prototype.flatmap", [\ 2401 ["npm:1.3.1", {\ 2402 "packageLocation": "./.yarn/cache/array.prototype.flatmap-npm-1.3.1-c65186ca34-8c1c43a499.zip/node_modules/array.prototype.flatmap/",\ 2403 "packageDependencies": [\ 2404 ["array.prototype.flatmap", "npm:1.3.1"],\ 2405 ["call-bind", "npm:1.0.2"],\ 2406 ["define-properties", "npm:1.1.4"],\ 2407 ["es-abstract", "npm:1.21.1"],\ 2408 ["es-shim-unscopables", "npm:1.0.0"]\ 2409 ],\ 2410 "linkType": "HARD"\ 2411 }]\ 2412 ]],\ 2413 ["array.prototype.tosorted", [\ 2414 ["npm:1.1.1", {\ 2415 "packageLocation": "./.yarn/cache/array.prototype.tosorted-npm-1.1.1-1be94ad4a7-7923324a67.zip/node_modules/array.prototype.tosorted/",\ 2416 "packageDependencies": [\ 2417 ["array.prototype.tosorted", "npm:1.1.1"],\ 2418 ["call-bind", "npm:1.0.2"],\ 2419 ["define-properties", "npm:1.1.4"],\ 2420 ["es-abstract", "npm:1.21.1"],\ 2421 ["es-shim-unscopables", "npm:1.0.0"],\ 2422 ["get-intrinsic", "npm:1.1.3"]\ 2423 ],\ 2424 "linkType": "HARD"\ 2425 }]\ 2426 ]],\ 2427 ["ast-types-flow", [\ 2428 ["npm:0.0.7", {\ 2429 "packageLocation": "./.yarn/cache/ast-types-flow-npm-0.0.7-7d32a3abf5-a26dcc2182.zip/node_modules/ast-types-flow/",\ 2430 "packageDependencies": [\ 2431 ["ast-types-flow", "npm:0.0.7"]\ 2432 ],\ 2433 "linkType": "HARD"\ 2434 }]\ 2435 ]],\ 2436 ["asynckit", [\ 2437 ["npm:0.4.0", {\ 2438 "packageLocation": "./.yarn/cache/asynckit-npm-0.4.0-c718858525-7b78c451df.zip/node_modules/asynckit/",\ 2439 "packageDependencies": [\ 2440 ["asynckit", "npm:0.4.0"]\ 2441 ],\ 2442 "linkType": "HARD"\ 2443 }]\ 2444 ]],\ 2445 ["atomic-sleep", [\ 2446 ["npm:1.0.0", {\ 2447 "packageLocation": "./.yarn/cache/atomic-sleep-npm-1.0.0-17d8a762a3-b95275afb2.zip/node_modules/atomic-sleep/",\ 2448 "packageDependencies": [\ 2449 ["atomic-sleep", "npm:1.0.0"]\ 2450 ],\ 2451 "linkType": "HARD"\ 2452 }]\ 2453 ]],\ 2454 ["available-typed-arrays", [\ 2455 ["npm:1.0.5", {\ 2456 "packageLocation": "./.yarn/cache/available-typed-arrays-npm-1.0.5-88f321e4d3-20eb47b3ce.zip/node_modules/available-typed-arrays/",\ 2457 "packageDependencies": [\ 2458 ["available-typed-arrays", "npm:1.0.5"]\ 2459 ],\ 2460 "linkType": "HARD"\ 2461 }]\ 2462 ]],\ 2463 ["axe-core", [\ 2464 ["npm:4.6.2", {\ 2465 "packageLocation": "./.yarn/cache/axe-core-npm-4.6.2-0de0e7b3e6-81523eeaf1.zip/node_modules/axe-core/",\ 2466 "packageDependencies": [\ 2467 ["axe-core", "npm:4.6.2"]\ 2468 ],\ 2469 "linkType": "HARD"\ 2470 }]\ 2471 ]],\ 2472 ["axobject-query", [\ 2473 ["npm:3.1.1", {\ 2474 "packageLocation": "./.yarn/cache/axobject-query-npm-3.1.1-13705ce3c1-c12a5da10d.zip/node_modules/axobject-query/",\ 2475 "packageDependencies": [\ 2476 ["axobject-query", "npm:3.1.1"],\ 2477 ["deep-equal", "npm:2.2.0"]\ 2478 ],\ 2479 "linkType": "HARD"\ 2480 }]\ 2481 ]],\ 2482 ["babel-jest", [\ 2483 ["npm:29.3.1", {\ 2484 "packageLocation": "./.yarn/cache/babel-jest-npm-29.3.1-871da66c2a-793848238a.zip/node_modules/babel-jest/",\ 2485 "packageDependencies": [\ 2486 ["babel-jest", "npm:29.3.1"]\ 2487 ],\ 2488 "linkType": "SOFT"\ 2489 }],\ 2490 ["virtual:788d0118a981621b95508a19cf21b7827158443c6db1f5680f3b2be78bad2f52fcc5613c309a8eab46fb07757bf8cb8cf5d03762e2d70972705fabae2fdabca3#npm:29.3.1", {\ 2491 "packageLocation": "./.yarn/__virtual__/babel-jest-virtual-ec7a7dd7d3/0/cache/babel-jest-npm-29.3.1-871da66c2a-793848238a.zip/node_modules/babel-jest/",\ 2492 "packageDependencies": [\ 2493 ["babel-jest", "virtual:788d0118a981621b95508a19cf21b7827158443c6db1f5680f3b2be78bad2f52fcc5613c309a8eab46fb07757bf8cb8cf5d03762e2d70972705fabae2fdabca3#npm:29.3.1"],\ 2494 ["@babel/core", "npm:7.20.12"],\ 2495 ["@jest/transform", "npm:29.3.1"],\ 2496 ["@types/babel__core", "npm:7.20.0"],\ 2497 ["babel-plugin-istanbul", "npm:6.1.1"],\ 2498 ["babel-preset-jest", "virtual:ec7a7dd7d38ca5d5ffbf4e26ec5ec41db80426f7a890053e08e0e11d43ee5d948d4244a15d6a856abf516d6dae11e0b778c98cf15e29dd05565aa81dc02bc371#npm:29.2.0"],\ 2499 ["chalk", "npm:4.1.2"],\ 2500 ["graceful-fs", "npm:4.2.10"],\ 2501 ["slash", "npm:3.0.0"]\ 2502 ],\ 2503 "packagePeers": [\ 2504 "@babel/core"\ 2505 ],\ 2506 "linkType": "HARD"\ 2507 }]\ 2508 ]],\ 2509 ["babel-plugin-istanbul", [\ 2510 ["npm:6.1.1", {\ 2511 "packageLocation": "./.yarn/cache/babel-plugin-istanbul-npm-6.1.1-df824055e4-cb4fd95738.zip/node_modules/babel-plugin-istanbul/",\ 2512 "packageDependencies": [\ 2513 ["babel-plugin-istanbul", "npm:6.1.1"],\ 2514 ["@babel/helper-plugin-utils", "npm:7.20.2"],\ 2515 ["@istanbuljs/load-nyc-config", "npm:1.1.0"],\ 2516 ["@istanbuljs/schema", "npm:0.1.3"],\ 2517 ["istanbul-lib-instrument", "npm:5.2.1"],\ 2518 ["test-exclude", "npm:6.0.0"]\ 2519 ],\ 2520 "linkType": "HARD"\ 2521 }]\ 2522 ]],\ 2523 ["babel-plugin-jest-hoist", [\ 2524 ["npm:29.2.0", {\ 2525 "packageLocation": "./.yarn/cache/babel-plugin-jest-hoist-npm-29.2.0-bad358f3a4-368d271cea.zip/node_modules/babel-plugin-jest-hoist/",\ 2526 "packageDependencies": [\ 2527 ["babel-plugin-jest-hoist", "npm:29.2.0"],\ 2528 ["@babel/template", "npm:7.20.7"],\ 2529 ["@babel/types", "npm:7.20.7"],\ 2530 ["@types/babel__core", "npm:7.20.0"],\ 2531 ["@types/babel__traverse", "npm:7.18.3"]\ 2532 ],\ 2533 "linkType": "HARD"\ 2534 }]\ 2535 ]],\ 2536 ["babel-preset-current-node-syntax", [\ 2537 ["npm:1.0.1", {\ 2538 "packageLocation": "./.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-d118c27424.zip/node_modules/babel-preset-current-node-syntax/",\ 2539 "packageDependencies": [\ 2540 ["babel-preset-current-node-syntax", "npm:1.0.1"]\ 2541 ],\ 2542 "linkType": "SOFT"\ 2543 }],\ 2544 ["virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:1.0.1", {\ 2545 "packageLocation": "./.yarn/__virtual__/babel-preset-current-node-syntax-virtual-c30e580943/0/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-d118c27424.zip/node_modules/babel-preset-current-node-syntax/",\ 2546 "packageDependencies": [\ 2547 ["babel-preset-current-node-syntax", "virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:1.0.1"],\ 2548 ["@babel/core", "npm:7.20.12"],\ 2549 ["@babel/plugin-syntax-async-generators", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.4"],\ 2550 ["@babel/plugin-syntax-bigint", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 2551 ["@babel/plugin-syntax-class-properties", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.12.13"],\ 2552 ["@babel/plugin-syntax-import-meta", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4"],\ 2553 ["@babel/plugin-syntax-json-strings", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 2554 ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4"],\ 2555 ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 2556 ["@babel/plugin-syntax-numeric-separator", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.10.4"],\ 2557 ["@babel/plugin-syntax-object-rest-spread", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 2558 ["@babel/plugin-syntax-optional-catch-binding", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 2559 ["@babel/plugin-syntax-optional-chaining", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.8.3"],\ 2560 ["@babel/plugin-syntax-top-level-await", "virtual:c30e580943ccbd3cf562a25260552a7fb34b1ef407cec9bce9bcdfcbe216a090db208ba4836b81595d2731f5c1e9941c40ca547596a67bb3ba8c6dee34564d4c#npm:7.14.5"],\ 2561 ["@types/babel__core", null]\ 2562 ],\ 2563 "packagePeers": [\ 2564 "@babel/core",\ 2565 "@types/babel__core"\ 2566 ],\ 2567 "linkType": "HARD"\ 2568 }],\ 2569 ["virtual:7b3f7f6eeed1ae4eee8602648cc6fbec893a2c67535d2704aef0049ce53c0dfa43a1f2949dbd7d00a2f3076823a7428d49cc887d6c5a579366f75e69ade520bc#npm:1.0.1", {\ 2570 "packageLocation": "./.yarn/__virtual__/babel-preset-current-node-syntax-virtual-b0bcc6ed62/0/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-d118c27424.zip/node_modules/babel-preset-current-node-syntax/",\ 2571 "packageDependencies": [\ 2572 ["babel-preset-current-node-syntax", "virtual:7b3f7f6eeed1ae4eee8602648cc6fbec893a2c67535d2704aef0049ce53c0dfa43a1f2949dbd7d00a2f3076823a7428d49cc887d6c5a579366f75e69ade520bc#npm:1.0.1"],\ 2573 ["@babel/core", "npm:7.20.12"],\ 2574 ["@babel/plugin-syntax-async-generators", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.4"],\ 2575 ["@babel/plugin-syntax-bigint", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 2576 ["@babel/plugin-syntax-class-properties", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.12.13"],\ 2577 ["@babel/plugin-syntax-import-meta", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4"],\ 2578 ["@babel/plugin-syntax-json-strings", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 2579 ["@babel/plugin-syntax-logical-assignment-operators", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4"],\ 2580 ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 2581 ["@babel/plugin-syntax-numeric-separator", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.10.4"],\ 2582 ["@babel/plugin-syntax-object-rest-spread", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 2583 ["@babel/plugin-syntax-optional-catch-binding", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 2584 ["@babel/plugin-syntax-optional-chaining", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.8.3"],\ 2585 ["@babel/plugin-syntax-top-level-await", "virtual:b0bcc6ed62f8cf440c643d427cdd1fc566ec22f126451716118ef952823b573e8f7f1cb7c591f1288add1fa897fe0a163bfb63cd397e5c0d0fcd25bdd3b3b26b#npm:7.14.5"],\ 2586 ["@types/babel__core", "npm:7.20.0"]\ 2587 ],\ 2588 "packagePeers": [\ 2589 "@babel/core",\ 2590 "@types/babel__core"\ 2591 ],\ 2592 "linkType": "HARD"\ 2593 }]\ 2594 ]],\ 2595 ["babel-preset-jest", [\ 2596 ["npm:29.2.0", {\ 2597 "packageLocation": "./.yarn/cache/babel-preset-jest-npm-29.2.0-d765a77392-1b09a2db96.zip/node_modules/babel-preset-jest/",\ 2598 "packageDependencies": [\ 2599 ["babel-preset-jest", "npm:29.2.0"]\ 2600 ],\ 2601 "linkType": "SOFT"\ 2602 }],\ 2603 ["virtual:ec7a7dd7d38ca5d5ffbf4e26ec5ec41db80426f7a890053e08e0e11d43ee5d948d4244a15d6a856abf516d6dae11e0b778c98cf15e29dd05565aa81dc02bc371#npm:29.2.0", {\ 2604 "packageLocation": "./.yarn/__virtual__/babel-preset-jest-virtual-7b3f7f6eee/0/cache/babel-preset-jest-npm-29.2.0-d765a77392-1b09a2db96.zip/node_modules/babel-preset-jest/",\ 2605 "packageDependencies": [\ 2606 ["babel-preset-jest", "virtual:ec7a7dd7d38ca5d5ffbf4e26ec5ec41db80426f7a890053e08e0e11d43ee5d948d4244a15d6a856abf516d6dae11e0b778c98cf15e29dd05565aa81dc02bc371#npm:29.2.0"],\ 2607 ["@babel/core", "npm:7.20.12"],\ 2608 ["@types/babel__core", "npm:7.20.0"],\ 2609 ["babel-plugin-jest-hoist", "npm:29.2.0"],\ 2610 ["babel-preset-current-node-syntax", "virtual:7b3f7f6eeed1ae4eee8602648cc6fbec893a2c67535d2704aef0049ce53c0dfa43a1f2949dbd7d00a2f3076823a7428d49cc887d6c5a579366f75e69ade520bc#npm:1.0.1"]\ 2611 ],\ 2612 "packagePeers": [\ 2613 "@babel/core",\ 2614 "@types/babel__core"\ 2615 ],\ 2616 "linkType": "HARD"\ 2617 }]\ 2618 ]],\ 2619 ["balanced-match", [\ 2620 ["npm:1.0.2", {\ 2621 "packageLocation": "./.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip/node_modules/balanced-match/",\ 2622 "packageDependencies": [\ 2623 ["balanced-match", "npm:1.0.2"]\ 2624 ],\ 2625 "linkType": "HARD"\ 2626 }]\ 2627 ]],\ 2628 ["base64-js", [\ 2629 ["npm:1.5.1", {\ 2630 "packageLocation": "./.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip/node_modules/base64-js/",\ 2631 "packageDependencies": [\ 2632 ["base64-js", "npm:1.5.1"]\ 2633 ],\ 2634 "linkType": "HARD"\ 2635 }]\ 2636 ]],\ 2637 ["bcrypt", [\ 2638 ["npm:5.1.0", {\ 2639 "packageLocation": "./.yarn/unplugged/bcrypt-npm-5.1.0-2a4230b3eb/node_modules/bcrypt/",\ 2640 "packageDependencies": [\ 2641 ["bcrypt", "npm:5.1.0"],\ 2642 ["@mapbox/node-pre-gyp", "npm:1.0.10"],\ 2643 ["node-addon-api", "npm:5.1.0"]\ 2644 ],\ 2645 "linkType": "HARD"\ 2646 }]\ 2647 ]],\ 2648 ["binary-extensions", [\ 2649 ["npm:2.2.0", {\ 2650 "packageLocation": "./.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip/node_modules/binary-extensions/",\ 2651 "packageDependencies": [\ 2652 ["binary-extensions", "npm:2.2.0"]\ 2653 ],\ 2654 "linkType": "HARD"\ 2655 }]\ 2656 ]],\ 2657 ["brace-expansion", [\ 2658 ["npm:1.1.11", {\ 2659 "packageLocation": "./.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip/node_modules/brace-expansion/",\ 2660 "packageDependencies": [\ 2661 ["brace-expansion", "npm:1.1.11"],\ 2662 ["balanced-match", "npm:1.0.2"],\ 2663 ["concat-map", "npm:0.0.1"]\ 2664 ],\ 2665 "linkType": "HARD"\ 2666 }],\ 2667 ["npm:2.0.1", {\ 2668 "packageLocation": "./.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip/node_modules/brace-expansion/",\ 2669 "packageDependencies": [\ 2670 ["brace-expansion", "npm:2.0.1"],\ 2671 ["balanced-match", "npm:1.0.2"]\ 2672 ],\ 2673 "linkType": "HARD"\ 2674 }]\ 2675 ]],\ 2676 ["braces", [\ 2677 ["npm:3.0.2", {\ 2678 "packageLocation": "./.yarn/cache/braces-npm-3.0.2-782240b28a-e2a8e769a8.zip/node_modules/braces/",\ 2679 "packageDependencies": [\ 2680 ["braces", "npm:3.0.2"],\ 2681 ["fill-range", "npm:7.0.1"]\ 2682 ],\ 2683 "linkType": "HARD"\ 2684 }]\ 2685 ]],\ 2686 ["browserslist", [\ 2687 ["npm:4.21.4", {\ 2688 "packageLocation": "./.yarn/cache/browserslist-npm-4.21.4-7d64a96afc-4af3793704.zip/node_modules/browserslist/",\ 2689 "packageDependencies": [\ 2690 ["browserslist", "npm:4.21.4"],\ 2691 ["caniuse-lite", "npm:1.0.30001446"],\ 2692 ["electron-to-chromium", "npm:1.4.284"],\ 2693 ["node-releases", "npm:2.0.8"],\ 2694 ["update-browserslist-db", "virtual:7d64a96afc8cf9b31b95951ccc2f47931d0cf97faa526fd0d20448bf2c73ddf9f5ef9e5cd28839ae8b5791451df45079a407b3f4978367b4210748169f5848f6#npm:1.0.10"]\ 2695 ],\ 2696 "linkType": "HARD"\ 2697 }]\ 2698 ]],\ 2699 ["bser", [\ 2700 ["npm:2.1.1", {\ 2701 "packageLocation": "./.yarn/cache/bser-npm-2.1.1-cc902055ce-9ba4dc58ce.zip/node_modules/bser/",\ 2702 "packageDependencies": [\ 2703 ["bser", "npm:2.1.1"],\ 2704 ["node-int64", "npm:0.4.0"]\ 2705 ],\ 2706 "linkType": "HARD"\ 2707 }]\ 2708 ]],\ 2709 ["buffer", [\ 2710 ["npm:6.0.3", {\ 2711 "packageLocation": "./.yarn/cache/buffer-npm-6.0.3-cd90dfedfe-5ad23293d9.zip/node_modules/buffer/",\ 2712 "packageDependencies": [\ 2713 ["buffer", "npm:6.0.3"],\ 2714 ["base64-js", "npm:1.5.1"],\ 2715 ["ieee754", "npm:1.2.1"]\ 2716 ],\ 2717 "linkType": "HARD"\ 2718 }]\ 2719 ]],\ 2720 ["buffer-equal-constant-time", [\ 2721 ["npm:1.0.1", {\ 2722 "packageLocation": "./.yarn/cache/buffer-equal-constant-time-npm-1.0.1-41826f3419-80bb945f5d.zip/node_modules/buffer-equal-constant-time/",\ 2723 "packageDependencies": [\ 2724 ["buffer-equal-constant-time", "npm:1.0.1"]\ 2725 ],\ 2726 "linkType": "HARD"\ 2727 }]\ 2728 ]],\ 2729 ["buffer-from", [\ 2730 ["npm:1.1.2", {\ 2731 "packageLocation": "./.yarn/cache/buffer-from-npm-1.1.2-03d2f20d7e-0448524a56.zip/node_modules/buffer-from/",\ 2732 "packageDependencies": [\ 2733 ["buffer-from", "npm:1.1.2"]\ 2734 ],\ 2735 "linkType": "HARD"\ 2736 }]\ 2737 ]],\ 2738 ["cacache", [\ 2739 ["npm:16.1.3", {\ 2740 "packageLocation": "./.yarn/cache/cacache-npm-16.1.3-4e2088ed0d-d91409e6e5.zip/node_modules/cacache/",\ 2741 "packageDependencies": [\ 2742 ["cacache", "npm:16.1.3"],\ 2743 ["@npmcli/fs", "npm:2.1.2"],\ 2744 ["@npmcli/move-file", "npm:2.0.1"],\ 2745 ["chownr", "npm:2.0.0"],\ 2746 ["fs-minipass", "npm:2.1.0"],\ 2747 ["glob", "npm:8.1.0"],\ 2748 ["infer-owner", "npm:1.0.4"],\ 2749 ["lru-cache", "npm:7.14.1"],\ 2750 ["minipass", "npm:3.3.6"],\ 2751 ["minipass-collect", "npm:1.0.2"],\ 2752 ["minipass-flush", "npm:1.0.5"],\ 2753 ["minipass-pipeline", "npm:1.2.4"],\ 2754 ["mkdirp", "npm:1.0.4"],\ 2755 ["p-map", "npm:4.0.0"],\ 2756 ["promise-inflight", "virtual:4e2088ed0df52533102f445d7e7aeba6560b7effa0cabbc7cc20dd1e36a86dd838cc541de4414688f4ce3ec77b0ad5298cea6de581350d934ceb35c3e0fe3462#npm:1.0.1"],\ 2757 ["rimraf", "npm:3.0.2"],\ 2758 ["ssri", "npm:9.0.1"],\ 2759 ["tar", "npm:6.1.13"],\ 2760 ["unique-filename", "npm:2.0.1"]\ 2761 ],\ 2762 "linkType": "HARD"\ 2763 }]\ 2764 ]],\ 2765 ["call-bind", [\ 2766 ["npm:1.0.2", {\ 2767 "packageLocation": "./.yarn/cache/call-bind-npm-1.0.2-c957124861-f8e31de9d1.zip/node_modules/call-bind/",\ 2768 "packageDependencies": [\ 2769 ["call-bind", "npm:1.0.2"],\ 2770 ["function-bind", "npm:1.1.1"],\ 2771 ["get-intrinsic", "npm:1.1.3"]\ 2772 ],\ 2773 "linkType": "HARD"\ 2774 }]\ 2775 ]],\ 2776 ["callsites", [\ 2777 ["npm:3.1.0", {\ 2778 "packageLocation": "./.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip/node_modules/callsites/",\ 2779 "packageDependencies": [\ 2780 ["callsites", "npm:3.1.0"]\ 2781 ],\ 2782 "linkType": "HARD"\ 2783 }]\ 2784 ]],\ 2785 ["camelcase", [\ 2786 ["npm:5.3.1", {\ 2787 "packageLocation": "./.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip/node_modules/camelcase/",\ 2788 "packageDependencies": [\ 2789 ["camelcase", "npm:5.3.1"]\ 2790 ],\ 2791 "linkType": "HARD"\ 2792 }],\ 2793 ["npm:6.3.0", {\ 2794 "packageLocation": "./.yarn/cache/camelcase-npm-6.3.0-e5e42a0d15-8c96818a90.zip/node_modules/camelcase/",\ 2795 "packageDependencies": [\ 2796 ["camelcase", "npm:6.3.0"]\ 2797 ],\ 2798 "linkType": "HARD"\ 2799 }]\ 2800 ]],\ 2801 ["caniuse-lite", [\ 2802 ["npm:1.0.30001445", {\ 2803 "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001445-535a3ade2b-f98ca67829.zip/node_modules/caniuse-lite/",\ 2804 "packageDependencies": [\ 2805 ["caniuse-lite", "npm:1.0.30001445"]\ 2806 ],\ 2807 "linkType": "HARD"\ 2808 }],\ 2809 ["npm:1.0.30001446", {\ 2810 "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001446-7fe6417e87-b31a7e1837.zip/node_modules/caniuse-lite/",\ 2811 "packageDependencies": [\ 2812 ["caniuse-lite", "npm:1.0.30001446"]\ 2813 ],\ 2814 "linkType": "HARD"\ 2815 }]\ 2816 ]],\ 2817 ["chalk", [\ 2818 ["npm:2.4.2", {\ 2819 "packageLocation": "./.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip/node_modules/chalk/",\ 2820 "packageDependencies": [\ 2821 ["chalk", "npm:2.4.2"],\ 2822 ["ansi-styles", "npm:3.2.1"],\ 2823 ["escape-string-regexp", "npm:1.0.5"],\ 2824 ["supports-color", "npm:5.5.0"]\ 2825 ],\ 2826 "linkType": "HARD"\ 2827 }],\ 2828 ["npm:3.0.0", {\ 2829 "packageLocation": "./.yarn/cache/chalk-npm-3.0.0-e813208025-8e3ddf3981.zip/node_modules/chalk/",\ 2830 "packageDependencies": [\ 2831 ["chalk", "npm:3.0.0"],\ 2832 ["ansi-styles", "npm:4.3.0"],\ 2833 ["supports-color", "npm:7.2.0"]\ 2834 ],\ 2835 "linkType": "HARD"\ 2836 }],\ 2837 ["npm:4.1.2", {\ 2838 "packageLocation": "./.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip/node_modules/chalk/",\ 2839 "packageDependencies": [\ 2840 ["chalk", "npm:4.1.2"],\ 2841 ["ansi-styles", "npm:4.3.0"],\ 2842 ["supports-color", "npm:7.2.0"]\ 2843 ],\ 2844 "linkType": "HARD"\ 2845 }]\ 2846 ]],\ 2847 ["char-regex", [\ 2848 ["npm:1.0.2", {\ 2849 "packageLocation": "./.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-b563e4b603.zip/node_modules/char-regex/",\ 2850 "packageDependencies": [\ 2851 ["char-regex", "npm:1.0.2"]\ 2852 ],\ 2853 "linkType": "HARD"\ 2854 }]\ 2855 ]],\ 2856 ["chokidar", [\ 2857 ["npm:3.5.3", {\ 2858 "packageLocation": "./.yarn/cache/chokidar-npm-3.5.3-c5f9b0a56a-b49fcde401.zip/node_modules/chokidar/",\ 2859 "packageDependencies": [\ 2860 ["chokidar", "npm:3.5.3"],\ 2861 ["anymatch", "npm:3.1.3"],\ 2862 ["braces", "npm:3.0.2"],\ 2863 ["fsevents", "patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=df0bf1"],\ 2864 ["glob-parent", "npm:5.1.2"],\ 2865 ["is-binary-path", "npm:2.1.0"],\ 2866 ["is-glob", "npm:4.0.3"],\ 2867 ["normalize-path", "npm:3.0.0"],\ 2868 ["readdirp", "npm:3.6.0"]\ 2869 ],\ 2870 "linkType": "HARD"\ 2871 }]\ 2872 ]],\ 2873 ["chownr", [\ 2874 ["npm:2.0.0", {\ 2875 "packageLocation": "./.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip/node_modules/chownr/",\ 2876 "packageDependencies": [\ 2877 ["chownr", "npm:2.0.0"]\ 2878 ],\ 2879 "linkType": "HARD"\ 2880 }]\ 2881 ]],\ 2882 ["ci-info", [\ 2883 ["npm:3.7.1", {\ 2884 "packageLocation": "./.yarn/cache/ci-info-npm-3.7.1-fd86862c3f-72d93d5101.zip/node_modules/ci-info/",\ 2885 "packageDependencies": [\ 2886 ["ci-info", "npm:3.7.1"]\ 2887 ],\ 2888 "linkType": "HARD"\ 2889 }]\ 2890 ]],\ 2891 ["cjs-module-lexer", [\ 2892 ["npm:1.2.2", {\ 2893 "packageLocation": "./.yarn/cache/cjs-module-lexer-npm-1.2.2-473ce063ea-977f3f042b.zip/node_modules/cjs-module-lexer/",\ 2894 "packageDependencies": [\ 2895 ["cjs-module-lexer", "npm:1.2.2"]\ 2896 ],\ 2897 "linkType": "HARD"\ 2898 }]\ 2899 ]],\ 2900 ["clean-stack", [\ 2901 ["npm:2.2.0", {\ 2902 "packageLocation": "./.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip/node_modules/clean-stack/",\ 2903 "packageDependencies": [\ 2904 ["clean-stack", "npm:2.2.0"]\ 2905 ],\ 2906 "linkType": "HARD"\ 2907 }]\ 2908 ]],\ 2909 ["client-only", [\ 2910 ["npm:0.0.1", {\ 2911 "packageLocation": "./.yarn/cache/client-only-npm-0.0.1-07d3e9505c-0c16bf660d.zip/node_modules/client-only/",\ 2912 "packageDependencies": [\ 2913 ["client-only", "npm:0.0.1"]\ 2914 ],\ 2915 "linkType": "HARD"\ 2916 }]\ 2917 ]],\ 2918 ["cliui", [\ 2919 ["npm:8.0.1", {\ 2920 "packageLocation": "./.yarn/cache/cliui-npm-8.0.1-3b029092cf-79648b3b00.zip/node_modules/cliui/",\ 2921 "packageDependencies": [\ 2922 ["cliui", "npm:8.0.1"],\ 2923 ["string-width", "npm:4.2.3"],\ 2924 ["strip-ansi", "npm:6.0.1"],\ 2925 ["wrap-ansi", "npm:7.0.0"]\ 2926 ],\ 2927 "linkType": "HARD"\ 2928 }]\ 2929 ]],\ 2930 ["cluster-key-slot", [\ 2931 ["npm:1.1.2", {\ 2932 "packageLocation": "./.yarn/cache/cluster-key-slot-npm-1.1.2-0571a28825-be0ad2d262.zip/node_modules/cluster-key-slot/",\ 2933 "packageDependencies": [\ 2934 ["cluster-key-slot", "npm:1.1.2"]\ 2935 ],\ 2936 "linkType": "HARD"\ 2937 }]\ 2938 ]],\ 2939 ["co", [\ 2940 ["npm:4.6.0", {\ 2941 "packageLocation": "./.yarn/cache/co-npm-4.6.0-03f2d1feb6-5210d92230.zip/node_modules/co/",\ 2942 "packageDependencies": [\ 2943 ["co", "npm:4.6.0"]\ 2944 ],\ 2945 "linkType": "HARD"\ 2946 }]\ 2947 ]],\ 2948 ["collect-v8-coverage", [\ 2949 ["npm:1.0.1", {\ 2950 "packageLocation": "./.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-4efe0a1fcc.zip/node_modules/collect-v8-coverage/",\ 2951 "packageDependencies": [\ 2952 ["collect-v8-coverage", "npm:1.0.1"]\ 2953 ],\ 2954 "linkType": "HARD"\ 2955 }]\ 2956 ]],\ 2957 ["color-convert", [\ 2958 ["npm:1.9.3", {\ 2959 "packageLocation": "./.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip/node_modules/color-convert/",\ 2960 "packageDependencies": [\ 2961 ["color-convert", "npm:1.9.3"],\ 2962 ["color-name", "npm:1.1.3"]\ 2963 ],\ 2964 "linkType": "HARD"\ 2965 }],\ 2966 ["npm:2.0.1", {\ 2967 "packageLocation": "./.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip/node_modules/color-convert/",\ 2968 "packageDependencies": [\ 2969 ["color-convert", "npm:2.0.1"],\ 2970 ["color-name", "npm:1.1.4"]\ 2971 ],\ 2972 "linkType": "HARD"\ 2973 }]\ 2974 ]],\ 2975 ["color-name", [\ 2976 ["npm:1.1.3", {\ 2977 "packageLocation": "./.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip/node_modules/color-name/",\ 2978 "packageDependencies": [\ 2979 ["color-name", "npm:1.1.3"]\ 2980 ],\ 2981 "linkType": "HARD"\ 2982 }],\ 2983 ["npm:1.1.4", {\ 2984 "packageLocation": "./.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip/node_modules/color-name/",\ 2985 "packageDependencies": [\ 2986 ["color-name", "npm:1.1.4"]\ 2987 ],\ 2988 "linkType": "HARD"\ 2989 }]\ 2990 ]],\ 2991 ["color-support", [\ 2992 ["npm:1.1.3", {\ 2993 "packageLocation": "./.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip/node_modules/color-support/",\ 2994 "packageDependencies": [\ 2995 ["color-support", "npm:1.1.3"]\ 2996 ],\ 2997 "linkType": "HARD"\ 2998 }]\ 2999 ]],\ 3000 ["combined-stream", [\ 3001 ["npm:1.0.8", {\ 3002 "packageLocation": "./.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-49fa4aeb49.zip/node_modules/combined-stream/",\ 3003 "packageDependencies": [\ 3004 ["combined-stream", "npm:1.0.8"],\ 3005 ["delayed-stream", "npm:1.0.0"]\ 3006 ],\ 3007 "linkType": "HARD"\ 3008 }]\ 3009 ]],\ 3010 ["concat-map", [\ 3011 ["npm:0.0.1", {\ 3012 "packageLocation": "./.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip/node_modules/concat-map/",\ 3013 "packageDependencies": [\ 3014 ["concat-map", "npm:0.0.1"]\ 3015 ],\ 3016 "linkType": "HARD"\ 3017 }]\ 3018 ]],\ 3019 ["console-control-strings", [\ 3020 ["npm:1.1.0", {\ 3021 "packageLocation": "./.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip/node_modules/console-control-strings/",\ 3022 "packageDependencies": [\ 3023 ["console-control-strings", "npm:1.1.0"]\ 3024 ],\ 3025 "linkType": "HARD"\ 3026 }]\ 3027 ]],\ 3028 ["convert-source-map", [\ 3029 ["npm:1.9.0", {\ 3030 "packageLocation": "./.yarn/cache/convert-source-map-npm-1.9.0-e294555f4b-dc55a1f28d.zip/node_modules/convert-source-map/",\ 3031 "packageDependencies": [\ 3032 ["convert-source-map", "npm:1.9.0"]\ 3033 ],\ 3034 "linkType": "HARD"\ 3035 }],\ 3036 ["npm:2.0.0", {\ 3037 "packageLocation": "./.yarn/cache/convert-source-map-npm-2.0.0-7ab664dc4e-63ae9933be.zip/node_modules/convert-source-map/",\ 3038 "packageDependencies": [\ 3039 ["convert-source-map", "npm:2.0.0"]\ 3040 ],\ 3041 "linkType": "HARD"\ 3042 }]\ 3043 ]],\ 3044 ["copy-anything", [\ 3045 ["npm:3.0.3", {\ 3046 "packageLocation": "./.yarn/cache/copy-anything-npm-3.0.3-a24d77ec4d-d456dc5ec9.zip/node_modules/copy-anything/",\ 3047 "packageDependencies": [\ 3048 ["copy-anything", "npm:3.0.3"],\ 3049 ["is-what", "npm:4.1.8"]\ 3050 ],\ 3051 "linkType": "HARD"\ 3052 }]\ 3053 ]],\ 3054 ["cross-spawn", [\ 3055 ["npm:7.0.3", {\ 3056 "packageLocation": "./.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip/node_modules/cross-spawn/",\ 3057 "packageDependencies": [\ 3058 ["cross-spawn", "npm:7.0.3"],\ 3059 ["path-key", "npm:3.1.1"],\ 3060 ["shebang-command", "npm:2.0.0"],\ 3061 ["which", "npm:2.0.2"]\ 3062 ],\ 3063 "linkType": "HARD"\ 3064 }]\ 3065 ]],\ 3066 ["css.escape", [\ 3067 ["npm:1.5.1", {\ 3068 "packageLocation": "./.yarn/cache/css.escape-npm-1.5.1-b24d2ba77a-f6d38088d8.zip/node_modules/css.escape/",\ 3069 "packageDependencies": [\ 3070 ["css.escape", "npm:1.5.1"]\ 3071 ],\ 3072 "linkType": "HARD"\ 3073 }]\ 3074 ]],\ 3075 ["cssom", [\ 3076 ["npm:0.3.8", {\ 3077 "packageLocation": "./.yarn/cache/cssom-npm-0.3.8-a9291d36ff-24beb3087c.zip/node_modules/cssom/",\ 3078 "packageDependencies": [\ 3079 ["cssom", "npm:0.3.8"]\ 3080 ],\ 3081 "linkType": "HARD"\ 3082 }],\ 3083 ["npm:0.5.0", {\ 3084 "packageLocation": "./.yarn/cache/cssom-npm-0.5.0-44ab2704f2-823471aa30.zip/node_modules/cssom/",\ 3085 "packageDependencies": [\ 3086 ["cssom", "npm:0.5.0"]\ 3087 ],\ 3088 "linkType": "HARD"\ 3089 }]\ 3090 ]],\ 3091 ["cssstyle", [\ 3092 ["npm:2.3.0", {\ 3093 "packageLocation": "./.yarn/cache/cssstyle-npm-2.3.0-b5d112c450-5f05e6fd2e.zip/node_modules/cssstyle/",\ 3094 "packageDependencies": [\ 3095 ["cssstyle", "npm:2.3.0"],\ 3096 ["cssom", "npm:0.3.8"]\ 3097 ],\ 3098 "linkType": "HARD"\ 3099 }]\ 3100 ]],\ 3101 ["csstype", [\ 3102 ["npm:3.1.1", {\ 3103 "packageLocation": "./.yarn/cache/csstype-npm-3.1.1-3857baf48b-1f7b4f5fdd.zip/node_modules/csstype/",\ 3104 "packageDependencies": [\ 3105 ["csstype", "npm:3.1.1"]\ 3106 ],\ 3107 "linkType": "HARD"\ 3108 }]\ 3109 ]],\ 3110 ["damerau-levenshtein", [\ 3111 ["npm:1.0.8", {\ 3112 "packageLocation": "./.yarn/cache/damerau-levenshtein-npm-1.0.8-bda7311c69-d240b77575.zip/node_modules/damerau-levenshtein/",\ 3113 "packageDependencies": [\ 3114 ["damerau-levenshtein", "npm:1.0.8"]\ 3115 ],\ 3116 "linkType": "HARD"\ 3117 }]\ 3118 ]],\ 3119 ["data-urls", [\ 3120 ["npm:3.0.2", {\ 3121 "packageLocation": "./.yarn/cache/data-urls-npm-3.0.2-c8b2050319-033fc3dd0f.zip/node_modules/data-urls/",\ 3122 "packageDependencies": [\ 3123 ["data-urls", "npm:3.0.2"],\ 3124 ["abab", "npm:2.0.6"],\ 3125 ["whatwg-mimetype", "npm:3.0.0"],\ 3126 ["whatwg-url", "npm:11.0.0"]\ 3127 ],\ 3128 "linkType": "HARD"\ 3129 }]\ 3130 ]],\ 3131 ["debug", [\ 3132 ["npm:3.2.7", {\ 3133 "packageLocation": "./.yarn/cache/debug-npm-3.2.7-754e818c7a-b3d8c59407.zip/node_modules/debug/",\ 3134 "packageDependencies": [\ 3135 ["debug", "npm:3.2.7"]\ 3136 ],\ 3137 "linkType": "SOFT"\ 3138 }],\ 3139 ["npm:4.3.4", {\ 3140 "packageLocation": "./.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip/node_modules/debug/",\ 3141 "packageDependencies": [\ 3142 ["debug", "npm:4.3.4"]\ 3143 ],\ 3144 "linkType": "SOFT"\ 3145 }],\ 3146 ["virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4", {\ 3147 "packageLocation": "./.yarn/__virtual__/debug-virtual-218613e218/0/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip/node_modules/debug/",\ 3148 "packageDependencies": [\ 3149 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 3150 ["@types/supports-color", null],\ 3151 ["ms", "npm:2.1.2"],\ 3152 ["supports-color", null]\ 3153 ],\ 3154 "packagePeers": [\ 3155 "@types/supports-color",\ 3156 "supports-color"\ 3157 ],\ 3158 "linkType": "HARD"\ 3159 }],\ 3160 ["virtual:65bed195431eadffc59e2238eb20cc12d9a1665bc7458ce780a9320ff795091b03cb5c4c2094938315ddd967b5b02c0f1df67b3ed435c69b7457092b7cc06ed8#npm:3.2.7", {\ 3161 "packageLocation": "./.yarn/__virtual__/debug-virtual-2e2daad542/0/cache/debug-npm-3.2.7-754e818c7a-b3d8c59407.zip/node_modules/debug/",\ 3162 "packageDependencies": [\ 3163 ["debug", "virtual:65bed195431eadffc59e2238eb20cc12d9a1665bc7458ce780a9320ff795091b03cb5c4c2094938315ddd967b5b02c0f1df67b3ed435c69b7457092b7cc06ed8#npm:3.2.7"],\ 3164 ["@types/supports-color", null],\ 3165 ["ms", "npm:2.1.3"],\ 3166 ["supports-color", null]\ 3167 ],\ 3168 "packagePeers": [\ 3169 "@types/supports-color",\ 3170 "supports-color"\ 3171 ],\ 3172 "linkType": "HARD"\ 3173 }]\ 3174 ]],\ 3175 ["decimal.js", [\ 3176 ["npm:10.4.3", {\ 3177 "packageLocation": "./.yarn/cache/decimal.js-npm-10.4.3-e7d483387c-796404dcfa.zip/node_modules/decimal.js/",\ 3178 "packageDependencies": [\ 3179 ["decimal.js", "npm:10.4.3"]\ 3180 ],\ 3181 "linkType": "HARD"\ 3182 }]\ 3183 ]],\ 3184 ["dedent", [\ 3185 ["npm:0.7.0", {\ 3186 "packageLocation": "./.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip/node_modules/dedent/",\ 3187 "packageDependencies": [\ 3188 ["dedent", "npm:0.7.0"]\ 3189 ],\ 3190 "linkType": "HARD"\ 3191 }]\ 3192 ]],\ 3193 ["deep-equal", [\ 3194 ["npm:2.2.0", {\ 3195 "packageLocation": "./.yarn/cache/deep-equal-npm-2.2.0-d9712e0040-46a34509d2.zip/node_modules/deep-equal/",\ 3196 "packageDependencies": [\ 3197 ["deep-equal", "npm:2.2.0"],\ 3198 ["call-bind", "npm:1.0.2"],\ 3199 ["es-get-iterator", "npm:1.1.3"],\ 3200 ["get-intrinsic", "npm:1.1.3"],\ 3201 ["is-arguments", "npm:1.1.1"],\ 3202 ["is-array-buffer", "npm:3.0.1"],\ 3203 ["is-date-object", "npm:1.0.5"],\ 3204 ["is-regex", "npm:1.1.4"],\ 3205 ["is-shared-array-buffer", "npm:1.0.2"],\ 3206 ["isarray", "npm:2.0.5"],\ 3207 ["object-is", "npm:1.1.5"],\ 3208 ["object-keys", "npm:1.1.1"],\ 3209 ["object.assign", "npm:4.1.4"],\ 3210 ["regexp.prototype.flags", "npm:1.4.3"],\ 3211 ["side-channel", "npm:1.0.4"],\ 3212 ["which-boxed-primitive", "npm:1.0.2"],\ 3213 ["which-collection", "npm:1.0.1"],\ 3214 ["which-typed-array", "npm:1.1.9"]\ 3215 ],\ 3216 "linkType": "HARD"\ 3217 }]\ 3218 ]],\ 3219 ["deep-is", [\ 3220 ["npm:0.1.4", {\ 3221 "packageLocation": "./.yarn/cache/deep-is-npm-0.1.4-88938b5a67-edb65dd0d7.zip/node_modules/deep-is/",\ 3222 "packageDependencies": [\ 3223 ["deep-is", "npm:0.1.4"]\ 3224 ],\ 3225 "linkType": "HARD"\ 3226 }]\ 3227 ]],\ 3228 ["deepmerge", [\ 3229 ["npm:4.2.2", {\ 3230 "packageLocation": "./.yarn/cache/deepmerge-npm-4.2.2-112165ced2-a8c43a1ed8.zip/node_modules/deepmerge/",\ 3231 "packageDependencies": [\ 3232 ["deepmerge", "npm:4.2.2"]\ 3233 ],\ 3234 "linkType": "HARD"\ 3235 }]\ 3236 ]],\ 3237 ["define-lazy-prop", [\ 3238 ["npm:2.0.0", {\ 3239 "packageLocation": "./.yarn/cache/define-lazy-prop-npm-2.0.0-bba0cd91a7-0115fdb065.zip/node_modules/define-lazy-prop/",\ 3240 "packageDependencies": [\ 3241 ["define-lazy-prop", "npm:2.0.0"]\ 3242 ],\ 3243 "linkType": "HARD"\ 3244 }]\ 3245 ]],\ 3246 ["define-properties", [\ 3247 ["npm:1.1.4", {\ 3248 "packageLocation": "./.yarn/cache/define-properties-npm-1.1.4-85ee575655-ce0aef3f9e.zip/node_modules/define-properties/",\ 3249 "packageDependencies": [\ 3250 ["define-properties", "npm:1.1.4"],\ 3251 ["has-property-descriptors", "npm:1.0.0"],\ 3252 ["object-keys", "npm:1.1.1"]\ 3253 ],\ 3254 "linkType": "HARD"\ 3255 }]\ 3256 ]],\ 3257 ["delayed-stream", [\ 3258 ["npm:1.0.0", {\ 3259 "packageLocation": "./.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip/node_modules/delayed-stream/",\ 3260 "packageDependencies": [\ 3261 ["delayed-stream", "npm:1.0.0"]\ 3262 ],\ 3263 "linkType": "HARD"\ 3264 }]\ 3265 ]],\ 3266 ["delegates", [\ 3267 ["npm:1.0.0", {\ 3268 "packageLocation": "./.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip/node_modules/delegates/",\ 3269 "packageDependencies": [\ 3270 ["delegates", "npm:1.0.0"]\ 3271 ],\ 3272 "linkType": "HARD"\ 3273 }]\ 3274 ]],\ 3275 ["denque", [\ 3276 ["npm:2.1.0", {\ 3277 "packageLocation": "./.yarn/cache/denque-npm-2.1.0-578d0b6297-1d4ae1d05e.zip/node_modules/denque/",\ 3278 "packageDependencies": [\ 3279 ["denque", "npm:2.1.0"]\ 3280 ],\ 3281 "linkType": "HARD"\ 3282 }]\ 3283 ]],\ 3284 ["depd", [\ 3285 ["npm:1.1.2", {\ 3286 "packageLocation": "./.yarn/cache/depd-npm-1.1.2-b0c8414da7-6b406620d2.zip/node_modules/depd/",\ 3287 "packageDependencies": [\ 3288 ["depd", "npm:1.1.2"]\ 3289 ],\ 3290 "linkType": "HARD"\ 3291 }]\ 3292 ]],\ 3293 ["detect-libc", [\ 3294 ["npm:2.0.1", {\ 3295 "packageLocation": "./.yarn/cache/detect-libc-npm-2.0.1-2699cb2ac4-ccb05fcabb.zip/node_modules/detect-libc/",\ 3296 "packageDependencies": [\ 3297 ["detect-libc", "npm:2.0.1"]\ 3298 ],\ 3299 "linkType": "HARD"\ 3300 }]\ 3301 ]],\ 3302 ["detect-newline", [\ 3303 ["npm:3.1.0", {\ 3304 "packageLocation": "./.yarn/cache/detect-newline-npm-3.1.0-6d33fa8d37-ae6cd429c4.zip/node_modules/detect-newline/",\ 3305 "packageDependencies": [\ 3306 ["detect-newline", "npm:3.1.0"]\ 3307 ],\ 3308 "linkType": "HARD"\ 3309 }]\ 3310 ]],\ 3311 ["diff", [\ 3312 ["npm:5.1.0", {\ 3313 "packageLocation": "./.yarn/cache/diff-npm-5.1.0-d24d222280-c7bf0df7c9.zip/node_modules/diff/",\ 3314 "packageDependencies": [\ 3315 ["diff", "npm:5.1.0"]\ 3316 ],\ 3317 "linkType": "HARD"\ 3318 }]\ 3319 ]],\ 3320 ["diff-sequences", [\ 3321 ["npm:29.3.1", {\ 3322 "packageLocation": "./.yarn/cache/diff-sequences-npm-29.3.1-817e98637b-8edab8c383.zip/node_modules/diff-sequences/",\ 3323 "packageDependencies": [\ 3324 ["diff-sequences", "npm:29.3.1"]\ 3325 ],\ 3326 "linkType": "HARD"\ 3327 }]\ 3328 ]],\ 3329 ["dir-glob", [\ 3330 ["npm:3.0.1", {\ 3331 "packageLocation": "./.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip/node_modules/dir-glob/",\ 3332 "packageDependencies": [\ 3333 ["dir-glob", "npm:3.0.1"],\ 3334 ["path-type", "npm:4.0.0"]\ 3335 ],\ 3336 "linkType": "HARD"\ 3337 }]\ 3338 ]],\ 3339 ["doctrine", [\ 3340 ["npm:2.1.0", {\ 3341 "packageLocation": "./.yarn/cache/doctrine-npm-2.1.0-ac15d049b7-a45e277f7f.zip/node_modules/doctrine/",\ 3342 "packageDependencies": [\ 3343 ["doctrine", "npm:2.1.0"],\ 3344 ["esutils", "npm:2.0.3"]\ 3345 ],\ 3346 "linkType": "HARD"\ 3347 }],\ 3348 ["npm:3.0.0", {\ 3349 "packageLocation": "./.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-fd7673ca77.zip/node_modules/doctrine/",\ 3350 "packageDependencies": [\ 3351 ["doctrine", "npm:3.0.0"],\ 3352 ["esutils", "npm:2.0.3"]\ 3353 ],\ 3354 "linkType": "HARD"\ 3355 }]\ 3356 ]],\ 3357 ["dom-accessibility-api", [\ 3358 ["npm:0.5.16", {\ 3359 "packageLocation": "./.yarn/cache/dom-accessibility-api-npm-0.5.16-d3e2310666-005eb283ca.zip/node_modules/dom-accessibility-api/",\ 3360 "packageDependencies": [\ 3361 ["dom-accessibility-api", "npm:0.5.16"]\ 3362 ],\ 3363 "linkType": "HARD"\ 3364 }]\ 3365 ]],\ 3366 ["domexception", [\ 3367 ["npm:4.0.0", {\ 3368 "packageLocation": "./.yarn/cache/domexception-npm-4.0.0-5093673f9b-ddbc1268ed.zip/node_modules/domexception/",\ 3369 "packageDependencies": [\ 3370 ["domexception", "npm:4.0.0"],\ 3371 ["webidl-conversions", "npm:7.0.0"]\ 3372 ],\ 3373 "linkType": "HARD"\ 3374 }]\ 3375 ]],\ 3376 ["dreamhanks-demo-project", [\ 3377 ["workspace:.", {\ 3378 "packageLocation": "./",\ 3379 "packageDependencies": [\ 3380 ["dreamhanks-demo-project", "workspace:."],\ 3381 ["@next/font", "npm:13.1.2"],\ 3382 ["@testing-library/jest-dom", "npm:5.16.5"],\ 3383 ["@testing-library/react", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.4.0"],\ 3384 ["@testing-library/user-event", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:14.4.3"],\ 3385 ["@types/bcrypt", "npm:5.0.0"],\ 3386 ["@types/diff", "npm:5.0.2"],\ 3387 ["@types/jest", "npm:29.2.6"],\ 3388 ["@types/jsonwebtoken", "npm:9.0.1"],\ 3389 ["@types/node", "npm:18.11.18"],\ 3390 ["@types/nodemailer", "npm:6.4.7"],\ 3391 ["@types/react", "npm:18.0.26"],\ 3392 ["@types/react-dom", "npm:18.0.10"],\ 3393 ["@types/testing-library__jest-dom", "npm:5.14.5"],\ 3394 ["bcrypt", "npm:5.1.0"],\ 3395 ["diff", "npm:5.1.0"],\ 3396 ["eslint", "npm:8.32.0"],\ 3397 ["eslint-config-next", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2"],\ 3398 ["handlebars", "npm:4.7.7"],\ 3399 ["jest", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:29.3.1"],\ 3400 ["jest-environment-jsdom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:29.3.1"],\ 3401 ["jsonwebtoken", "npm:9.0.0"],\ 3402 ["moment", "npm:2.29.4"],\ 3403 ["mysql2", "npm:3.0.1"],\ 3404 ["nanoevents", "npm:7.0.1"],\ 3405 ["nanoid", "npm:4.0.0"],\ 3406 ["next", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2"],\ 3407 ["next-router-mock", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:0.9.1-beta.0"],\ 3408 ["next-superjson-plugin", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:0.5.4"],\ 3409 ["nodemailer", "npm:6.9.0"],\ 3410 ["pino", "npm:8.8.0"],\ 3411 ["react", "npm:18.2.0"],\ 3412 ["react-dom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:18.2.0"],\ 3413 ["react-hot-toast", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:2.4.0"],\ 3414 ["redis", "npm:4.6.1"],\ 3415 ["sass", "npm:1.57.1"],\ 3416 ["superjson", "npm:1.12.2"],\ 3417 ["typescript", "patch:typescript@npm%3A4.9.4#~builtin<compat/typescript>::version=4.9.4&hash=ad5954"],\ 3418 ["ws", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:8.12.0"],\ 3419 ["yaml", "npm:2.2.1"]\ 3420 ],\ 3421 "linkType": "SOFT"\ 3422 }]\ 3423 ]],\ 3424 ["ecdsa-sig-formatter", [\ 3425 ["npm:1.0.11", {\ 3426 "packageLocation": "./.yarn/cache/ecdsa-sig-formatter-npm-1.0.11-b6784e7852-207f9ab1c2.zip/node_modules/ecdsa-sig-formatter/",\ 3427 "packageDependencies": [\ 3428 ["ecdsa-sig-formatter", "npm:1.0.11"],\ 3429 ["safe-buffer", "npm:5.2.1"]\ 3430 ],\ 3431 "linkType": "HARD"\ 3432 }]\ 3433 ]],\ 3434 ["electron-to-chromium", [\ 3435 ["npm:1.4.284", {\ 3436 "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.4.284-2fb881a7ac-be496e9dca.zip/node_modules/electron-to-chromium/",\ 3437 "packageDependencies": [\ 3438 ["electron-to-chromium", "npm:1.4.284"]\ 3439 ],\ 3440 "linkType": "HARD"\ 3441 }]\ 3442 ]],\ 3443 ["emittery", [\ 3444 ["npm:0.13.1", {\ 3445 "packageLocation": "./.yarn/cache/emittery-npm-0.13.1-cb6cd1bb03-2b089ab630.zip/node_modules/emittery/",\ 3446 "packageDependencies": [\ 3447 ["emittery", "npm:0.13.1"]\ 3448 ],\ 3449 "linkType": "HARD"\ 3450 }]\ 3451 ]],\ 3452 ["emoji-regex", [\ 3453 ["npm:8.0.0", {\ 3454 "packageLocation": "./.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip/node_modules/emoji-regex/",\ 3455 "packageDependencies": [\ 3456 ["emoji-regex", "npm:8.0.0"]\ 3457 ],\ 3458 "linkType": "HARD"\ 3459 }],\ 3460 ["npm:9.2.2", {\ 3461 "packageLocation": "./.yarn/cache/emoji-regex-npm-9.2.2-e6fac8d058-8487182da7.zip/node_modules/emoji-regex/",\ 3462 "packageDependencies": [\ 3463 ["emoji-regex", "npm:9.2.2"]\ 3464 ],\ 3465 "linkType": "HARD"\ 3466 }]\ 3467 ]],\ 3468 ["encoding", [\ 3469 ["npm:0.1.13", {\ 3470 "packageLocation": "./.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip/node_modules/encoding/",\ 3471 "packageDependencies": [\ 3472 ["encoding", "npm:0.1.13"],\ 3473 ["iconv-lite", "npm:0.6.3"]\ 3474 ],\ 3475 "linkType": "HARD"\ 3476 }]\ 3477 ]],\ 3478 ["enhanced-resolve", [\ 3479 ["npm:5.12.0", {\ 3480 "packageLocation": "./.yarn/cache/enhanced-resolve-npm-5.12.0-c291ce4ee3-bf3f787fac.zip/node_modules/enhanced-resolve/",\ 3481 "packageDependencies": [\ 3482 ["enhanced-resolve", "npm:5.12.0"],\ 3483 ["graceful-fs", "npm:4.2.10"],\ 3484 ["tapable", "npm:2.2.1"]\ 3485 ],\ 3486 "linkType": "HARD"\ 3487 }]\ 3488 ]],\ 3489 ["entities", [\ 3490 ["npm:4.4.0", {\ 3491 "packageLocation": "./.yarn/cache/entities-npm-4.4.0-97635dc5cc-84d250329f.zip/node_modules/entities/",\ 3492 "packageDependencies": [\ 3493 ["entities", "npm:4.4.0"]\ 3494 ],\ 3495 "linkType": "HARD"\ 3496 }]\ 3497 ]],\ 3498 ["env-paths", [\ 3499 ["npm:2.2.1", {\ 3500 "packageLocation": "./.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip/node_modules/env-paths/",\ 3501 "packageDependencies": [\ 3502 ["env-paths", "npm:2.2.1"]\ 3503 ],\ 3504 "linkType": "HARD"\ 3505 }]\ 3506 ]],\ 3507 ["err-code", [\ 3508 ["npm:2.0.3", {\ 3509 "packageLocation": "./.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip/node_modules/err-code/",\ 3510 "packageDependencies": [\ 3511 ["err-code", "npm:2.0.3"]\ 3512 ],\ 3513 "linkType": "HARD"\ 3514 }]\ 3515 ]],\ 3516 ["error-ex", [\ 3517 ["npm:1.3.2", {\ 3518 "packageLocation": "./.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip/node_modules/error-ex/",\ 3519 "packageDependencies": [\ 3520 ["error-ex", "npm:1.3.2"],\ 3521 ["is-arrayish", "npm:0.2.1"]\ 3522 ],\ 3523 "linkType": "HARD"\ 3524 }]\ 3525 ]],\ 3526 ["es-abstract", [\ 3527 ["npm:1.21.1", {\ 3528 "packageLocation": "./.yarn/cache/es-abstract-npm-1.21.1-28d9a4a469-23ff60d42d.zip/node_modules/es-abstract/",\ 3529 "packageDependencies": [\ 3530 ["es-abstract", "npm:1.21.1"],\ 3531 ["available-typed-arrays", "npm:1.0.5"],\ 3532 ["call-bind", "npm:1.0.2"],\ 3533 ["es-set-tostringtag", "npm:2.0.1"],\ 3534 ["es-to-primitive", "npm:1.2.1"],\ 3535 ["function-bind", "npm:1.1.1"],\ 3536 ["function.prototype.name", "npm:1.1.5"],\ 3537 ["get-intrinsic", "npm:1.1.3"],\ 3538 ["get-symbol-description", "npm:1.0.0"],\ 3539 ["globalthis", "npm:1.0.3"],\ 3540 ["gopd", "npm:1.0.1"],\ 3541 ["has", "npm:1.0.3"],\ 3542 ["has-property-descriptors", "npm:1.0.0"],\ 3543 ["has-proto", "npm:1.0.1"],\ 3544 ["has-symbols", "npm:1.0.3"],\ 3545 ["internal-slot", "npm:1.0.4"],\ 3546 ["is-array-buffer", "npm:3.0.1"],\ 3547 ["is-callable", "npm:1.2.7"],\ 3548 ["is-negative-zero", "npm:2.0.2"],\ 3549 ["is-regex", "npm:1.1.4"],\ 3550 ["is-shared-array-buffer", "npm:1.0.2"],\ 3551 ["is-string", "npm:1.0.7"],\ 3552 ["is-typed-array", "npm:1.1.10"],\ 3553 ["is-weakref", "npm:1.0.2"],\ 3554 ["object-inspect", "npm:1.12.3"],\ 3555 ["object-keys", "npm:1.1.1"],\ 3556 ["object.assign", "npm:4.1.4"],\ 3557 ["regexp.prototype.flags", "npm:1.4.3"],\ 3558 ["safe-regex-test", "npm:1.0.0"],\ 3559 ["string.prototype.trimend", "npm:1.0.6"],\ 3560 ["string.prototype.trimstart", "npm:1.0.6"],\ 3561 ["typed-array-length", "npm:1.0.4"],\ 3562 ["unbox-primitive", "npm:1.0.2"],\ 3563 ["which-typed-array", "npm:1.1.9"]\ 3564 ],\ 3565 "linkType": "HARD"\ 3566 }]\ 3567 ]],\ 3568 ["es-get-iterator", [\ 3569 ["npm:1.1.3", {\ 3570 "packageLocation": "./.yarn/cache/es-get-iterator-npm-1.1.3-7911befaac-8fa118da42.zip/node_modules/es-get-iterator/",\ 3571 "packageDependencies": [\ 3572 ["es-get-iterator", "npm:1.1.3"],\ 3573 ["call-bind", "npm:1.0.2"],\ 3574 ["get-intrinsic", "npm:1.1.3"],\ 3575 ["has-symbols", "npm:1.0.3"],\ 3576 ["is-arguments", "npm:1.1.1"],\ 3577 ["is-map", "npm:2.0.2"],\ 3578 ["is-set", "npm:2.0.2"],\ 3579 ["is-string", "npm:1.0.7"],\ 3580 ["isarray", "npm:2.0.5"],\ 3581 ["stop-iteration-iterator", "npm:1.0.0"]\ 3582 ],\ 3583 "linkType": "HARD"\ 3584 }]\ 3585 ]],\ 3586 ["es-set-tostringtag", [\ 3587 ["npm:2.0.1", {\ 3588 "packageLocation": "./.yarn/cache/es-set-tostringtag-npm-2.0.1-c87b5de872-ec416a1294.zip/node_modules/es-set-tostringtag/",\ 3589 "packageDependencies": [\ 3590 ["es-set-tostringtag", "npm:2.0.1"],\ 3591 ["get-intrinsic", "npm:1.1.3"],\ 3592 ["has", "npm:1.0.3"],\ 3593 ["has-tostringtag", "npm:1.0.0"]\ 3594 ],\ 3595 "linkType": "HARD"\ 3596 }]\ 3597 ]],\ 3598 ["es-shim-unscopables", [\ 3599 ["npm:1.0.0", {\ 3600 "packageLocation": "./.yarn/cache/es-shim-unscopables-npm-1.0.0-06186593f1-83e95cadbb.zip/node_modules/es-shim-unscopables/",\ 3601 "packageDependencies": [\ 3602 ["es-shim-unscopables", "npm:1.0.0"],\ 3603 ["has", "npm:1.0.3"]\ 3604 ],\ 3605 "linkType": "HARD"\ 3606 }]\ 3607 ]],\ 3608 ["es-to-primitive", [\ 3609 ["npm:1.2.1", {\ 3610 "packageLocation": "./.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-4ead6671a2.zip/node_modules/es-to-primitive/",\ 3611 "packageDependencies": [\ 3612 ["es-to-primitive", "npm:1.2.1"],\ 3613 ["is-callable", "npm:1.2.7"],\ 3614 ["is-date-object", "npm:1.0.5"],\ 3615 ["is-symbol", "npm:1.0.4"]\ 3616 ],\ 3617 "linkType": "HARD"\ 3618 }]\ 3619 ]],\ 3620 ["escalade", [\ 3621 ["npm:3.1.1", {\ 3622 "packageLocation": "./.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip/node_modules/escalade/",\ 3623 "packageDependencies": [\ 3624 ["escalade", "npm:3.1.1"]\ 3625 ],\ 3626 "linkType": "HARD"\ 3627 }]\ 3628 ]],\ 3629 ["escape-string-regexp", [\ 3630 ["npm:1.0.5", {\ 3631 "packageLocation": "./.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip/node_modules/escape-string-regexp/",\ 3632 "packageDependencies": [\ 3633 ["escape-string-regexp", "npm:1.0.5"]\ 3634 ],\ 3635 "linkType": "HARD"\ 3636 }],\ 3637 ["npm:2.0.0", {\ 3638 "packageLocation": "./.yarn/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-9f8a2d5743.zip/node_modules/escape-string-regexp/",\ 3639 "packageDependencies": [\ 3640 ["escape-string-regexp", "npm:2.0.0"]\ 3641 ],\ 3642 "linkType": "HARD"\ 3643 }],\ 3644 ["npm:4.0.0", {\ 3645 "packageLocation": "./.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip/node_modules/escape-string-regexp/",\ 3646 "packageDependencies": [\ 3647 ["escape-string-regexp", "npm:4.0.0"]\ 3648 ],\ 3649 "linkType": "HARD"\ 3650 }]\ 3651 ]],\ 3652 ["escodegen", [\ 3653 ["npm:2.0.0", {\ 3654 "packageLocation": "./.yarn/cache/escodegen-npm-2.0.0-6450b02925-5aa6b2966f.zip/node_modules/escodegen/",\ 3655 "packageDependencies": [\ 3656 ["escodegen", "npm:2.0.0"],\ 3657 ["esprima", "npm:4.0.1"],\ 3658 ["estraverse", "npm:5.3.0"],\ 3659 ["esutils", "npm:2.0.3"],\ 3660 ["optionator", "npm:0.8.3"],\ 3661 ["source-map", "npm:0.6.1"]\ 3662 ],\ 3663 "linkType": "HARD"\ 3664 }]\ 3665 ]],\ 3666 ["eslint", [\ 3667 ["npm:8.32.0", {\ 3668 "packageLocation": "./.yarn/cache/eslint-npm-8.32.0-ce390f6a3f-23c8fb3c57.zip/node_modules/eslint/",\ 3669 "packageDependencies": [\ 3670 ["eslint", "npm:8.32.0"],\ 3671 ["@eslint/eslintrc", "npm:1.4.1"],\ 3672 ["@humanwhocodes/config-array", "npm:0.11.8"],\ 3673 ["@humanwhocodes/module-importer", "npm:1.0.1"],\ 3674 ["@nodelib/fs.walk", "npm:1.2.8"],\ 3675 ["ajv", "npm:6.12.6"],\ 3676 ["chalk", "npm:4.1.2"],\ 3677 ["cross-spawn", "npm:7.0.3"],\ 3678 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 3679 ["doctrine", "npm:3.0.0"],\ 3680 ["escape-string-regexp", "npm:4.0.0"],\ 3681 ["eslint-scope", "npm:7.1.1"],\ 3682 ["eslint-utils", "virtual:ce390f6a3f485d617e3b348339c56730c4c095a916405f20c5e9ffb3d90e981e5a3936fe6ffe116d1ab20e8802d84b6e7025bc0b2b95bffc5b1af4e2cfeccf25#npm:3.0.0"],\ 3683 ["eslint-visitor-keys", "npm:3.3.0"],\ 3684 ["espree", "npm:9.4.1"],\ 3685 ["esquery", "npm:1.4.0"],\ 3686 ["esutils", "npm:2.0.3"],\ 3687 ["fast-deep-equal", "npm:3.1.3"],\ 3688 ["file-entry-cache", "npm:6.0.1"],\ 3689 ["find-up", "npm:5.0.0"],\ 3690 ["glob-parent", "npm:6.0.2"],\ 3691 ["globals", "npm:13.19.0"],\ 3692 ["grapheme-splitter", "npm:1.0.4"],\ 3693 ["ignore", "npm:5.2.4"],\ 3694 ["import-fresh", "npm:3.3.0"],\ 3695 ["imurmurhash", "npm:0.1.4"],\ 3696 ["is-glob", "npm:4.0.3"],\ 3697 ["is-path-inside", "npm:3.0.3"],\ 3698 ["js-sdsl", "npm:4.2.0"],\ 3699 ["js-yaml", "npm:4.1.0"],\ 3700 ["json-stable-stringify-without-jsonify", "npm:1.0.1"],\ 3701 ["levn", "npm:0.4.1"],\ 3702 ["lodash.merge", "npm:4.6.2"],\ 3703 ["minimatch", "npm:3.1.2"],\ 3704 ["natural-compare", "npm:1.4.0"],\ 3705 ["optionator", "npm:0.9.1"],\ 3706 ["regexpp", "npm:3.2.0"],\ 3707 ["strip-ansi", "npm:6.0.1"],\ 3708 ["strip-json-comments", "npm:3.1.1"],\ 3709 ["text-table", "npm:0.2.0"]\ 3710 ],\ 3711 "linkType": "HARD"\ 3712 }]\ 3713 ]],\ 3714 ["eslint-config-next", [\ 3715 ["npm:13.1.2", {\ 3716 "packageLocation": "./.yarn/cache/eslint-config-next-npm-13.1.2-5a861662b7-332ab947d1.zip/node_modules/eslint-config-next/",\ 3717 "packageDependencies": [\ 3718 ["eslint-config-next", "npm:13.1.2"]\ 3719 ],\ 3720 "linkType": "SOFT"\ 3721 }],\ 3722 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2", {\ 3723 "packageLocation": "./.yarn/__virtual__/eslint-config-next-virtual-51c22dc6e4/0/cache/eslint-config-next-npm-13.1.2-5a861662b7-332ab947d1.zip/node_modules/eslint-config-next/",\ 3724 "packageDependencies": [\ 3725 ["eslint-config-next", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2"],\ 3726 ["@next/eslint-plugin-next", "npm:13.1.2"],\ 3727 ["@rushstack/eslint-patch", "npm:1.2.0"],\ 3728 ["@types/eslint", null],\ 3729 ["@types/typescript", null],\ 3730 ["@typescript-eslint/parser", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:5.48.1"],\ 3731 ["eslint", "npm:8.32.0"],\ 3732 ["eslint-import-resolver-node", "npm:0.3.7"],\ 3733 ["eslint-import-resolver-typescript", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:3.5.3"],\ 3734 ["eslint-plugin-import", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:2.27.4"],\ 3735 ["eslint-plugin-jsx-a11y", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:6.7.1"],\ 3736 ["eslint-plugin-react", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:7.32.0"],\ 3737 ["eslint-plugin-react-hooks", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:4.6.0"],\ 3738 ["typescript", "patch:typescript@npm%3A4.9.4#~builtin<compat/typescript>::version=4.9.4&hash=ad5954"]\ 3739 ],\ 3740 "packagePeers": [\ 3741 "@types/eslint",\ 3742 "@types/typescript",\ 3743 "eslint",\ 3744 "typescript"\ 3745 ],\ 3746 "linkType": "HARD"\ 3747 }]\ 3748 ]],\ 3749 ["eslint-import-resolver-node", [\ 3750 ["npm:0.3.7", {\ 3751 "packageLocation": "./.yarn/cache/eslint-import-resolver-node-npm-0.3.7-65bed19543-3379aacf1d.zip/node_modules/eslint-import-resolver-node/",\ 3752 "packageDependencies": [\ 3753 ["eslint-import-resolver-node", "npm:0.3.7"],\ 3754 ["debug", "virtual:65bed195431eadffc59e2238eb20cc12d9a1665bc7458ce780a9320ff795091b03cb5c4c2094938315ddd967b5b02c0f1df67b3ed435c69b7457092b7cc06ed8#npm:3.2.7"],\ 3755 ["is-core-module", "npm:2.11.0"],\ 3756 ["resolve", "patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d"]\ 3757 ],\ 3758 "linkType": "HARD"\ 3759 }]\ 3760 ]],\ 3761 ["eslint-import-resolver-typescript", [\ 3762 ["npm:3.5.3", {\ 3763 "packageLocation": "./.yarn/cache/eslint-import-resolver-typescript-npm-3.5.3-9363d7a124-63b5f28bec.zip/node_modules/eslint-import-resolver-typescript/",\ 3764 "packageDependencies": [\ 3765 ["eslint-import-resolver-typescript", "npm:3.5.3"]\ 3766 ],\ 3767 "linkType": "SOFT"\ 3768 }],\ 3769 ["virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:3.5.3", {\ 3770 "packageLocation": "./.yarn/__virtual__/eslint-import-resolver-typescript-virtual-078539f30d/0/cache/eslint-import-resolver-typescript-npm-3.5.3-9363d7a124-63b5f28bec.zip/node_modules/eslint-import-resolver-typescript/",\ 3771 "packageDependencies": [\ 3772 ["eslint-import-resolver-typescript", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:3.5.3"],\ 3773 ["@types/eslint", null],\ 3774 ["@types/eslint-plugin-import", null],\ 3775 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 3776 ["enhanced-resolve", "npm:5.12.0"],\ 3777 ["eslint", "npm:8.32.0"],\ 3778 ["eslint-plugin-import", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:2.27.4"],\ 3779 ["get-tsconfig", "npm:4.3.0"],\ 3780 ["globby", "npm:13.1.3"],\ 3781 ["is-core-module", "npm:2.11.0"],\ 3782 ["is-glob", "npm:4.0.3"],\ 3783 ["synckit", "npm:0.8.4"]\ 3784 ],\ 3785 "packagePeers": [\ 3786 "@types/eslint-plugin-import",\ 3787 "@types/eslint",\ 3788 "eslint-plugin-import",\ 3789 "eslint"\ 3790 ],\ 3791 "linkType": "HARD"\ 3792 }]\ 3793 ]],\ 3794 ["eslint-module-utils", [\ 3795 ["npm:2.7.4", {\ 3796 "packageLocation": "./.yarn/cache/eslint-module-utils-npm-2.7.4-a1640084cb-5da13645da.zip/node_modules/eslint-module-utils/",\ 3797 "packageDependencies": [\ 3798 ["eslint-module-utils", "npm:2.7.4"]\ 3799 ],\ 3800 "linkType": "SOFT"\ 3801 }],\ 3802 ["virtual:a0905098521dc3e2f72219cd1f17936ba1f1d9d5fed652c7569056f54ebe41454d6ded09504fe035fa53bad7a2b8d02c05af58710403826df7b2dae903646b3a#npm:2.7.4", {\ 3803 "packageLocation": "./.yarn/__virtual__/eslint-module-utils-virtual-aba5700019/0/cache/eslint-module-utils-npm-2.7.4-a1640084cb-5da13645da.zip/node_modules/eslint-module-utils/",\ 3804 "packageDependencies": [\ 3805 ["eslint-module-utils", "virtual:a0905098521dc3e2f72219cd1f17936ba1f1d9d5fed652c7569056f54ebe41454d6ded09504fe035fa53bad7a2b8d02c05af58710403826df7b2dae903646b3a#npm:2.7.4"],\ 3806 ["@types/eslint", null],\ 3807 ["@types/eslint-import-resolver-node", null],\ 3808 ["@types/eslint-import-resolver-typescript", null],\ 3809 ["@types/eslint-import-resolver-webpack", null],\ 3810 ["@types/typescript-eslint__parser", null],\ 3811 ["@typescript-eslint/parser", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:5.48.1"],\ 3812 ["debug", "virtual:65bed195431eadffc59e2238eb20cc12d9a1665bc7458ce780a9320ff795091b03cb5c4c2094938315ddd967b5b02c0f1df67b3ed435c69b7457092b7cc06ed8#npm:3.2.7"],\ 3813 ["eslint", "npm:8.32.0"],\ 3814 ["eslint-import-resolver-node", "npm:0.3.7"],\ 3815 ["eslint-import-resolver-typescript", null],\ 3816 ["eslint-import-resolver-webpack", null]\ 3817 ],\ 3818 "packagePeers": [\ 3819 "@types/eslint-import-resolver-node",\ 3820 "@types/eslint-import-resolver-typescript",\ 3821 "@types/eslint-import-resolver-webpack",\ 3822 "@types/eslint",\ 3823 "@types/typescript-eslint__parser",\ 3824 "@typescript-eslint/parser",\ 3825 "eslint-import-resolver-node",\ 3826 "eslint-import-resolver-typescript",\ 3827 "eslint-import-resolver-webpack",\ 3828 "eslint"\ 3829 ],\ 3830 "linkType": "HARD"\ 3831 }]\ 3832 ]],\ 3833 ["eslint-plugin-import", [\ 3834 ["npm:2.27.4", {\ 3835 "packageLocation": "./.yarn/cache/eslint-plugin-import-npm-2.27.4-68e361a300-e298a9b1fd.zip/node_modules/eslint-plugin-import/",\ 3836 "packageDependencies": [\ 3837 ["eslint-plugin-import", "npm:2.27.4"]\ 3838 ],\ 3839 "linkType": "SOFT"\ 3840 }],\ 3841 ["virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:2.27.4", {\ 3842 "packageLocation": "./.yarn/__virtual__/eslint-plugin-import-virtual-a090509852/0/cache/eslint-plugin-import-npm-2.27.4-68e361a300-e298a9b1fd.zip/node_modules/eslint-plugin-import/",\ 3843 "packageDependencies": [\ 3844 ["eslint-plugin-import", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:2.27.4"],\ 3845 ["@types/eslint", null],\ 3846 ["@types/typescript-eslint__parser", null],\ 3847 ["@typescript-eslint/parser", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:5.48.1"],\ 3848 ["array-includes", "npm:3.1.6"],\ 3849 ["array.prototype.flat", "npm:1.3.1"],\ 3850 ["array.prototype.flatmap", "npm:1.3.1"],\ 3851 ["debug", "virtual:65bed195431eadffc59e2238eb20cc12d9a1665bc7458ce780a9320ff795091b03cb5c4c2094938315ddd967b5b02c0f1df67b3ed435c69b7457092b7cc06ed8#npm:3.2.7"],\ 3852 ["doctrine", "npm:2.1.0"],\ 3853 ["eslint", "npm:8.32.0"],\ 3854 ["eslint-import-resolver-node", "npm:0.3.7"],\ 3855 ["eslint-module-utils", "virtual:a0905098521dc3e2f72219cd1f17936ba1f1d9d5fed652c7569056f54ebe41454d6ded09504fe035fa53bad7a2b8d02c05af58710403826df7b2dae903646b3a#npm:2.7.4"],\ 3856 ["has", "npm:1.0.3"],\ 3857 ["is-core-module", "npm:2.11.0"],\ 3858 ["is-glob", "npm:4.0.3"],\ 3859 ["minimatch", "npm:3.1.2"],\ 3860 ["object.values", "npm:1.1.6"],\ 3861 ["resolve", "patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d"],\ 3862 ["semver", "npm:6.3.0"],\ 3863 ["tsconfig-paths", "npm:3.14.1"]\ 3864 ],\ 3865 "packagePeers": [\ 3866 "@types/eslint",\ 3867 "@types/typescript-eslint__parser",\ 3868 "@typescript-eslint/parser",\ 3869 "eslint"\ 3870 ],\ 3871 "linkType": "HARD"\ 3872 }]\ 3873 ]],\ 3874 ["eslint-plugin-jsx-a11y", [\ 3875 ["npm:6.7.1", {\ 3876 "packageLocation": "./.yarn/cache/eslint-plugin-jsx-a11y-npm-6.7.1-84f912ba17-f166dd5fe7.zip/node_modules/eslint-plugin-jsx-a11y/",\ 3877 "packageDependencies": [\ 3878 ["eslint-plugin-jsx-a11y", "npm:6.7.1"]\ 3879 ],\ 3880 "linkType": "SOFT"\ 3881 }],\ 3882 ["virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:6.7.1", {\ 3883 "packageLocation": "./.yarn/__virtual__/eslint-plugin-jsx-a11y-virtual-6ca978feee/0/cache/eslint-plugin-jsx-a11y-npm-6.7.1-84f912ba17-f166dd5fe7.zip/node_modules/eslint-plugin-jsx-a11y/",\ 3884 "packageDependencies": [\ 3885 ["eslint-plugin-jsx-a11y", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:6.7.1"],\ 3886 ["@babel/runtime", "npm:7.20.7"],\ 3887 ["@types/eslint", null],\ 3888 ["aria-query", "npm:5.1.3"],\ 3889 ["array-includes", "npm:3.1.6"],\ 3890 ["array.prototype.flatmap", "npm:1.3.1"],\ 3891 ["ast-types-flow", "npm:0.0.7"],\ 3892 ["axe-core", "npm:4.6.2"],\ 3893 ["axobject-query", "npm:3.1.1"],\ 3894 ["damerau-levenshtein", "npm:1.0.8"],\ 3895 ["emoji-regex", "npm:9.2.2"],\ 3896 ["eslint", "npm:8.32.0"],\ 3897 ["has", "npm:1.0.3"],\ 3898 ["jsx-ast-utils", "npm:3.3.3"],\ 3899 ["language-tags", "npm:1.0.5"],\ 3900 ["minimatch", "npm:3.1.2"],\ 3901 ["object.entries", "npm:1.1.6"],\ 3902 ["object.fromentries", "npm:2.0.6"],\ 3903 ["semver", "npm:6.3.0"]\ 3904 ],\ 3905 "packagePeers": [\ 3906 "@types/eslint",\ 3907 "eslint"\ 3908 ],\ 3909 "linkType": "HARD"\ 3910 }]\ 3911 ]],\ 3912 ["eslint-plugin-react", [\ 3913 ["npm:7.32.0", {\ 3914 "packageLocation": "./.yarn/cache/eslint-plugin-react-npm-7.32.0-60a40d5ae1-b81ce2623b.zip/node_modules/eslint-plugin-react/",\ 3915 "packageDependencies": [\ 3916 ["eslint-plugin-react", "npm:7.32.0"]\ 3917 ],\ 3918 "linkType": "SOFT"\ 3919 }],\ 3920 ["virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:7.32.0", {\ 3921 "packageLocation": "./.yarn/__virtual__/eslint-plugin-react-virtual-492b7991bd/0/cache/eslint-plugin-react-npm-7.32.0-60a40d5ae1-b81ce2623b.zip/node_modules/eslint-plugin-react/",\ 3922 "packageDependencies": [\ 3923 ["eslint-plugin-react", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:7.32.0"],\ 3924 ["@types/eslint", null],\ 3925 ["array-includes", "npm:3.1.6"],\ 3926 ["array.prototype.flatmap", "npm:1.3.1"],\ 3927 ["array.prototype.tosorted", "npm:1.1.1"],\ 3928 ["doctrine", "npm:2.1.0"],\ 3929 ["eslint", "npm:8.32.0"],\ 3930 ["estraverse", "npm:5.3.0"],\ 3931 ["jsx-ast-utils", "npm:3.3.3"],\ 3932 ["minimatch", "npm:3.1.2"],\ 3933 ["object.entries", "npm:1.1.6"],\ 3934 ["object.fromentries", "npm:2.0.6"],\ 3935 ["object.hasown", "npm:1.1.2"],\ 3936 ["object.values", "npm:1.1.6"],\ 3937 ["prop-types", "npm:15.8.1"],\ 3938 ["resolve", "patch:resolve@npm%3A2.0.0-next.4#~builtin<compat/resolve>::version=2.0.0-next.4&hash=c3c19d"],\ 3939 ["semver", "npm:6.3.0"],\ 3940 ["string.prototype.matchall", "npm:4.0.8"]\ 3941 ],\ 3942 "packagePeers": [\ 3943 "@types/eslint",\ 3944 "eslint"\ 3945 ],\ 3946 "linkType": "HARD"\ 3947 }]\ 3948 ]],\ 3949 ["eslint-plugin-react-hooks", [\ 3950 ["npm:4.6.0", {\ 3951 "packageLocation": "./.yarn/cache/eslint-plugin-react-hooks-npm-4.6.0-b429fac07f-23001801f1.zip/node_modules/eslint-plugin-react-hooks/",\ 3952 "packageDependencies": [\ 3953 ["eslint-plugin-react-hooks", "npm:4.6.0"]\ 3954 ],\ 3955 "linkType": "SOFT"\ 3956 }],\ 3957 ["virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:4.6.0", {\ 3958 "packageLocation": "./.yarn/__virtual__/eslint-plugin-react-hooks-virtual-c079784ace/0/cache/eslint-plugin-react-hooks-npm-4.6.0-b429fac07f-23001801f1.zip/node_modules/eslint-plugin-react-hooks/",\ 3959 "packageDependencies": [\ 3960 ["eslint-plugin-react-hooks", "virtual:51c22dc6e4e1d70ffccb7c1dd08d8a60ab284f323d0b5f92aae0752a8ad130327171c6ef73397de06736f903d8d1c57a85aec82c465268696d227caa2521ab13#npm:4.6.0"],\ 3961 ["@types/eslint", null],\ 3962 ["eslint", "npm:8.32.0"]\ 3963 ],\ 3964 "packagePeers": [\ 3965 "@types/eslint",\ 3966 "eslint"\ 3967 ],\ 3968 "linkType": "HARD"\ 3969 }]\ 3970 ]],\ 3971 ["eslint-scope", [\ 3972 ["npm:7.1.1", {\ 3973 "packageLocation": "./.yarn/cache/eslint-scope-npm-7.1.1-23935eb377-9f6e974ab2.zip/node_modules/eslint-scope/",\ 3974 "packageDependencies": [\ 3975 ["eslint-scope", "npm:7.1.1"],\ 3976 ["esrecurse", "npm:4.3.0"],\ 3977 ["estraverse", "npm:5.3.0"]\ 3978 ],\ 3979 "linkType": "HARD"\ 3980 }]\ 3981 ]],\ 3982 ["eslint-utils", [\ 3983 ["npm:3.0.0", {\ 3984 "packageLocation": "./.yarn/cache/eslint-utils-npm-3.0.0-630b3a4013-0668fe02f5.zip/node_modules/eslint-utils/",\ 3985 "packageDependencies": [\ 3986 ["eslint-utils", "npm:3.0.0"]\ 3987 ],\ 3988 "linkType": "SOFT"\ 3989 }],\ 3990 ["virtual:ce390f6a3f485d617e3b348339c56730c4c095a916405f20c5e9ffb3d90e981e5a3936fe6ffe116d1ab20e8802d84b6e7025bc0b2b95bffc5b1af4e2cfeccf25#npm:3.0.0", {\ 3991 "packageLocation": "./.yarn/__virtual__/eslint-utils-virtual-c1905d128f/0/cache/eslint-utils-npm-3.0.0-630b3a4013-0668fe02f5.zip/node_modules/eslint-utils/",\ 3992 "packageDependencies": [\ 3993 ["eslint-utils", "virtual:ce390f6a3f485d617e3b348339c56730c4c095a916405f20c5e9ffb3d90e981e5a3936fe6ffe116d1ab20e8802d84b6e7025bc0b2b95bffc5b1af4e2cfeccf25#npm:3.0.0"],\ 3994 ["@types/eslint", null],\ 3995 ["eslint", "npm:8.32.0"],\ 3996 ["eslint-visitor-keys", "npm:2.1.0"]\ 3997 ],\ 3998 "packagePeers": [\ 3999 "@types/eslint",\ 4000 "eslint"\ 4001 ],\ 4002 "linkType": "HARD"\ 4003 }]\ 4004 ]],\ 4005 ["eslint-visitor-keys", [\ 4006 ["npm:2.1.0", {\ 4007 "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-2.1.0-c31806b6b9-e3081d7dd2.zip/node_modules/eslint-visitor-keys/",\ 4008 "packageDependencies": [\ 4009 ["eslint-visitor-keys", "npm:2.1.0"]\ 4010 ],\ 4011 "linkType": "HARD"\ 4012 }],\ 4013 ["npm:3.3.0", {\ 4014 "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-3.3.0-d329af7c8c-d59e68a7c5.zip/node_modules/eslint-visitor-keys/",\ 4015 "packageDependencies": [\ 4016 ["eslint-visitor-keys", "npm:3.3.0"]\ 4017 ],\ 4018 "linkType": "HARD"\ 4019 }]\ 4020 ]],\ 4021 ["espree", [\ 4022 ["npm:9.4.1", {\ 4023 "packageLocation": "./.yarn/cache/espree-npm-9.4.1-b88faf10bc-4d266b0cf8.zip/node_modules/espree/",\ 4024 "packageDependencies": [\ 4025 ["espree", "npm:9.4.1"],\ 4026 ["acorn", "npm:8.8.1"],\ 4027 ["acorn-jsx", "virtual:b88faf10bc38b7bf99c4359521e8a0ed3f77dcbbc8677c8ff2c327d003d8f82b0e79a6212f450e879d54de3af7d71a6a67818de313afc6e195445593b76b6db0#npm:5.3.2"],\ 4028 ["eslint-visitor-keys", "npm:3.3.0"]\ 4029 ],\ 4030 "linkType": "HARD"\ 4031 }]\ 4032 ]],\ 4033 ["esprima", [\ 4034 ["npm:4.0.1", {\ 4035 "packageLocation": "./.yarn/cache/esprima-npm-4.0.1-1084e98778-b45bc805a6.zip/node_modules/esprima/",\ 4036 "packageDependencies": [\ 4037 ["esprima", "npm:4.0.1"]\ 4038 ],\ 4039 "linkType": "HARD"\ 4040 }]\ 4041 ]],\ 4042 ["esquery", [\ 4043 ["npm:1.4.0", {\ 4044 "packageLocation": "./.yarn/cache/esquery-npm-1.4.0-f39408b1a7-a0807e17ab.zip/node_modules/esquery/",\ 4045 "packageDependencies": [\ 4046 ["esquery", "npm:1.4.0"],\ 4047 ["estraverse", "npm:5.3.0"]\ 4048 ],\ 4049 "linkType": "HARD"\ 4050 }]\ 4051 ]],\ 4052 ["esrecurse", [\ 4053 ["npm:4.3.0", {\ 4054 "packageLocation": "./.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-ebc17b1a33.zip/node_modules/esrecurse/",\ 4055 "packageDependencies": [\ 4056 ["esrecurse", "npm:4.3.0"],\ 4057 ["estraverse", "npm:5.3.0"]\ 4058 ],\ 4059 "linkType": "HARD"\ 4060 }]\ 4061 ]],\ 4062 ["estraverse", [\ 4063 ["npm:5.3.0", {\ 4064 "packageLocation": "./.yarn/cache/estraverse-npm-5.3.0-03284f8f63-072780882d.zip/node_modules/estraverse/",\ 4065 "packageDependencies": [\ 4066 ["estraverse", "npm:5.3.0"]\ 4067 ],\ 4068 "linkType": "HARD"\ 4069 }]\ 4070 ]],\ 4071 ["esutils", [\ 4072 ["npm:2.0.3", {\ 4073 "packageLocation": "./.yarn/cache/esutils-npm-2.0.3-f865beafd5-22b5b08f74.zip/node_modules/esutils/",\ 4074 "packageDependencies": [\ 4075 ["esutils", "npm:2.0.3"]\ 4076 ],\ 4077 "linkType": "HARD"\ 4078 }]\ 4079 ]],\ 4080 ["event-target-shim", [\ 4081 ["npm:5.0.1", {\ 4082 "packageLocation": "./.yarn/cache/event-target-shim-npm-5.0.1-cb48709025-1ffe3bb22a.zip/node_modules/event-target-shim/",\ 4083 "packageDependencies": [\ 4084 ["event-target-shim", "npm:5.0.1"]\ 4085 ],\ 4086 "linkType": "HARD"\ 4087 }]\ 4088 ]],\ 4089 ["events", [\ 4090 ["npm:3.3.0", {\ 4091 "packageLocation": "./.yarn/cache/events-npm-3.3.0-c280bc7e48-f6f487ad21.zip/node_modules/events/",\ 4092 "packageDependencies": [\ 4093 ["events", "npm:3.3.0"]\ 4094 ],\ 4095 "linkType": "HARD"\ 4096 }]\ 4097 ]],\ 4098 ["execa", [\ 4099 ["npm:5.1.1", {\ 4100 "packageLocation": "./.yarn/cache/execa-npm-5.1.1-191347acf5-fba9022c8c.zip/node_modules/execa/",\ 4101 "packageDependencies": [\ 4102 ["execa", "npm:5.1.1"],\ 4103 ["cross-spawn", "npm:7.0.3"],\ 4104 ["get-stream", "npm:6.0.1"],\ 4105 ["human-signals", "npm:2.1.0"],\ 4106 ["is-stream", "npm:2.0.1"],\ 4107 ["merge-stream", "npm:2.0.0"],\ 4108 ["npm-run-path", "npm:4.0.1"],\ 4109 ["onetime", "npm:5.1.2"],\ 4110 ["signal-exit", "npm:3.0.7"],\ 4111 ["strip-final-newline", "npm:2.0.0"]\ 4112 ],\ 4113 "linkType": "HARD"\ 4114 }]\ 4115 ]],\ 4116 ["exit", [\ 4117 ["npm:0.1.2", {\ 4118 "packageLocation": "./.yarn/cache/exit-npm-0.1.2-ef3761a67d-abc407f07a.zip/node_modules/exit/",\ 4119 "packageDependencies": [\ 4120 ["exit", "npm:0.1.2"]\ 4121 ],\ 4122 "linkType": "HARD"\ 4123 }]\ 4124 ]],\ 4125 ["expect", [\ 4126 ["npm:29.3.1", {\ 4127 "packageLocation": "./.yarn/cache/expect-npm-29.3.1-2892df60b8-e9588c2a43.zip/node_modules/expect/",\ 4128 "packageDependencies": [\ 4129 ["expect", "npm:29.3.1"],\ 4130 ["@jest/expect-utils", "npm:29.3.1"],\ 4131 ["jest-get-type", "npm:29.2.0"],\ 4132 ["jest-matcher-utils", "npm:29.3.1"],\ 4133 ["jest-message-util", "npm:29.3.1"],\ 4134 ["jest-util", "npm:29.3.1"]\ 4135 ],\ 4136 "linkType": "HARD"\ 4137 }]\ 4138 ]],\ 4139 ["fast-deep-equal", [\ 4140 ["npm:3.1.3", {\ 4141 "packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip/node_modules/fast-deep-equal/",\ 4142 "packageDependencies": [\ 4143 ["fast-deep-equal", "npm:3.1.3"]\ 4144 ],\ 4145 "linkType": "HARD"\ 4146 }]\ 4147 ]],\ 4148 ["fast-glob", [\ 4149 ["npm:3.2.12", {\ 4150 "packageLocation": "./.yarn/cache/fast-glob-npm-3.2.12-162763bbae-0b1990f6ce.zip/node_modules/fast-glob/",\ 4151 "packageDependencies": [\ 4152 ["fast-glob", "npm:3.2.12"],\ 4153 ["@nodelib/fs.stat", "npm:2.0.5"],\ 4154 ["@nodelib/fs.walk", "npm:1.2.8"],\ 4155 ["glob-parent", "npm:5.1.2"],\ 4156 ["merge2", "npm:1.4.1"],\ 4157 ["micromatch", "npm:4.0.5"]\ 4158 ],\ 4159 "linkType": "HARD"\ 4160 }]\ 4161 ]],\ 4162 ["fast-json-stable-stringify", [\ 4163 ["npm:2.1.0", {\ 4164 "packageLocation": "./.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-b191531e36.zip/node_modules/fast-json-stable-stringify/",\ 4165 "packageDependencies": [\ 4166 ["fast-json-stable-stringify", "npm:2.1.0"]\ 4167 ],\ 4168 "linkType": "HARD"\ 4169 }]\ 4170 ]],\ 4171 ["fast-levenshtein", [\ 4172 ["npm:2.0.6", {\ 4173 "packageLocation": "./.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-92cfec0a8d.zip/node_modules/fast-levenshtein/",\ 4174 "packageDependencies": [\ 4175 ["fast-levenshtein", "npm:2.0.6"]\ 4176 ],\ 4177 "linkType": "HARD"\ 4178 }]\ 4179 ]],\ 4180 ["fast-redact", [\ 4181 ["npm:3.1.2", {\ 4182 "packageLocation": "./.yarn/cache/fast-redact-npm-3.1.2-e090ce0184-a30eb6b683.zip/node_modules/fast-redact/",\ 4183 "packageDependencies": [\ 4184 ["fast-redact", "npm:3.1.2"]\ 4185 ],\ 4186 "linkType": "HARD"\ 4187 }]\ 4188 ]],\ 4189 ["fastq", [\ 4190 ["npm:1.15.0", {\ 4191 "packageLocation": "./.yarn/cache/fastq-npm-1.15.0-1013f6514e-0170e6bfcd.zip/node_modules/fastq/",\ 4192 "packageDependencies": [\ 4193 ["fastq", "npm:1.15.0"],\ 4194 ["reusify", "npm:1.0.4"]\ 4195 ],\ 4196 "linkType": "HARD"\ 4197 }]\ 4198 ]],\ 4199 ["fb-watchman", [\ 4200 ["npm:2.0.2", {\ 4201 "packageLocation": "./.yarn/cache/fb-watchman-npm-2.0.2-bcb6f8f831-b15a124cef.zip/node_modules/fb-watchman/",\ 4202 "packageDependencies": [\ 4203 ["fb-watchman", "npm:2.0.2"],\ 4204 ["bser", "npm:2.1.1"]\ 4205 ],\ 4206 "linkType": "HARD"\ 4207 }]\ 4208 ]],\ 4209 ["file-entry-cache", [\ 4210 ["npm:6.0.1", {\ 4211 "packageLocation": "./.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-f49701feaa.zip/node_modules/file-entry-cache/",\ 4212 "packageDependencies": [\ 4213 ["file-entry-cache", "npm:6.0.1"],\ 4214 ["flat-cache", "npm:3.0.4"]\ 4215 ],\ 4216 "linkType": "HARD"\ 4217 }]\ 4218 ]],\ 4219 ["fill-range", [\ 4220 ["npm:7.0.1", {\ 4221 "packageLocation": "./.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip/node_modules/fill-range/",\ 4222 "packageDependencies": [\ 4223 ["fill-range", "npm:7.0.1"],\ 4224 ["to-regex-range", "npm:5.0.1"]\ 4225 ],\ 4226 "linkType": "HARD"\ 4227 }]\ 4228 ]],\ 4229 ["find-up", [\ 4230 ["npm:4.1.0", {\ 4231 "packageLocation": "./.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip/node_modules/find-up/",\ 4232 "packageDependencies": [\ 4233 ["find-up", "npm:4.1.0"],\ 4234 ["locate-path", "npm:5.0.0"],\ 4235 ["path-exists", "npm:4.0.0"]\ 4236 ],\ 4237 "linkType": "HARD"\ 4238 }],\ 4239 ["npm:5.0.0", {\ 4240 "packageLocation": "./.yarn/cache/find-up-npm-5.0.0-e03e9b796d-07955e3573.zip/node_modules/find-up/",\ 4241 "packageDependencies": [\ 4242 ["find-up", "npm:5.0.0"],\ 4243 ["locate-path", "npm:6.0.0"],\ 4244 ["path-exists", "npm:4.0.0"]\ 4245 ],\ 4246 "linkType": "HARD"\ 4247 }]\ 4248 ]],\ 4249 ["flat-cache", [\ 4250 ["npm:3.0.4", {\ 4251 "packageLocation": "./.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-4fdd10ecbc.zip/node_modules/flat-cache/",\ 4252 "packageDependencies": [\ 4253 ["flat-cache", "npm:3.0.4"],\ 4254 ["flatted", "npm:3.2.7"],\ 4255 ["rimraf", "npm:3.0.2"]\ 4256 ],\ 4257 "linkType": "HARD"\ 4258 }]\ 4259 ]],\ 4260 ["flatted", [\ 4261 ["npm:3.2.7", {\ 4262 "packageLocation": "./.yarn/cache/flatted-npm-3.2.7-0da10b7c56-427633049d.zip/node_modules/flatted/",\ 4263 "packageDependencies": [\ 4264 ["flatted", "npm:3.2.7"]\ 4265 ],\ 4266 "linkType": "HARD"\ 4267 }]\ 4268 ]],\ 4269 ["for-each", [\ 4270 ["npm:0.3.3", {\ 4271 "packageLocation": "./.yarn/cache/for-each-npm-0.3.3-0010ca8cdd-6c48ff2bc6.zip/node_modules/for-each/",\ 4272 "packageDependencies": [\ 4273 ["for-each", "npm:0.3.3"],\ 4274 ["is-callable", "npm:1.2.7"]\ 4275 ],\ 4276 "linkType": "HARD"\ 4277 }]\ 4278 ]],\ 4279 ["form-data", [\ 4280 ["npm:4.0.0", {\ 4281 "packageLocation": "./.yarn/cache/form-data-npm-4.0.0-916facec2d-01135bf867.zip/node_modules/form-data/",\ 4282 "packageDependencies": [\ 4283 ["form-data", "npm:4.0.0"],\ 4284 ["asynckit", "npm:0.4.0"],\ 4285 ["combined-stream", "npm:1.0.8"],\ 4286 ["mime-types", "npm:2.1.35"]\ 4287 ],\ 4288 "linkType": "HARD"\ 4289 }]\ 4290 ]],\ 4291 ["fs-minipass", [\ 4292 ["npm:2.1.0", {\ 4293 "packageLocation": "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip/node_modules/fs-minipass/",\ 4294 "packageDependencies": [\ 4295 ["fs-minipass", "npm:2.1.0"],\ 4296 ["minipass", "npm:3.3.6"]\ 4297 ],\ 4298 "linkType": "HARD"\ 4299 }]\ 4300 ]],\ 4301 ["fs.realpath", [\ 4302 ["npm:1.0.0", {\ 4303 "packageLocation": "./.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip/node_modules/fs.realpath/",\ 4304 "packageDependencies": [\ 4305 ["fs.realpath", "npm:1.0.0"]\ 4306 ],\ 4307 "linkType": "HARD"\ 4308 }]\ 4309 ]],\ 4310 ["fsevents", [\ 4311 ["patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=df0bf1", {\ 4312 "packageLocation": "./.yarn/unplugged/fsevents-patch-2882183fbf/node_modules/fsevents/",\ 4313 "packageDependencies": [\ 4314 ["fsevents", "patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=df0bf1"],\ 4315 ["node-gyp", "npm:9.3.1"]\ 4316 ],\ 4317 "linkType": "HARD"\ 4318 }]\ 4319 ]],\ 4320 ["function-bind", [\ 4321 ["npm:1.1.1", {\ 4322 "packageLocation": "./.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip/node_modules/function-bind/",\ 4323 "packageDependencies": [\ 4324 ["function-bind", "npm:1.1.1"]\ 4325 ],\ 4326 "linkType": "HARD"\ 4327 }]\ 4328 ]],\ 4329 ["function.prototype.name", [\ 4330 ["npm:1.1.5", {\ 4331 "packageLocation": "./.yarn/cache/function.prototype.name-npm-1.1.5-e776a642bb-acd21d733a.zip/node_modules/function.prototype.name/",\ 4332 "packageDependencies": [\ 4333 ["function.prototype.name", "npm:1.1.5"],\ 4334 ["call-bind", "npm:1.0.2"],\ 4335 ["define-properties", "npm:1.1.4"],\ 4336 ["es-abstract", "npm:1.21.1"],\ 4337 ["functions-have-names", "npm:1.2.3"]\ 4338 ],\ 4339 "linkType": "HARD"\ 4340 }]\ 4341 ]],\ 4342 ["functions-have-names", [\ 4343 ["npm:1.2.3", {\ 4344 "packageLocation": "./.yarn/cache/functions-have-names-npm-1.2.3-e5cf1e2208-c3f1f5ba20.zip/node_modules/functions-have-names/",\ 4345 "packageDependencies": [\ 4346 ["functions-have-names", "npm:1.2.3"]\ 4347 ],\ 4348 "linkType": "HARD"\ 4349 }]\ 4350 ]],\ 4351 ["gauge", [\ 4352 ["npm:3.0.2", {\ 4353 "packageLocation": "./.yarn/cache/gauge-npm-3.0.2-9e22f7af9e-81296c00c7.zip/node_modules/gauge/",\ 4354 "packageDependencies": [\ 4355 ["gauge", "npm:3.0.2"],\ 4356 ["aproba", "npm:2.0.0"],\ 4357 ["color-support", "npm:1.1.3"],\ 4358 ["console-control-strings", "npm:1.1.0"],\ 4359 ["has-unicode", "npm:2.0.1"],\ 4360 ["object-assign", "npm:4.1.1"],\ 4361 ["signal-exit", "npm:3.0.7"],\ 4362 ["string-width", "npm:4.2.3"],\ 4363 ["strip-ansi", "npm:6.0.1"],\ 4364 ["wide-align", "npm:1.1.5"]\ 4365 ],\ 4366 "linkType": "HARD"\ 4367 }],\ 4368 ["npm:4.0.4", {\ 4369 "packageLocation": "./.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip/node_modules/gauge/",\ 4370 "packageDependencies": [\ 4371 ["gauge", "npm:4.0.4"],\ 4372 ["aproba", "npm:2.0.0"],\ 4373 ["color-support", "npm:1.1.3"],\ 4374 ["console-control-strings", "npm:1.1.0"],\ 4375 ["has-unicode", "npm:2.0.1"],\ 4376 ["signal-exit", "npm:3.0.7"],\ 4377 ["string-width", "npm:4.2.3"],\ 4378 ["strip-ansi", "npm:6.0.1"],\ 4379 ["wide-align", "npm:1.1.5"]\ 4380 ],\ 4381 "linkType": "HARD"\ 4382 }]\ 4383 ]],\ 4384 ["generate-function", [\ 4385 ["npm:2.3.1", {\ 4386 "packageLocation": "./.yarn/cache/generate-function-npm-2.3.1-c839dc559c-652f083de2.zip/node_modules/generate-function/",\ 4387 "packageDependencies": [\ 4388 ["generate-function", "npm:2.3.1"],\ 4389 ["is-property", "npm:1.0.2"]\ 4390 ],\ 4391 "linkType": "HARD"\ 4392 }]\ 4393 ]],\ 4394 ["generic-pool", [\ 4395 ["npm:3.9.0", {\ 4396 "packageLocation": "./.yarn/cache/generic-pool-npm-3.9.0-21fff1a77f-3d89e9b201.zip/node_modules/generic-pool/",\ 4397 "packageDependencies": [\ 4398 ["generic-pool", "npm:3.9.0"]\ 4399 ],\ 4400 "linkType": "HARD"\ 4401 }]\ 4402 ]],\ 4403 ["gensync", [\ 4404 ["npm:1.0.0-beta.2", {\ 4405 "packageLocation": "./.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-a7437e58c6.zip/node_modules/gensync/",\ 4406 "packageDependencies": [\ 4407 ["gensync", "npm:1.0.0-beta.2"]\ 4408 ],\ 4409 "linkType": "HARD"\ 4410 }]\ 4411 ]],\ 4412 ["get-caller-file", [\ 4413 ["npm:2.0.5", {\ 4414 "packageLocation": "./.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip/node_modules/get-caller-file/",\ 4415 "packageDependencies": [\ 4416 ["get-caller-file", "npm:2.0.5"]\ 4417 ],\ 4418 "linkType": "HARD"\ 4419 }]\ 4420 ]],\ 4421 ["get-intrinsic", [\ 4422 ["npm:1.1.3", {\ 4423 "packageLocation": "./.yarn/cache/get-intrinsic-npm-1.1.3-b6c7bd1010-152d79e872.zip/node_modules/get-intrinsic/",\ 4424 "packageDependencies": [\ 4425 ["get-intrinsic", "npm:1.1.3"],\ 4426 ["function-bind", "npm:1.1.1"],\ 4427 ["has", "npm:1.0.3"],\ 4428 ["has-symbols", "npm:1.0.3"]\ 4429 ],\ 4430 "linkType": "HARD"\ 4431 }]\ 4432 ]],\ 4433 ["get-package-type", [\ 4434 ["npm:0.1.0", {\ 4435 "packageLocation": "./.yarn/cache/get-package-type-npm-0.1.0-6c70cdc8ab-bba0811116.zip/node_modules/get-package-type/",\ 4436 "packageDependencies": [\ 4437 ["get-package-type", "npm:0.1.0"]\ 4438 ],\ 4439 "linkType": "HARD"\ 4440 }]\ 4441 ]],\ 4442 ["get-stream", [\ 4443 ["npm:6.0.1", {\ 4444 "packageLocation": "./.yarn/cache/get-stream-npm-6.0.1-83e51a4642-e04ecece32.zip/node_modules/get-stream/",\ 4445 "packageDependencies": [\ 4446 ["get-stream", "npm:6.0.1"]\ 4447 ],\ 4448 "linkType": "HARD"\ 4449 }]\ 4450 ]],\ 4451 ["get-symbol-description", [\ 4452 ["npm:1.0.0", {\ 4453 "packageLocation": "./.yarn/cache/get-symbol-description-npm-1.0.0-9c95a4bc1f-9ceff8fe96.zip/node_modules/get-symbol-description/",\ 4454 "packageDependencies": [\ 4455 ["get-symbol-description", "npm:1.0.0"],\ 4456 ["call-bind", "npm:1.0.2"],\ 4457 ["get-intrinsic", "npm:1.1.3"]\ 4458 ],\ 4459 "linkType": "HARD"\ 4460 }]\ 4461 ]],\ 4462 ["get-tsconfig", [\ 4463 ["npm:4.3.0", {\ 4464 "packageLocation": "./.yarn/cache/get-tsconfig-npm-4.3.0-f27579e1f4-2597aab99a.zip/node_modules/get-tsconfig/",\ 4465 "packageDependencies": [\ 4466 ["get-tsconfig", "npm:4.3.0"]\ 4467 ],\ 4468 "linkType": "HARD"\ 4469 }]\ 4470 ]],\ 4471 ["glob", [\ 4472 ["npm:7.1.7", {\ 4473 "packageLocation": "./.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip/node_modules/glob/",\ 4474 "packageDependencies": [\ 4475 ["glob", "npm:7.1.7"],\ 4476 ["fs.realpath", "npm:1.0.0"],\ 4477 ["inflight", "npm:1.0.6"],\ 4478 ["inherits", "npm:2.0.4"],\ 4479 ["minimatch", "npm:3.1.2"],\ 4480 ["once", "npm:1.4.0"],\ 4481 ["path-is-absolute", "npm:1.0.1"]\ 4482 ],\ 4483 "linkType": "HARD"\ 4484 }],\ 4485 ["npm:7.2.3", {\ 4486 "packageLocation": "./.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip/node_modules/glob/",\ 4487 "packageDependencies": [\ 4488 ["glob", "npm:7.2.3"],\ 4489 ["fs.realpath", "npm:1.0.0"],\ 4490 ["inflight", "npm:1.0.6"],\ 4491 ["inherits", "npm:2.0.4"],\ 4492 ["minimatch", "npm:3.1.2"],\ 4493 ["once", "npm:1.4.0"],\ 4494 ["path-is-absolute", "npm:1.0.1"]\ 4495 ],\ 4496 "linkType": "HARD"\ 4497 }],\ 4498 ["npm:8.1.0", {\ 4499 "packageLocation": "./.yarn/cache/glob-npm-8.1.0-65f64af8b1-92fbea3221.zip/node_modules/glob/",\ 4500 "packageDependencies": [\ 4501 ["glob", "npm:8.1.0"],\ 4502 ["fs.realpath", "npm:1.0.0"],\ 4503 ["inflight", "npm:1.0.6"],\ 4504 ["inherits", "npm:2.0.4"],\ 4505 ["minimatch", "npm:5.1.4"],\ 4506 ["once", "npm:1.4.0"]\ 4507 ],\ 4508 "linkType": "HARD"\ 4509 }]\ 4510 ]],\ 4511 ["glob-parent", [\ 4512 ["npm:5.1.2", {\ 4513 "packageLocation": "./.yarn/cache/glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip/node_modules/glob-parent/",\ 4514 "packageDependencies": [\ 4515 ["glob-parent", "npm:5.1.2"],\ 4516 ["is-glob", "npm:4.0.3"]\ 4517 ],\ 4518 "linkType": "HARD"\ 4519 }],\ 4520 ["npm:6.0.2", {\ 4521 "packageLocation": "./.yarn/cache/glob-parent-npm-6.0.2-2cbef12738-c13ee97978.zip/node_modules/glob-parent/",\ 4522 "packageDependencies": [\ 4523 ["glob-parent", "npm:6.0.2"],\ 4524 ["is-glob", "npm:4.0.3"]\ 4525 ],\ 4526 "linkType": "HARD"\ 4527 }]\ 4528 ]],\ 4529 ["globals", [\ 4530 ["npm:11.12.0", {\ 4531 "packageLocation": "./.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip/node_modules/globals/",\ 4532 "packageDependencies": [\ 4533 ["globals", "npm:11.12.0"]\ 4534 ],\ 4535 "linkType": "HARD"\ 4536 }],\ 4537 ["npm:13.19.0", {\ 4538 "packageLocation": "./.yarn/cache/globals-npm-13.19.0-a63c75a2dd-a000dbd00b.zip/node_modules/globals/",\ 4539 "packageDependencies": [\ 4540 ["globals", "npm:13.19.0"],\ 4541 ["type-fest", "npm:0.20.2"]\ 4542 ],\ 4543 "linkType": "HARD"\ 4544 }]\ 4545 ]],\ 4546 ["globalthis", [\ 4547 ["npm:1.0.3", {\ 4548 "packageLocation": "./.yarn/cache/globalthis-npm-1.0.3-96cd56020d-fbd7d760dc.zip/node_modules/globalthis/",\ 4549 "packageDependencies": [\ 4550 ["globalthis", "npm:1.0.3"],\ 4551 ["define-properties", "npm:1.1.4"]\ 4552 ],\ 4553 "linkType": "HARD"\ 4554 }]\ 4555 ]],\ 4556 ["globalyzer", [\ 4557 ["npm:0.1.0", {\ 4558 "packageLocation": "./.yarn/cache/globalyzer-npm-0.1.0-3982d25961-419a0f95ba.zip/node_modules/globalyzer/",\ 4559 "packageDependencies": [\ 4560 ["globalyzer", "npm:0.1.0"]\ 4561 ],\ 4562 "linkType": "HARD"\ 4563 }]\ 4564 ]],\ 4565 ["globby", [\ 4566 ["npm:11.1.0", {\ 4567 "packageLocation": "./.yarn/cache/globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip/node_modules/globby/",\ 4568 "packageDependencies": [\ 4569 ["globby", "npm:11.1.0"],\ 4570 ["array-union", "npm:2.1.0"],\ 4571 ["dir-glob", "npm:3.0.1"],\ 4572 ["fast-glob", "npm:3.2.12"],\ 4573 ["ignore", "npm:5.2.4"],\ 4574 ["merge2", "npm:1.4.1"],\ 4575 ["slash", "npm:3.0.0"]\ 4576 ],\ 4577 "linkType": "HARD"\ 4578 }],\ 4579 ["npm:13.1.3", {\ 4580 "packageLocation": "./.yarn/cache/globby-npm-13.1.3-3b0bb18d0b-93f06e0200.zip/node_modules/globby/",\ 4581 "packageDependencies": [\ 4582 ["globby", "npm:13.1.3"],\ 4583 ["dir-glob", "npm:3.0.1"],\ 4584 ["fast-glob", "npm:3.2.12"],\ 4585 ["ignore", "npm:5.2.4"],\ 4586 ["merge2", "npm:1.4.1"],\ 4587 ["slash", "npm:4.0.0"]\ 4588 ],\ 4589 "linkType": "HARD"\ 4590 }]\ 4591 ]],\ 4592 ["globrex", [\ 4593 ["npm:0.1.2", {\ 4594 "packageLocation": "./.yarn/cache/globrex-npm-0.1.2-ddda94f2d0-adca162494.zip/node_modules/globrex/",\ 4595 "packageDependencies": [\ 4596 ["globrex", "npm:0.1.2"]\ 4597 ],\ 4598 "linkType": "HARD"\ 4599 }]\ 4600 ]],\ 4601 ["goober", [\ 4602 ["npm:2.1.11", {\ 4603 "packageLocation": "./.yarn/cache/goober-npm-2.1.11-7a0d27368b-c37c14f476.zip/node_modules/goober/",\ 4604 "packageDependencies": [\ 4605 ["goober", "npm:2.1.11"]\ 4606 ],\ 4607 "linkType": "SOFT"\ 4608 }],\ 4609 ["virtual:fb9c7734729e35124b57143a9a3090a64e7de6291d24560db9b56f966d0cf34bbc3d7321078118671e0aae2410d649021f8bac248a2e89fc41bf77987f9c3d18#npm:2.1.11", {\ 4610 "packageLocation": "./.yarn/__virtual__/goober-virtual-6bcde5f80c/0/cache/goober-npm-2.1.11-7a0d27368b-c37c14f476.zip/node_modules/goober/",\ 4611 "packageDependencies": [\ 4612 ["goober", "virtual:fb9c7734729e35124b57143a9a3090a64e7de6291d24560db9b56f966d0cf34bbc3d7321078118671e0aae2410d649021f8bac248a2e89fc41bf77987f9c3d18#npm:2.1.11"],\ 4613 ["@types/csstype", null],\ 4614 ["csstype", null]\ 4615 ],\ 4616 "packagePeers": [\ 4617 "@types/csstype",\ 4618 "csstype"\ 4619 ],\ 4620 "linkType": "HARD"\ 4621 }]\ 4622 ]],\ 4623 ["gopd", [\ 4624 ["npm:1.0.1", {\ 4625 "packageLocation": "./.yarn/cache/gopd-npm-1.0.1-10c1d0b534-a5ccfb8806.zip/node_modules/gopd/",\ 4626 "packageDependencies": [\ 4627 ["gopd", "npm:1.0.1"],\ 4628 ["get-intrinsic", "npm:1.1.3"]\ 4629 ],\ 4630 "linkType": "HARD"\ 4631 }]\ 4632 ]],\ 4633 ["graceful-fs", [\ 4634 ["npm:4.2.10", {\ 4635 "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.10-79c70989ca-3f109d70ae.zip/node_modules/graceful-fs/",\ 4636 "packageDependencies": [\ 4637 ["graceful-fs", "npm:4.2.10"]\ 4638 ],\ 4639 "linkType": "HARD"\ 4640 }]\ 4641 ]],\ 4642 ["grapheme-splitter", [\ 4643 ["npm:1.0.4", {\ 4644 "packageLocation": "./.yarn/cache/grapheme-splitter-npm-1.0.4-648f2bf509-0c22ec54de.zip/node_modules/grapheme-splitter/",\ 4645 "packageDependencies": [\ 4646 ["grapheme-splitter", "npm:1.0.4"]\ 4647 ],\ 4648 "linkType": "HARD"\ 4649 }]\ 4650 ]],\ 4651 ["handlebars", [\ 4652 ["npm:4.7.7", {\ 4653 "packageLocation": "./.yarn/cache/handlebars-npm-4.7.7-a9ccfabf80-1e79a43f5e.zip/node_modules/handlebars/",\ 4654 "packageDependencies": [\ 4655 ["handlebars", "npm:4.7.7"],\ 4656 ["minimist", "npm:1.2.7"],\ 4657 ["neo-async", "npm:2.6.2"],\ 4658 ["source-map", "npm:0.6.1"],\ 4659 ["uglify-js", "npm:3.17.4"],\ 4660 ["wordwrap", "npm:1.0.0"]\ 4661 ],\ 4662 "linkType": "HARD"\ 4663 }]\ 4664 ]],\ 4665 ["has", [\ 4666 ["npm:1.0.3", {\ 4667 "packageLocation": "./.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip/node_modules/has/",\ 4668 "packageDependencies": [\ 4669 ["has", "npm:1.0.3"],\ 4670 ["function-bind", "npm:1.1.1"]\ 4671 ],\ 4672 "linkType": "HARD"\ 4673 }]\ 4674 ]],\ 4675 ["has-bigints", [\ 4676 ["npm:1.0.2", {\ 4677 "packageLocation": "./.yarn/cache/has-bigints-npm-1.0.2-52732e614d-390e31e7be.zip/node_modules/has-bigints/",\ 4678 "packageDependencies": [\ 4679 ["has-bigints", "npm:1.0.2"]\ 4680 ],\ 4681 "linkType": "HARD"\ 4682 }]\ 4683 ]],\ 4684 ["has-flag", [\ 4685 ["npm:3.0.0", {\ 4686 "packageLocation": "./.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip/node_modules/has-flag/",\ 4687 "packageDependencies": [\ 4688 ["has-flag", "npm:3.0.0"]\ 4689 ],\ 4690 "linkType": "HARD"\ 4691 }],\ 4692 ["npm:4.0.0", {\ 4693 "packageLocation": "./.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/",\ 4694 "packageDependencies": [\ 4695 ["has-flag", "npm:4.0.0"]\ 4696 ],\ 4697 "linkType": "HARD"\ 4698 }]\ 4699 ]],\ 4700 ["has-property-descriptors", [\ 4701 ["npm:1.0.0", {\ 4702 "packageLocation": "./.yarn/cache/has-property-descriptors-npm-1.0.0-56289b918d-a6d3f0a266.zip/node_modules/has-property-descriptors/",\ 4703 "packageDependencies": [\ 4704 ["has-property-descriptors", "npm:1.0.0"],\ 4705 ["get-intrinsic", "npm:1.1.3"]\ 4706 ],\ 4707 "linkType": "HARD"\ 4708 }]\ 4709 ]],\ 4710 ["has-proto", [\ 4711 ["npm:1.0.1", {\ 4712 "packageLocation": "./.yarn/cache/has-proto-npm-1.0.1-631ea9d820-febc5b5b53.zip/node_modules/has-proto/",\ 4713 "packageDependencies": [\ 4714 ["has-proto", "npm:1.0.1"]\ 4715 ],\ 4716 "linkType": "HARD"\ 4717 }]\ 4718 ]],\ 4719 ["has-symbols", [\ 4720 ["npm:1.0.3", {\ 4721 "packageLocation": "./.yarn/cache/has-symbols-npm-1.0.3-1986bff2c4-a054c40c63.zip/node_modules/has-symbols/",\ 4722 "packageDependencies": [\ 4723 ["has-symbols", "npm:1.0.3"]\ 4724 ],\ 4725 "linkType": "HARD"\ 4726 }]\ 4727 ]],\ 4728 ["has-tostringtag", [\ 4729 ["npm:1.0.0", {\ 4730 "packageLocation": "./.yarn/cache/has-tostringtag-npm-1.0.0-b1fcf3ab55-cc12eb28cb.zip/node_modules/has-tostringtag/",\ 4731 "packageDependencies": [\ 4732 ["has-tostringtag", "npm:1.0.0"],\ 4733 ["has-symbols", "npm:1.0.3"]\ 4734 ],\ 4735 "linkType": "HARD"\ 4736 }]\ 4737 ]],\ 4738 ["has-unicode", [\ 4739 ["npm:2.0.1", {\ 4740 "packageLocation": "./.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip/node_modules/has-unicode/",\ 4741 "packageDependencies": [\ 4742 ["has-unicode", "npm:2.0.1"]\ 4743 ],\ 4744 "linkType": "HARD"\ 4745 }]\ 4746 ]],\ 4747 ["hoist-non-react-statics", [\ 4748 ["npm:3.3.2", {\ 4749 "packageLocation": "./.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-b153827042.zip/node_modules/hoist-non-react-statics/",\ 4750 "packageDependencies": [\ 4751 ["hoist-non-react-statics", "npm:3.3.2"],\ 4752 ["react-is", "npm:16.13.1"]\ 4753 ],\ 4754 "linkType": "HARD"\ 4755 }]\ 4756 ]],\ 4757 ["html-encoding-sniffer", [\ 4758 ["npm:3.0.0", {\ 4759 "packageLocation": "./.yarn/cache/html-encoding-sniffer-npm-3.0.0-daac3dfe41-8d806aa004.zip/node_modules/html-encoding-sniffer/",\ 4760 "packageDependencies": [\ 4761 ["html-encoding-sniffer", "npm:3.0.0"],\ 4762 ["whatwg-encoding", "npm:2.0.0"]\ 4763 ],\ 4764 "linkType": "HARD"\ 4765 }]\ 4766 ]],\ 4767 ["html-escaper", [\ 4768 ["npm:2.0.2", {\ 4769 "packageLocation": "./.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-d2df2da3ad.zip/node_modules/html-escaper/",\ 4770 "packageDependencies": [\ 4771 ["html-escaper", "npm:2.0.2"]\ 4772 ],\ 4773 "linkType": "HARD"\ 4774 }]\ 4775 ]],\ 4776 ["http-cache-semantics", [\ 4777 ["npm:4.1.0", {\ 4778 "packageLocation": "./.yarn/cache/http-cache-semantics-npm-4.1.0-860520a31f-974de94a81.zip/node_modules/http-cache-semantics/",\ 4779 "packageDependencies": [\ 4780 ["http-cache-semantics", "npm:4.1.0"]\ 4781 ],\ 4782 "linkType": "HARD"\ 4783 }]\ 4784 ]],\ 4785 ["http-proxy-agent", [\ 4786 ["npm:5.0.0", {\ 4787 "packageLocation": "./.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip/node_modules/http-proxy-agent/",\ 4788 "packageDependencies": [\ 4789 ["http-proxy-agent", "npm:5.0.0"],\ 4790 ["@tootallnate/once", "npm:2.0.0"],\ 4791 ["agent-base", "npm:6.0.2"],\ 4792 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"]\ 4793 ],\ 4794 "linkType": "HARD"\ 4795 }]\ 4796 ]],\ 4797 ["https-proxy-agent", [\ 4798 ["npm:5.0.1", {\ 4799 "packageLocation": "./.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip/node_modules/https-proxy-agent/",\ 4800 "packageDependencies": [\ 4801 ["https-proxy-agent", "npm:5.0.1"],\ 4802 ["agent-base", "npm:6.0.2"],\ 4803 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"]\ 4804 ],\ 4805 "linkType": "HARD"\ 4806 }]\ 4807 ]],\ 4808 ["human-signals", [\ 4809 ["npm:2.1.0", {\ 4810 "packageLocation": "./.yarn/cache/human-signals-npm-2.1.0-f75815481d-b87fd89fce.zip/node_modules/human-signals/",\ 4811 "packageDependencies": [\ 4812 ["human-signals", "npm:2.1.0"]\ 4813 ],\ 4814 "linkType": "HARD"\ 4815 }]\ 4816 ]],\ 4817 ["humanize-ms", [\ 4818 ["npm:1.2.1", {\ 4819 "packageLocation": "./.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip/node_modules/humanize-ms/",\ 4820 "packageDependencies": [\ 4821 ["humanize-ms", "npm:1.2.1"],\ 4822 ["ms", "npm:2.1.3"]\ 4823 ],\ 4824 "linkType": "HARD"\ 4825 }]\ 4826 ]],\ 4827 ["iconv-lite", [\ 4828 ["npm:0.6.3", {\ 4829 "packageLocation": "./.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip/node_modules/iconv-lite/",\ 4830 "packageDependencies": [\ 4831 ["iconv-lite", "npm:0.6.3"],\ 4832 ["safer-buffer", "npm:2.1.2"]\ 4833 ],\ 4834 "linkType": "HARD"\ 4835 }]\ 4836 ]],\ 4837 ["ieee754", [\ 4838 ["npm:1.2.1", {\ 4839 "packageLocation": "./.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip/node_modules/ieee754/",\ 4840 "packageDependencies": [\ 4841 ["ieee754", "npm:1.2.1"]\ 4842 ],\ 4843 "linkType": "HARD"\ 4844 }]\ 4845 ]],\ 4846 ["ignore", [\ 4847 ["npm:5.2.4", {\ 4848 "packageLocation": "./.yarn/cache/ignore-npm-5.2.4-fbe6e989e5-3d4c309c60.zip/node_modules/ignore/",\ 4849 "packageDependencies": [\ 4850 ["ignore", "npm:5.2.4"]\ 4851 ],\ 4852 "linkType": "HARD"\ 4853 }]\ 4854 ]],\ 4855 ["immutable", [\ 4856 ["npm:4.2.2", {\ 4857 "packageLocation": "./.yarn/cache/immutable-npm-4.2.2-613ea9d8d9-4d6437ea93.zip/node_modules/immutable/",\ 4858 "packageDependencies": [\ 4859 ["immutable", "npm:4.2.2"]\ 4860 ],\ 4861 "linkType": "HARD"\ 4862 }]\ 4863 ]],\ 4864 ["import-fresh", [\ 4865 ["npm:3.3.0", {\ 4866 "packageLocation": "./.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip/node_modules/import-fresh/",\ 4867 "packageDependencies": [\ 4868 ["import-fresh", "npm:3.3.0"],\ 4869 ["parent-module", "npm:1.0.1"],\ 4870 ["resolve-from", "npm:4.0.0"]\ 4871 ],\ 4872 "linkType": "HARD"\ 4873 }]\ 4874 ]],\ 4875 ["import-local", [\ 4876 ["npm:3.1.0", {\ 4877 "packageLocation": "./.yarn/cache/import-local-npm-3.1.0-8960af5e51-bfcdb63b5e.zip/node_modules/import-local/",\ 4878 "packageDependencies": [\ 4879 ["import-local", "npm:3.1.0"],\ 4880 ["pkg-dir", "npm:4.2.0"],\ 4881 ["resolve-cwd", "npm:3.0.0"]\ 4882 ],\ 4883 "linkType": "HARD"\ 4884 }]\ 4885 ]],\ 4886 ["imurmurhash", [\ 4887 ["npm:0.1.4", {\ 4888 "packageLocation": "./.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip/node_modules/imurmurhash/",\ 4889 "packageDependencies": [\ 4890 ["imurmurhash", "npm:0.1.4"]\ 4891 ],\ 4892 "linkType": "HARD"\ 4893 }]\ 4894 ]],\ 4895 ["indent-string", [\ 4896 ["npm:4.0.0", {\ 4897 "packageLocation": "./.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip/node_modules/indent-string/",\ 4898 "packageDependencies": [\ 4899 ["indent-string", "npm:4.0.0"]\ 4900 ],\ 4901 "linkType": "HARD"\ 4902 }]\ 4903 ]],\ 4904 ["infer-owner", [\ 4905 ["npm:1.0.4", {\ 4906 "packageLocation": "./.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip/node_modules/infer-owner/",\ 4907 "packageDependencies": [\ 4908 ["infer-owner", "npm:1.0.4"]\ 4909 ],\ 4910 "linkType": "HARD"\ 4911 }]\ 4912 ]],\ 4913 ["inflight", [\ 4914 ["npm:1.0.6", {\ 4915 "packageLocation": "./.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip/node_modules/inflight/",\ 4916 "packageDependencies": [\ 4917 ["inflight", "npm:1.0.6"],\ 4918 ["once", "npm:1.4.0"],\ 4919 ["wrappy", "npm:1.0.2"]\ 4920 ],\ 4921 "linkType": "HARD"\ 4922 }]\ 4923 ]],\ 4924 ["inherits", [\ 4925 ["npm:2.0.4", {\ 4926 "packageLocation": "./.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip/node_modules/inherits/",\ 4927 "packageDependencies": [\ 4928 ["inherits", "npm:2.0.4"]\ 4929 ],\ 4930 "linkType": "HARD"\ 4931 }]\ 4932 ]],\ 4933 ["internal-slot", [\ 4934 ["npm:1.0.4", {\ 4935 "packageLocation": "./.yarn/cache/internal-slot-npm-1.0.4-9183007374-8974588d06.zip/node_modules/internal-slot/",\ 4936 "packageDependencies": [\ 4937 ["internal-slot", "npm:1.0.4"],\ 4938 ["get-intrinsic", "npm:1.1.3"],\ 4939 ["has", "npm:1.0.3"],\ 4940 ["side-channel", "npm:1.0.4"]\ 4941 ],\ 4942 "linkType": "HARD"\ 4943 }]\ 4944 ]],\ 4945 ["ip", [\ 4946 ["npm:2.0.0", {\ 4947 "packageLocation": "./.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip/node_modules/ip/",\ 4948 "packageDependencies": [\ 4949 ["ip", "npm:2.0.0"]\ 4950 ],\ 4951 "linkType": "HARD"\ 4952 }]\ 4953 ]],\ 4954 ["is-arguments", [\ 4955 ["npm:1.1.1", {\ 4956 "packageLocation": "./.yarn/cache/is-arguments-npm-1.1.1-eff4f6d4d7-7f02700ec2.zip/node_modules/is-arguments/",\ 4957 "packageDependencies": [\ 4958 ["is-arguments", "npm:1.1.1"],\ 4959 ["call-bind", "npm:1.0.2"],\ 4960 ["has-tostringtag", "npm:1.0.0"]\ 4961 ],\ 4962 "linkType": "HARD"\ 4963 }]\ 4964 ]],\ 4965 ["is-array-buffer", [\ 4966 ["npm:3.0.1", {\ 4967 "packageLocation": "./.yarn/cache/is-array-buffer-npm-3.0.1-3e93b14326-f26ab87448.zip/node_modules/is-array-buffer/",\ 4968 "packageDependencies": [\ 4969 ["is-array-buffer", "npm:3.0.1"],\ 4970 ["call-bind", "npm:1.0.2"],\ 4971 ["get-intrinsic", "npm:1.1.3"],\ 4972 ["is-typed-array", "npm:1.1.10"]\ 4973 ],\ 4974 "linkType": "HARD"\ 4975 }]\ 4976 ]],\ 4977 ["is-arrayish", [\ 4978 ["npm:0.2.1", {\ 4979 "packageLocation": "./.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip/node_modules/is-arrayish/",\ 4980 "packageDependencies": [\ 4981 ["is-arrayish", "npm:0.2.1"]\ 4982 ],\ 4983 "linkType": "HARD"\ 4984 }]\ 4985 ]],\ 4986 ["is-bigint", [\ 4987 ["npm:1.0.4", {\ 4988 "packageLocation": "./.yarn/cache/is-bigint-npm-1.0.4-31c2eecbc9-c56edfe09b.zip/node_modules/is-bigint/",\ 4989 "packageDependencies": [\ 4990 ["is-bigint", "npm:1.0.4"],\ 4991 ["has-bigints", "npm:1.0.2"]\ 4992 ],\ 4993 "linkType": "HARD"\ 4994 }]\ 4995 ]],\ 4996 ["is-binary-path", [\ 4997 ["npm:2.1.0", {\ 4998 "packageLocation": "./.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-84192eb88c.zip/node_modules/is-binary-path/",\ 4999 "packageDependencies": [\ 5000 ["is-binary-path", "npm:2.1.0"],\ 5001 ["binary-extensions", "npm:2.2.0"]\ 5002 ],\ 5003 "linkType": "HARD"\ 5004 }]\ 5005 ]],\ 5006 ["is-boolean-object", [\ 5007 ["npm:1.1.2", {\ 5008 "packageLocation": "./.yarn/cache/is-boolean-object-npm-1.1.2-ecbd575e6a-c03b23dbaa.zip/node_modules/is-boolean-object/",\ 5009 "packageDependencies": [\ 5010 ["is-boolean-object", "npm:1.1.2"],\ 5011 ["call-bind", "npm:1.0.2"],\ 5012 ["has-tostringtag", "npm:1.0.0"]\ 5013 ],\ 5014 "linkType": "HARD"\ 5015 }]\ 5016 ]],\ 5017 ["is-callable", [\ 5018 ["npm:1.2.7", {\ 5019 "packageLocation": "./.yarn/cache/is-callable-npm-1.2.7-808a303e61-61fd57d03b.zip/node_modules/is-callable/",\ 5020 "packageDependencies": [\ 5021 ["is-callable", "npm:1.2.7"]\ 5022 ],\ 5023 "linkType": "HARD"\ 5024 }]\ 5025 ]],\ 5026 ["is-core-module", [\ 5027 ["npm:2.11.0", {\ 5028 "packageLocation": "./.yarn/cache/is-core-module-npm-2.11.0-70061e141a-f96fd490c6.zip/node_modules/is-core-module/",\ 5029 "packageDependencies": [\ 5030 ["is-core-module", "npm:2.11.0"],\ 5031 ["has", "npm:1.0.3"]\ 5032 ],\ 5033 "linkType": "HARD"\ 5034 }]\ 5035 ]],\ 5036 ["is-date-object", [\ 5037 ["npm:1.0.5", {\ 5038 "packageLocation": "./.yarn/cache/is-date-object-npm-1.0.5-88f3d08b5e-baa9077cdf.zip/node_modules/is-date-object/",\ 5039 "packageDependencies": [\ 5040 ["is-date-object", "npm:1.0.5"],\ 5041 ["has-tostringtag", "npm:1.0.0"]\ 5042 ],\ 5043 "linkType": "HARD"\ 5044 }]\ 5045 ]],\ 5046 ["is-docker", [\ 5047 ["npm:2.2.1", {\ 5048 "packageLocation": "./.yarn/cache/is-docker-npm-2.2.1-3f18a53aff-3fef7ddbf0.zip/node_modules/is-docker/",\ 5049 "packageDependencies": [\ 5050 ["is-docker", "npm:2.2.1"]\ 5051 ],\ 5052 "linkType": "HARD"\ 5053 }]\ 5054 ]],\ 5055 ["is-extglob", [\ 5056 ["npm:2.1.1", {\ 5057 "packageLocation": "./.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip/node_modules/is-extglob/",\ 5058 "packageDependencies": [\ 5059 ["is-extglob", "npm:2.1.1"]\ 5060 ],\ 5061 "linkType": "HARD"\ 5062 }]\ 5063 ]],\ 5064 ["is-fullwidth-code-point", [\ 5065 ["npm:3.0.0", {\ 5066 "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip/node_modules/is-fullwidth-code-point/",\ 5067 "packageDependencies": [\ 5068 ["is-fullwidth-code-point", "npm:3.0.0"]\ 5069 ],\ 5070 "linkType": "HARD"\ 5071 }]\ 5072 ]],\ 5073 ["is-generator-fn", [\ 5074 ["npm:2.1.0", {\ 5075 "packageLocation": "./.yarn/cache/is-generator-fn-npm-2.1.0-37895c2d2b-a6ad5492cf.zip/node_modules/is-generator-fn/",\ 5076 "packageDependencies": [\ 5077 ["is-generator-fn", "npm:2.1.0"]\ 5078 ],\ 5079 "linkType": "HARD"\ 5080 }]\ 5081 ]],\ 5082 ["is-glob", [\ 5083 ["npm:4.0.3", {\ 5084 "packageLocation": "./.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip/node_modules/is-glob/",\ 5085 "packageDependencies": [\ 5086 ["is-glob", "npm:4.0.3"],\ 5087 ["is-extglob", "npm:2.1.1"]\ 5088 ],\ 5089 "linkType": "HARD"\ 5090 }]\ 5091 ]],\ 5092 ["is-lambda", [\ 5093 ["npm:1.0.1", {\ 5094 "packageLocation": "./.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip/node_modules/is-lambda/",\ 5095 "packageDependencies": [\ 5096 ["is-lambda", "npm:1.0.1"]\ 5097 ],\ 5098 "linkType": "HARD"\ 5099 }]\ 5100 ]],\ 5101 ["is-map", [\ 5102 ["npm:2.0.2", {\ 5103 "packageLocation": "./.yarn/cache/is-map-npm-2.0.2-486724dabc-ace3d0ecd6.zip/node_modules/is-map/",\ 5104 "packageDependencies": [\ 5105 ["is-map", "npm:2.0.2"]\ 5106 ],\ 5107 "linkType": "HARD"\ 5108 }]\ 5109 ]],\ 5110 ["is-negative-zero", [\ 5111 ["npm:2.0.2", {\ 5112 "packageLocation": "./.yarn/cache/is-negative-zero-npm-2.0.2-0adac91f15-f3232194c4.zip/node_modules/is-negative-zero/",\ 5113 "packageDependencies": [\ 5114 ["is-negative-zero", "npm:2.0.2"]\ 5115 ],\ 5116 "linkType": "HARD"\ 5117 }]\ 5118 ]],\ 5119 ["is-number", [\ 5120 ["npm:7.0.0", {\ 5121 "packageLocation": "./.yarn/cache/is-number-npm-7.0.0-060086935c-456ac6f8e0.zip/node_modules/is-number/",\ 5122 "packageDependencies": [\ 5123 ["is-number", "npm:7.0.0"]\ 5124 ],\ 5125 "linkType": "HARD"\ 5126 }]\ 5127 ]],\ 5128 ["is-number-object", [\ 5129 ["npm:1.0.7", {\ 5130 "packageLocation": "./.yarn/cache/is-number-object-npm-1.0.7-539d0e274d-d1e8d01bb0.zip/node_modules/is-number-object/",\ 5131 "packageDependencies": [\ 5132 ["is-number-object", "npm:1.0.7"],\ 5133 ["has-tostringtag", "npm:1.0.0"]\ 5134 ],\ 5135 "linkType": "HARD"\ 5136 }]\ 5137 ]],\ 5138 ["is-path-inside", [\ 5139 ["npm:3.0.3", {\ 5140 "packageLocation": "./.yarn/cache/is-path-inside-npm-3.0.3-2ea0ef44fd-abd50f0618.zip/node_modules/is-path-inside/",\ 5141 "packageDependencies": [\ 5142 ["is-path-inside", "npm:3.0.3"]\ 5143 ],\ 5144 "linkType": "HARD"\ 5145 }]\ 5146 ]],\ 5147 ["is-potential-custom-element-name", [\ 5148 ["npm:1.0.1", {\ 5149 "packageLocation": "./.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-ced7bbbb64.zip/node_modules/is-potential-custom-element-name/",\ 5150 "packageDependencies": [\ 5151 ["is-potential-custom-element-name", "npm:1.0.1"]\ 5152 ],\ 5153 "linkType": "HARD"\ 5154 }]\ 5155 ]],\ 5156 ["is-property", [\ 5157 ["npm:1.0.2", {\ 5158 "packageLocation": "./.yarn/cache/is-property-npm-1.0.2-6eac53b30e-33b661a369.zip/node_modules/is-property/",\ 5159 "packageDependencies": [\ 5160 ["is-property", "npm:1.0.2"]\ 5161 ],\ 5162 "linkType": "HARD"\ 5163 }]\ 5164 ]],\ 5165 ["is-regex", [\ 5166 ["npm:1.1.4", {\ 5167 "packageLocation": "./.yarn/cache/is-regex-npm-1.1.4-cca193ef11-362399b335.zip/node_modules/is-regex/",\ 5168 "packageDependencies": [\ 5169 ["is-regex", "npm:1.1.4"],\ 5170 ["call-bind", "npm:1.0.2"],\ 5171 ["has-tostringtag", "npm:1.0.0"]\ 5172 ],\ 5173 "linkType": "HARD"\ 5174 }]\ 5175 ]],\ 5176 ["is-set", [\ 5177 ["npm:2.0.2", {\ 5178 "packageLocation": "./.yarn/cache/is-set-npm-2.0.2-7e9ba84a8c-b64343faf4.zip/node_modules/is-set/",\ 5179 "packageDependencies": [\ 5180 ["is-set", "npm:2.0.2"]\ 5181 ],\ 5182 "linkType": "HARD"\ 5183 }]\ 5184 ]],\ 5185 ["is-shared-array-buffer", [\ 5186 ["npm:1.0.2", {\ 5187 "packageLocation": "./.yarn/cache/is-shared-array-buffer-npm-1.0.2-32e4181fcd-9508929cf1.zip/node_modules/is-shared-array-buffer/",\ 5188 "packageDependencies": [\ 5189 ["is-shared-array-buffer", "npm:1.0.2"],\ 5190 ["call-bind", "npm:1.0.2"]\ 5191 ],\ 5192 "linkType": "HARD"\ 5193 }]\ 5194 ]],\ 5195 ["is-stream", [\ 5196 ["npm:2.0.1", {\ 5197 "packageLocation": "./.yarn/cache/is-stream-npm-2.0.1-c802db55e7-b8e05ccdf9.zip/node_modules/is-stream/",\ 5198 "packageDependencies": [\ 5199 ["is-stream", "npm:2.0.1"]\ 5200 ],\ 5201 "linkType": "HARD"\ 5202 }]\ 5203 ]],\ 5204 ["is-string", [\ 5205 ["npm:1.0.7", {\ 5206 "packageLocation": "./.yarn/cache/is-string-npm-1.0.7-9f7066daed-323b3d0462.zip/node_modules/is-string/",\ 5207 "packageDependencies": [\ 5208 ["is-string", "npm:1.0.7"],\ 5209 ["has-tostringtag", "npm:1.0.0"]\ 5210 ],\ 5211 "linkType": "HARD"\ 5212 }]\ 5213 ]],\ 5214 ["is-symbol", [\ 5215 ["npm:1.0.4", {\ 5216 "packageLocation": "./.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-92805812ef.zip/node_modules/is-symbol/",\ 5217 "packageDependencies": [\ 5218 ["is-symbol", "npm:1.0.4"],\ 5219 ["has-symbols", "npm:1.0.3"]\ 5220 ],\ 5221 "linkType": "HARD"\ 5222 }]\ 5223 ]],\ 5224 ["is-typed-array", [\ 5225 ["npm:1.1.10", {\ 5226 "packageLocation": "./.yarn/cache/is-typed-array-npm-1.1.10-fe4ef83cdc-aac6ecb59d.zip/node_modules/is-typed-array/",\ 5227 "packageDependencies": [\ 5228 ["is-typed-array", "npm:1.1.10"],\ 5229 ["available-typed-arrays", "npm:1.0.5"],\ 5230 ["call-bind", "npm:1.0.2"],\ 5231 ["for-each", "npm:0.3.3"],\ 5232 ["gopd", "npm:1.0.1"],\ 5233 ["has-tostringtag", "npm:1.0.0"]\ 5234 ],\ 5235 "linkType": "HARD"\ 5236 }]\ 5237 ]],\ 5238 ["is-weakmap", [\ 5239 ["npm:2.0.1", {\ 5240 "packageLocation": "./.yarn/cache/is-weakmap-npm-2.0.1-88ca3d1dc4-1222bb7e90.zip/node_modules/is-weakmap/",\ 5241 "packageDependencies": [\ 5242 ["is-weakmap", "npm:2.0.1"]\ 5243 ],\ 5244 "linkType": "HARD"\ 5245 }]\ 5246 ]],\ 5247 ["is-weakref", [\ 5248 ["npm:1.0.2", {\ 5249 "packageLocation": "./.yarn/cache/is-weakref-npm-1.0.2-ff80e8c314-95bd9a57cd.zip/node_modules/is-weakref/",\ 5250 "packageDependencies": [\ 5251 ["is-weakref", "npm:1.0.2"],\ 5252 ["call-bind", "npm:1.0.2"]\ 5253 ],\ 5254 "linkType": "HARD"\ 5255 }]\ 5256 ]],\ 5257 ["is-weakset", [\ 5258 ["npm:2.0.2", {\ 5259 "packageLocation": "./.yarn/cache/is-weakset-npm-2.0.2-b3cbc6c9cd-5d8698d1fa.zip/node_modules/is-weakset/",\ 5260 "packageDependencies": [\ 5261 ["is-weakset", "npm:2.0.2"],\ 5262 ["call-bind", "npm:1.0.2"],\ 5263 ["get-intrinsic", "npm:1.1.3"]\ 5264 ],\ 5265 "linkType": "HARD"\ 5266 }]\ 5267 ]],\ 5268 ["is-what", [\ 5269 ["npm:4.1.8", {\ 5270 "packageLocation": "./.yarn/cache/is-what-npm-4.1.8-57bef8cfbc-b9bec3acff.zip/node_modules/is-what/",\ 5271 "packageDependencies": [\ 5272 ["is-what", "npm:4.1.8"]\ 5273 ],\ 5274 "linkType": "HARD"\ 5275 }]\ 5276 ]],\ 5277 ["is-wsl", [\ 5278 ["npm:2.2.0", {\ 5279 "packageLocation": "./.yarn/cache/is-wsl-npm-2.2.0-2ba10d6393-20849846ae.zip/node_modules/is-wsl/",\ 5280 "packageDependencies": [\ 5281 ["is-wsl", "npm:2.2.0"],\ 5282 ["is-docker", "npm:2.2.1"]\ 5283 ],\ 5284 "linkType": "HARD"\ 5285 }]\ 5286 ]],\ 5287 ["isarray", [\ 5288 ["npm:2.0.5", {\ 5289 "packageLocation": "./.yarn/cache/isarray-npm-2.0.5-4ba522212d-bd5bbe4104.zip/node_modules/isarray/",\ 5290 "packageDependencies": [\ 5291 ["isarray", "npm:2.0.5"]\ 5292 ],\ 5293 "linkType": "HARD"\ 5294 }]\ 5295 ]],\ 5296 ["isexe", [\ 5297 ["npm:2.0.0", {\ 5298 "packageLocation": "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/",\ 5299 "packageDependencies": [\ 5300 ["isexe", "npm:2.0.0"]\ 5301 ],\ 5302 "linkType": "HARD"\ 5303 }]\ 5304 ]],\ 5305 ["istanbul-lib-coverage", [\ 5306 ["npm:3.2.0", {\ 5307 "packageLocation": "./.yarn/cache/istanbul-lib-coverage-npm-3.2.0-93f84b2c8c-a2a545033b.zip/node_modules/istanbul-lib-coverage/",\ 5308 "packageDependencies": [\ 5309 ["istanbul-lib-coverage", "npm:3.2.0"]\ 5310 ],\ 5311 "linkType": "HARD"\ 5312 }]\ 5313 ]],\ 5314 ["istanbul-lib-instrument", [\ 5315 ["npm:5.2.1", {\ 5316 "packageLocation": "./.yarn/cache/istanbul-lib-instrument-npm-5.2.1-1b3ad719a9-bf16f1803b.zip/node_modules/istanbul-lib-instrument/",\ 5317 "packageDependencies": [\ 5318 ["istanbul-lib-instrument", "npm:5.2.1"],\ 5319 ["@babel/core", "npm:7.20.12"],\ 5320 ["@babel/parser", "npm:7.20.7"],\ 5321 ["@istanbuljs/schema", "npm:0.1.3"],\ 5322 ["istanbul-lib-coverage", "npm:3.2.0"],\ 5323 ["semver", "npm:6.3.0"]\ 5324 ],\ 5325 "linkType": "HARD"\ 5326 }]\ 5327 ]],\ 5328 ["istanbul-lib-report", [\ 5329 ["npm:3.0.0", {\ 5330 "packageLocation": "./.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-3f29eb3f53.zip/node_modules/istanbul-lib-report/",\ 5331 "packageDependencies": [\ 5332 ["istanbul-lib-report", "npm:3.0.0"],\ 5333 ["istanbul-lib-coverage", "npm:3.2.0"],\ 5334 ["make-dir", "npm:3.1.0"],\ 5335 ["supports-color", "npm:7.2.0"]\ 5336 ],\ 5337 "linkType": "HARD"\ 5338 }]\ 5339 ]],\ 5340 ["istanbul-lib-source-maps", [\ 5341 ["npm:4.0.1", {\ 5342 "packageLocation": "./.yarn/cache/istanbul-lib-source-maps-npm-4.0.1-af0f859df7-21ad3df45d.zip/node_modules/istanbul-lib-source-maps/",\ 5343 "packageDependencies": [\ 5344 ["istanbul-lib-source-maps", "npm:4.0.1"],\ 5345 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 5346 ["istanbul-lib-coverage", "npm:3.2.0"],\ 5347 ["source-map", "npm:0.6.1"]\ 5348 ],\ 5349 "linkType": "HARD"\ 5350 }]\ 5351 ]],\ 5352 ["istanbul-reports", [\ 5353 ["npm:3.1.5", {\ 5354 "packageLocation": "./.yarn/cache/istanbul-reports-npm-3.1.5-fb11324e3e-7867228f83.zip/node_modules/istanbul-reports/",\ 5355 "packageDependencies": [\ 5356 ["istanbul-reports", "npm:3.1.5"],\ 5357 ["html-escaper", "npm:2.0.2"],\ 5358 ["istanbul-lib-report", "npm:3.0.0"]\ 5359 ],\ 5360 "linkType": "HARD"\ 5361 }]\ 5362 ]],\ 5363 ["jest", [\ 5364 ["npm:29.3.1", {\ 5365 "packageLocation": "./.yarn/cache/jest-npm-29.3.1-598e75a9dd-613f4ec657.zip/node_modules/jest/",\ 5366 "packageDependencies": [\ 5367 ["jest", "npm:29.3.1"]\ 5368 ],\ 5369 "linkType": "SOFT"\ 5370 }],\ 5371 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:29.3.1", {\ 5372 "packageLocation": "./.yarn/__virtual__/jest-virtual-862fe11ad7/0/cache/jest-npm-29.3.1-598e75a9dd-613f4ec657.zip/node_modules/jest/",\ 5373 "packageDependencies": [\ 5374 ["jest", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:29.3.1"],\ 5375 ["@jest/core", "virtual:862fe11ad734d9824bb5179f29c186fa9f77ceebedb2f944ac18ed20d5fcc37038a2424aefa361ad967aa043e9ab786e57cbb123d8e240896e168d8c77eb943c#npm:29.3.1"],\ 5376 ["@jest/types", "npm:29.3.1"],\ 5377 ["@types/node-notifier", null],\ 5378 ["import-local", "npm:3.1.0"],\ 5379 ["jest-cli", "virtual:862fe11ad734d9824bb5179f29c186fa9f77ceebedb2f944ac18ed20d5fcc37038a2424aefa361ad967aa043e9ab786e57cbb123d8e240896e168d8c77eb943c#npm:29.3.1"],\ 5380 ["node-notifier", null]\ 5381 ],\ 5382 "packagePeers": [\ 5383 "@types/node-notifier",\ 5384 "node-notifier"\ 5385 ],\ 5386 "linkType": "HARD"\ 5387 }]\ 5388 ]],\ 5389 ["jest-changed-files", [\ 5390 ["npm:29.2.0", {\ 5391 "packageLocation": "./.yarn/cache/jest-changed-files-npm-29.2.0-e1a1846230-8ad8290324.zip/node_modules/jest-changed-files/",\ 5392 "packageDependencies": [\ 5393 ["jest-changed-files", "npm:29.2.0"],\ 5394 ["execa", "npm:5.1.1"],\ 5395 ["p-limit", "npm:3.1.0"]\ 5396 ],\ 5397 "linkType": "HARD"\ 5398 }]\ 5399 ]],\ 5400 ["jest-circus", [\ 5401 ["npm:29.3.1", {\ 5402 "packageLocation": "./.yarn/cache/jest-circus-npm-29.3.1-2cf671dde0-125710debd.zip/node_modules/jest-circus/",\ 5403 "packageDependencies": [\ 5404 ["jest-circus", "npm:29.3.1"],\ 5405 ["@jest/environment", "npm:29.3.1"],\ 5406 ["@jest/expect", "npm:29.3.1"],\ 5407 ["@jest/test-result", "npm:29.3.1"],\ 5408 ["@jest/types", "npm:29.3.1"],\ 5409 ["@types/node", "npm:18.11.18"],\ 5410 ["chalk", "npm:4.1.2"],\ 5411 ["co", "npm:4.6.0"],\ 5412 ["dedent", "npm:0.7.0"],\ 5413 ["is-generator-fn", "npm:2.1.0"],\ 5414 ["jest-each", "npm:29.3.1"],\ 5415 ["jest-matcher-utils", "npm:29.3.1"],\ 5416 ["jest-message-util", "npm:29.3.1"],\ 5417 ["jest-runtime", "npm:29.3.1"],\ 5418 ["jest-snapshot", "npm:29.3.1"],\ 5419 ["jest-util", "npm:29.3.1"],\ 5420 ["p-limit", "npm:3.1.0"],\ 5421 ["pretty-format", "npm:29.3.1"],\ 5422 ["slash", "npm:3.0.0"],\ 5423 ["stack-utils", "npm:2.0.6"]\ 5424 ],\ 5425 "linkType": "HARD"\ 5426 }]\ 5427 ]],\ 5428 ["jest-cli", [\ 5429 ["npm:29.3.1", {\ 5430 "packageLocation": "./.yarn/cache/jest-cli-npm-29.3.1-4b4c5a01f0-829895d330.zip/node_modules/jest-cli/",\ 5431 "packageDependencies": [\ 5432 ["jest-cli", "npm:29.3.1"]\ 5433 ],\ 5434 "linkType": "SOFT"\ 5435 }],\ 5436 ["virtual:862fe11ad734d9824bb5179f29c186fa9f77ceebedb2f944ac18ed20d5fcc37038a2424aefa361ad967aa043e9ab786e57cbb123d8e240896e168d8c77eb943c#npm:29.3.1", {\ 5437 "packageLocation": "./.yarn/__virtual__/jest-cli-virtual-33398a9bcf/0/cache/jest-cli-npm-29.3.1-4b4c5a01f0-829895d330.zip/node_modules/jest-cli/",\ 5438 "packageDependencies": [\ 5439 ["jest-cli", "virtual:862fe11ad734d9824bb5179f29c186fa9f77ceebedb2f944ac18ed20d5fcc37038a2424aefa361ad967aa043e9ab786e57cbb123d8e240896e168d8c77eb943c#npm:29.3.1"],\ 5440 ["@jest/core", "virtual:862fe11ad734d9824bb5179f29c186fa9f77ceebedb2f944ac18ed20d5fcc37038a2424aefa361ad967aa043e9ab786e57cbb123d8e240896e168d8c77eb943c#npm:29.3.1"],\ 5441 ["@jest/test-result", "npm:29.3.1"],\ 5442 ["@jest/types", "npm:29.3.1"],\ 5443 ["@types/node-notifier", null],\ 5444 ["chalk", "npm:4.1.2"],\ 5445 ["exit", "npm:0.1.2"],\ 5446 ["graceful-fs", "npm:4.2.10"],\ 5447 ["import-local", "npm:3.1.0"],\ 5448 ["jest-config", "virtual:33398a9bcff2553f854700e10600dee75bedbeebc19b3dd22584bfa2ad2a2857829c3404d76c3ae3623e0a740f4f713c7afe2812c93f76a084aa1127bab70b7b#npm:29.3.1"],\ 5449 ["jest-util", "npm:29.3.1"],\ 5450 ["jest-validate", "npm:29.3.1"],\ 5451 ["node-notifier", null],\ 5452 ["prompts", "npm:2.4.2"],\ 5453 ["yargs", "npm:17.6.2"]\ 5454 ],\ 5455 "packagePeers": [\ 5456 "@types/node-notifier",\ 5457 "node-notifier"\ 5458 ],\ 5459 "linkType": "HARD"\ 5460 }]\ 5461 ]],\ 5462 ["jest-config", [\ 5463 ["npm:29.3.1", {\ 5464 "packageLocation": "./.yarn/cache/jest-config-npm-29.3.1-7298217c60-6e663f04ae.zip/node_modules/jest-config/",\ 5465 "packageDependencies": [\ 5466 ["jest-config", "npm:29.3.1"]\ 5467 ],\ 5468 "linkType": "SOFT"\ 5469 }],\ 5470 ["virtual:33398a9bcff2553f854700e10600dee75bedbeebc19b3dd22584bfa2ad2a2857829c3404d76c3ae3623e0a740f4f713c7afe2812c93f76a084aa1127bab70b7b#npm:29.3.1", {\ 5471 "packageLocation": "./.yarn/__virtual__/jest-config-virtual-95803fead0/0/cache/jest-config-npm-29.3.1-7298217c60-6e663f04ae.zip/node_modules/jest-config/",\ 5472 "packageDependencies": [\ 5473 ["jest-config", "virtual:33398a9bcff2553f854700e10600dee75bedbeebc19b3dd22584bfa2ad2a2857829c3404d76c3ae3623e0a740f4f713c7afe2812c93f76a084aa1127bab70b7b#npm:29.3.1"],\ 5474 ["@babel/core", "npm:7.20.12"],\ 5475 ["@jest/test-sequencer", "npm:29.3.1"],\ 5476 ["@jest/types", "npm:29.3.1"],\ 5477 ["@types/node", null],\ 5478 ["@types/ts-node", null],\ 5479 ["babel-jest", "virtual:788d0118a981621b95508a19cf21b7827158443c6db1f5680f3b2be78bad2f52fcc5613c309a8eab46fb07757bf8cb8cf5d03762e2d70972705fabae2fdabca3#npm:29.3.1"],\ 5480 ["chalk", "npm:4.1.2"],\ 5481 ["ci-info", "npm:3.7.1"],\ 5482 ["deepmerge", "npm:4.2.2"],\ 5483 ["glob", "npm:7.2.3"],\ 5484 ["graceful-fs", "npm:4.2.10"],\ 5485 ["jest-circus", "npm:29.3.1"],\ 5486 ["jest-environment-node", "npm:29.3.1"],\ 5487 ["jest-get-type", "npm:29.2.0"],\ 5488 ["jest-regex-util", "npm:29.2.0"],\ 5489 ["jest-resolve", "npm:29.3.1"],\ 5490 ["jest-runner", "npm:29.3.1"],\ 5491 ["jest-util", "npm:29.3.1"],\ 5492 ["jest-validate", "npm:29.3.1"],\ 5493 ["micromatch", "npm:4.0.5"],\ 5494 ["parse-json", "npm:5.2.0"],\ 5495 ["pretty-format", "npm:29.3.1"],\ 5496 ["slash", "npm:3.0.0"],\ 5497 ["strip-json-comments", "npm:3.1.1"],\ 5498 ["ts-node", null]\ 5499 ],\ 5500 "packagePeers": [\ 5501 "@types/node",\ 5502 "@types/ts-node",\ 5503 "ts-node"\ 5504 ],\ 5505 "linkType": "HARD"\ 5506 }],\ 5507 ["virtual:7aebeda1bac4461522e36f1704237701105565624a839dea899a630763a93d41f851157efaf3e44178f8554a7b861dbe5ebb77e2cfbbcfb8de3fbad419c572ff#npm:29.3.1", {\ 5508 "packageLocation": "./.yarn/__virtual__/jest-config-virtual-788d0118a9/0/cache/jest-config-npm-29.3.1-7298217c60-6e663f04ae.zip/node_modules/jest-config/",\ 5509 "packageDependencies": [\ 5510 ["jest-config", "virtual:7aebeda1bac4461522e36f1704237701105565624a839dea899a630763a93d41f851157efaf3e44178f8554a7b861dbe5ebb77e2cfbbcfb8de3fbad419c572ff#npm:29.3.1"],\ 5511 ["@babel/core", "npm:7.20.12"],\ 5512 ["@jest/test-sequencer", "npm:29.3.1"],\ 5513 ["@jest/types", "npm:29.3.1"],\ 5514 ["@types/node", "npm:18.11.18"],\ 5515 ["@types/ts-node", null],\ 5516 ["babel-jest", "virtual:788d0118a981621b95508a19cf21b7827158443c6db1f5680f3b2be78bad2f52fcc5613c309a8eab46fb07757bf8cb8cf5d03762e2d70972705fabae2fdabca3#npm:29.3.1"],\ 5517 ["chalk", "npm:4.1.2"],\ 5518 ["ci-info", "npm:3.7.1"],\ 5519 ["deepmerge", "npm:4.2.2"],\ 5520 ["glob", "npm:7.2.3"],\ 5521 ["graceful-fs", "npm:4.2.10"],\ 5522 ["jest-circus", "npm:29.3.1"],\ 5523 ["jest-environment-node", "npm:29.3.1"],\ 5524 ["jest-get-type", "npm:29.2.0"],\ 5525 ["jest-regex-util", "npm:29.2.0"],\ 5526 ["jest-resolve", "npm:29.3.1"],\ 5527 ["jest-runner", "npm:29.3.1"],\ 5528 ["jest-util", "npm:29.3.1"],\ 5529 ["jest-validate", "npm:29.3.1"],\ 5530 ["micromatch", "npm:4.0.5"],\ 5531 ["parse-json", "npm:5.2.0"],\ 5532 ["pretty-format", "npm:29.3.1"],\ 5533 ["slash", "npm:3.0.0"],\ 5534 ["strip-json-comments", "npm:3.1.1"],\ 5535 ["ts-node", null]\ 5536 ],\ 5537 "packagePeers": [\ 5538 "@types/node",\ 5539 "@types/ts-node",\ 5540 "ts-node"\ 5541 ],\ 5542 "linkType": "HARD"\ 5543 }]\ 5544 ]],\ 5545 ["jest-diff", [\ 5546 ["npm:29.3.1", {\ 5547 "packageLocation": "./.yarn/cache/jest-diff-npm-29.3.1-267b436f67-ac5c09745f.zip/node_modules/jest-diff/",\ 5548 "packageDependencies": [\ 5549 ["jest-diff", "npm:29.3.1"],\ 5550 ["chalk", "npm:4.1.2"],\ 5551 ["diff-sequences", "npm:29.3.1"],\ 5552 ["jest-get-type", "npm:29.2.0"],\ 5553 ["pretty-format", "npm:29.3.1"]\ 5554 ],\ 5555 "linkType": "HARD"\ 5556 }]\ 5557 ]],\ 5558 ["jest-docblock", [\ 5559 ["npm:29.2.0", {\ 5560 "packageLocation": "./.yarn/cache/jest-docblock-npm-29.2.0-61320ddd7c-b3f1227b7d.zip/node_modules/jest-docblock/",\ 5561 "packageDependencies": [\ 5562 ["jest-docblock", "npm:29.2.0"],\ 5563 ["detect-newline", "npm:3.1.0"]\ 5564 ],\ 5565 "linkType": "HARD"\ 5566 }]\ 5567 ]],\ 5568 ["jest-each", [\ 5569 ["npm:29.3.1", {\ 5570 "packageLocation": "./.yarn/cache/jest-each-npm-29.3.1-9c43754770-16d51ef8f9.zip/node_modules/jest-each/",\ 5571 "packageDependencies": [\ 5572 ["jest-each", "npm:29.3.1"],\ 5573 ["@jest/types", "npm:29.3.1"],\ 5574 ["chalk", "npm:4.1.2"],\ 5575 ["jest-get-type", "npm:29.2.0"],\ 5576 ["jest-util", "npm:29.3.1"],\ 5577 ["pretty-format", "npm:29.3.1"]\ 5578 ],\ 5579 "linkType": "HARD"\ 5580 }]\ 5581 ]],\ 5582 ["jest-environment-jsdom", [\ 5583 ["npm:29.3.1", {\ 5584 "packageLocation": "./.yarn/cache/jest-environment-jsdom-npm-29.3.1-ec5d7007cb-91b04ed02b.zip/node_modules/jest-environment-jsdom/",\ 5585 "packageDependencies": [\ 5586 ["jest-environment-jsdom", "npm:29.3.1"]\ 5587 ],\ 5588 "linkType": "SOFT"\ 5589 }],\ 5590 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:29.3.1", {\ 5591 "packageLocation": "./.yarn/__virtual__/jest-environment-jsdom-virtual-d0dad83789/0/cache/jest-environment-jsdom-npm-29.3.1-ec5d7007cb-91b04ed02b.zip/node_modules/jest-environment-jsdom/",\ 5592 "packageDependencies": [\ 5593 ["jest-environment-jsdom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:29.3.1"],\ 5594 ["@jest/environment", "npm:29.3.1"],\ 5595 ["@jest/fake-timers", "npm:29.3.1"],\ 5596 ["@jest/types", "npm:29.3.1"],\ 5597 ["@types/canvas", null],\ 5598 ["@types/jsdom", "npm:20.0.1"],\ 5599 ["@types/node", "npm:18.11.18"],\ 5600 ["canvas", null],\ 5601 ["jest-mock", "npm:29.3.1"],\ 5602 ["jest-util", "npm:29.3.1"],\ 5603 ["jsdom", "virtual:d0dad83789561c3909a91715a5c4619d69c586a4e803d9da42776b9874bdfca768b76dc07be209c3edb7ce7ac413f99d0e2283dc932f4bb98b305737af7fea85#npm:20.0.3"]\ 5604 ],\ 5605 "packagePeers": [\ 5606 "@types/canvas",\ 5607 "canvas"\ 5608 ],\ 5609 "linkType": "HARD"\ 5610 }]\ 5611 ]],\ 5612 ["jest-environment-node", [\ 5613 ["npm:29.3.1", {\ 5614 "packageLocation": "./.yarn/cache/jest-environment-node-npm-29.3.1-3b3592d4d8-16d4854bd2.zip/node_modules/jest-environment-node/",\ 5615 "packageDependencies": [\ 5616 ["jest-environment-node", "npm:29.3.1"],\ 5617 ["@jest/environment", "npm:29.3.1"],\ 5618 ["@jest/fake-timers", "npm:29.3.1"],\ 5619 ["@jest/types", "npm:29.3.1"],\ 5620 ["@types/node", "npm:18.11.18"],\ 5621 ["jest-mock", "npm:29.3.1"],\ 5622 ["jest-util", "npm:29.3.1"]\ 5623 ],\ 5624 "linkType": "HARD"\ 5625 }]\ 5626 ]],\ 5627 ["jest-get-type", [\ 5628 ["npm:29.2.0", {\ 5629 "packageLocation": "./.yarn/cache/jest-get-type-npm-29.2.0-47b45861f7-e396fd880a.zip/node_modules/jest-get-type/",\ 5630 "packageDependencies": [\ 5631 ["jest-get-type", "npm:29.2.0"]\ 5632 ],\ 5633 "linkType": "HARD"\ 5634 }]\ 5635 ]],\ 5636 ["jest-haste-map", [\ 5637 ["npm:29.3.1", {\ 5638 "packageLocation": "./.yarn/cache/jest-haste-map-npm-29.3.1-9ea0c83627-97ea26af0c.zip/node_modules/jest-haste-map/",\ 5639 "packageDependencies": [\ 5640 ["jest-haste-map", "npm:29.3.1"],\ 5641 ["@jest/types", "npm:29.3.1"],\ 5642 ["@types/graceful-fs", "npm:4.1.6"],\ 5643 ["@types/node", "npm:18.11.18"],\ 5644 ["anymatch", "npm:3.1.3"],\ 5645 ["fb-watchman", "npm:2.0.2"],\ 5646 ["fsevents", "patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=df0bf1"],\ 5647 ["graceful-fs", "npm:4.2.10"],\ 5648 ["jest-regex-util", "npm:29.2.0"],\ 5649 ["jest-util", "npm:29.3.1"],\ 5650 ["jest-worker", "npm:29.3.1"],\ 5651 ["micromatch", "npm:4.0.5"],\ 5652 ["walker", "npm:1.0.8"]\ 5653 ],\ 5654 "linkType": "HARD"\ 5655 }]\ 5656 ]],\ 5657 ["jest-leak-detector", [\ 5658 ["npm:29.3.1", {\ 5659 "packageLocation": "./.yarn/cache/jest-leak-detector-npm-29.3.1-4354742a8c-0dd8ed31ae.zip/node_modules/jest-leak-detector/",\ 5660 "packageDependencies": [\ 5661 ["jest-leak-detector", "npm:29.3.1"],\ 5662 ["jest-get-type", "npm:29.2.0"],\ 5663 ["pretty-format", "npm:29.3.1"]\ 5664 ],\ 5665 "linkType": "HARD"\ 5666 }]\ 5667 ]],\ 5668 ["jest-matcher-utils", [\ 5669 ["npm:29.3.1", {\ 5670 "packageLocation": "./.yarn/cache/jest-matcher-utils-npm-29.3.1-5d9d00434d-311e8d9f1e.zip/node_modules/jest-matcher-utils/",\ 5671 "packageDependencies": [\ 5672 ["jest-matcher-utils", "npm:29.3.1"],\ 5673 ["chalk", "npm:4.1.2"],\ 5674 ["jest-diff", "npm:29.3.1"],\ 5675 ["jest-get-type", "npm:29.2.0"],\ 5676 ["pretty-format", "npm:29.3.1"]\ 5677 ],\ 5678 "linkType": "HARD"\ 5679 }]\ 5680 ]],\ 5681 ["jest-message-util", [\ 5682 ["npm:29.3.1", {\ 5683 "packageLocation": "./.yarn/cache/jest-message-util-npm-29.3.1-66a108a242-15d0a2fca3.zip/node_modules/jest-message-util/",\ 5684 "packageDependencies": [\ 5685 ["jest-message-util", "npm:29.3.1"],\ 5686 ["@babel/code-frame", "npm:7.18.6"],\ 5687 ["@jest/types", "npm:29.3.1"],\ 5688 ["@types/stack-utils", "npm:2.0.1"],\ 5689 ["chalk", "npm:4.1.2"],\ 5690 ["graceful-fs", "npm:4.2.10"],\ 5691 ["micromatch", "npm:4.0.5"],\ 5692 ["pretty-format", "npm:29.3.1"],\ 5693 ["slash", "npm:3.0.0"],\ 5694 ["stack-utils", "npm:2.0.6"]\ 5695 ],\ 5696 "linkType": "HARD"\ 5697 }]\ 5698 ]],\ 5699 ["jest-mock", [\ 5700 ["npm:29.3.1", {\ 5701 "packageLocation": "./.yarn/cache/jest-mock-npm-29.3.1-45d1cf0a4c-9098852cb2.zip/node_modules/jest-mock/",\ 5702 "packageDependencies": [\ 5703 ["jest-mock", "npm:29.3.1"],\ 5704 ["@jest/types", "npm:29.3.1"],\ 5705 ["@types/node", "npm:18.11.18"],\ 5706 ["jest-util", "npm:29.3.1"]\ 5707 ],\ 5708 "linkType": "HARD"\ 5709 }]\ 5710 ]],\ 5711 ["jest-pnp-resolver", [\ 5712 ["npm:1.2.3", {\ 5713 "packageLocation": "./.yarn/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-db1a8ab2cb.zip/node_modules/jest-pnp-resolver/",\ 5714 "packageDependencies": [\ 5715 ["jest-pnp-resolver", "npm:1.2.3"]\ 5716 ],\ 5717 "linkType": "SOFT"\ 5718 }],\ 5719 ["virtual:dc2be51619e9143ccbc1e98ae76174a576d2c092742396a161ef0fab71a5e3cb6003dc2ba66df2a36c1b501652a33bae502a37776cc4485fda32979a0491b4e0#npm:1.2.3", {\ 5720 "packageLocation": "./.yarn/__virtual__/jest-pnp-resolver-virtual-e60bf79c36/0/cache/jest-pnp-resolver-npm-1.2.3-70e06bf27c-db1a8ab2cb.zip/node_modules/jest-pnp-resolver/",\ 5721 "packageDependencies": [\ 5722 ["jest-pnp-resolver", "virtual:dc2be51619e9143ccbc1e98ae76174a576d2c092742396a161ef0fab71a5e3cb6003dc2ba66df2a36c1b501652a33bae502a37776cc4485fda32979a0491b4e0#npm:1.2.3"],\ 5723 ["@types/jest-resolve", null],\ 5724 ["jest-resolve", "npm:29.3.1"]\ 5725 ],\ 5726 "packagePeers": [\ 5727 "@types/jest-resolve",\ 5728 "jest-resolve"\ 5729 ],\ 5730 "linkType": "HARD"\ 5731 }]\ 5732 ]],\ 5733 ["jest-regex-util", [\ 5734 ["npm:29.2.0", {\ 5735 "packageLocation": "./.yarn/cache/jest-regex-util-npm-29.2.0-50cc574fb1-7c533e51c5.zip/node_modules/jest-regex-util/",\ 5736 "packageDependencies": [\ 5737 ["jest-regex-util", "npm:29.2.0"]\ 5738 ],\ 5739 "linkType": "HARD"\ 5740 }]\ 5741 ]],\ 5742 ["jest-resolve", [\ 5743 ["npm:29.3.1", {\ 5744 "packageLocation": "./.yarn/cache/jest-resolve-npm-29.3.1-dc2be51619-0dea22ed62.zip/node_modules/jest-resolve/",\ 5745 "packageDependencies": [\ 5746 ["jest-resolve", "npm:29.3.1"],\ 5747 ["chalk", "npm:4.1.2"],\ 5748 ["graceful-fs", "npm:4.2.10"],\ 5749 ["jest-haste-map", "npm:29.3.1"],\ 5750 ["jest-pnp-resolver", "virtual:dc2be51619e9143ccbc1e98ae76174a576d2c092742396a161ef0fab71a5e3cb6003dc2ba66df2a36c1b501652a33bae502a37776cc4485fda32979a0491b4e0#npm:1.2.3"],\ 5751 ["jest-util", "npm:29.3.1"],\ 5752 ["jest-validate", "npm:29.3.1"],\ 5753 ["resolve", "patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d"],\ 5754 ["resolve.exports", "npm:1.1.1"],\ 5755 ["slash", "npm:3.0.0"]\ 5756 ],\ 5757 "linkType": "HARD"\ 5758 }]\ 5759 ]],\ 5760 ["jest-resolve-dependencies", [\ 5761 ["npm:29.3.1", {\ 5762 "packageLocation": "./.yarn/cache/jest-resolve-dependencies-npm-29.3.1-89ec333e4d-6ec4727a87.zip/node_modules/jest-resolve-dependencies/",\ 5763 "packageDependencies": [\ 5764 ["jest-resolve-dependencies", "npm:29.3.1"],\ 5765 ["jest-regex-util", "npm:29.2.0"],\ 5766 ["jest-snapshot", "npm:29.3.1"]\ 5767 ],\ 5768 "linkType": "HARD"\ 5769 }]\ 5770 ]],\ 5771 ["jest-runner", [\ 5772 ["npm:29.3.1", {\ 5773 "packageLocation": "./.yarn/cache/jest-runner-npm-29.3.1-931ad62288-61ad445d8a.zip/node_modules/jest-runner/",\ 5774 "packageDependencies": [\ 5775 ["jest-runner", "npm:29.3.1"],\ 5776 ["@jest/console", "npm:29.3.1"],\ 5777 ["@jest/environment", "npm:29.3.1"],\ 5778 ["@jest/test-result", "npm:29.3.1"],\ 5779 ["@jest/transform", "npm:29.3.1"],\ 5780 ["@jest/types", "npm:29.3.1"],\ 5781 ["@types/node", "npm:18.11.18"],\ 5782 ["chalk", "npm:4.1.2"],\ 5783 ["emittery", "npm:0.13.1"],\ 5784 ["graceful-fs", "npm:4.2.10"],\ 5785 ["jest-docblock", "npm:29.2.0"],\ 5786 ["jest-environment-node", "npm:29.3.1"],\ 5787 ["jest-haste-map", "npm:29.3.1"],\ 5788 ["jest-leak-detector", "npm:29.3.1"],\ 5789 ["jest-message-util", "npm:29.3.1"],\ 5790 ["jest-resolve", "npm:29.3.1"],\ 5791 ["jest-runtime", "npm:29.3.1"],\ 5792 ["jest-util", "npm:29.3.1"],\ 5793 ["jest-watcher", "npm:29.3.1"],\ 5794 ["jest-worker", "npm:29.3.1"],\ 5795 ["p-limit", "npm:3.1.0"],\ 5796 ["source-map-support", "npm:0.5.13"]\ 5797 ],\ 5798 "linkType": "HARD"\ 5799 }]\ 5800 ]],\ 5801 ["jest-runtime", [\ 5802 ["npm:29.3.1", {\ 5803 "packageLocation": "./.yarn/cache/jest-runtime-npm-29.3.1-4afadd3ad9-82f27b48f0.zip/node_modules/jest-runtime/",\ 5804 "packageDependencies": [\ 5805 ["jest-runtime", "npm:29.3.1"],\ 5806 ["@jest/environment", "npm:29.3.1"],\ 5807 ["@jest/fake-timers", "npm:29.3.1"],\ 5808 ["@jest/globals", "npm:29.3.1"],\ 5809 ["@jest/source-map", "npm:29.2.0"],\ 5810 ["@jest/test-result", "npm:29.3.1"],\ 5811 ["@jest/transform", "npm:29.3.1"],\ 5812 ["@jest/types", "npm:29.3.1"],\ 5813 ["@types/node", "npm:18.11.18"],\ 5814 ["chalk", "npm:4.1.2"],\ 5815 ["cjs-module-lexer", "npm:1.2.2"],\ 5816 ["collect-v8-coverage", "npm:1.0.1"],\ 5817 ["glob", "npm:7.2.3"],\ 5818 ["graceful-fs", "npm:4.2.10"],\ 5819 ["jest-haste-map", "npm:29.3.1"],\ 5820 ["jest-message-util", "npm:29.3.1"],\ 5821 ["jest-mock", "npm:29.3.1"],\ 5822 ["jest-regex-util", "npm:29.2.0"],\ 5823 ["jest-resolve", "npm:29.3.1"],\ 5824 ["jest-snapshot", "npm:29.3.1"],\ 5825 ["jest-util", "npm:29.3.1"],\ 5826 ["slash", "npm:3.0.0"],\ 5827 ["strip-bom", "npm:4.0.0"]\ 5828 ],\ 5829 "linkType": "HARD"\ 5830 }]\ 5831 ]],\ 5832 ["jest-snapshot", [\ 5833 ["npm:29.3.1", {\ 5834 "packageLocation": "./.yarn/cache/jest-snapshot-npm-29.3.1-532d5ba12d-d7d0077935.zip/node_modules/jest-snapshot/",\ 5835 "packageDependencies": [\ 5836 ["jest-snapshot", "npm:29.3.1"],\ 5837 ["@babel/core", "npm:7.20.12"],\ 5838 ["@babel/generator", "npm:7.20.7"],\ 5839 ["@babel/plugin-syntax-jsx", "virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:7.18.6"],\ 5840 ["@babel/plugin-syntax-typescript", "virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:7.20.0"],\ 5841 ["@babel/traverse", "npm:7.20.12"],\ 5842 ["@babel/types", "npm:7.20.7"],\ 5843 ["@jest/expect-utils", "npm:29.3.1"],\ 5844 ["@jest/transform", "npm:29.3.1"],\ 5845 ["@jest/types", "npm:29.3.1"],\ 5846 ["@types/babel__traverse", "npm:7.18.3"],\ 5847 ["@types/prettier", "npm:2.7.2"],\ 5848 ["babel-preset-current-node-syntax", "virtual:532d5ba12da4e0712fd4ee1959226792558005547b76e38ef9a10812eb5eaa216af23f87433a139e045652661cdf5a8cb298fcb6396605bcd4db8079eb0fa98b#npm:1.0.1"],\ 5849 ["chalk", "npm:4.1.2"],\ 5850 ["expect", "npm:29.3.1"],\ 5851 ["graceful-fs", "npm:4.2.10"],\ 5852 ["jest-diff", "npm:29.3.1"],\ 5853 ["jest-get-type", "npm:29.2.0"],\ 5854 ["jest-haste-map", "npm:29.3.1"],\ 5855 ["jest-matcher-utils", "npm:29.3.1"],\ 5856 ["jest-message-util", "npm:29.3.1"],\ 5857 ["jest-util", "npm:29.3.1"],\ 5858 ["natural-compare", "npm:1.4.0"],\ 5859 ["pretty-format", "npm:29.3.1"],\ 5860 ["semver", "npm:7.3.8"]\ 5861 ],\ 5862 "linkType": "HARD"\ 5863 }]\ 5864 ]],\ 5865 ["jest-util", [\ 5866 ["npm:29.3.1", {\ 5867 "packageLocation": "./.yarn/cache/jest-util-npm-29.3.1-0394c5b084-f67c60f062.zip/node_modules/jest-util/",\ 5868 "packageDependencies": [\ 5869 ["jest-util", "npm:29.3.1"],\ 5870 ["@jest/types", "npm:29.3.1"],\ 5871 ["@types/node", "npm:18.11.18"],\ 5872 ["chalk", "npm:4.1.2"],\ 5873 ["ci-info", "npm:3.7.1"],\ 5874 ["graceful-fs", "npm:4.2.10"],\ 5875 ["picomatch", "npm:2.3.1"]\ 5876 ],\ 5877 "linkType": "HARD"\ 5878 }]\ 5879 ]],\ 5880 ["jest-validate", [\ 5881 ["npm:29.3.1", {\ 5882 "packageLocation": "./.yarn/cache/jest-validate-npm-29.3.1-b684da7f88-92584f0b8a.zip/node_modules/jest-validate/",\ 5883 "packageDependencies": [\ 5884 ["jest-validate", "npm:29.3.1"],\ 5885 ["@jest/types", "npm:29.3.1"],\ 5886 ["camelcase", "npm:6.3.0"],\ 5887 ["chalk", "npm:4.1.2"],\ 5888 ["jest-get-type", "npm:29.2.0"],\ 5889 ["leven", "npm:3.1.0"],\ 5890 ["pretty-format", "npm:29.3.1"]\ 5891 ],\ 5892 "linkType": "HARD"\ 5893 }]\ 5894 ]],\ 5895 ["jest-watcher", [\ 5896 ["npm:29.3.1", {\ 5897 "packageLocation": "./.yarn/cache/jest-watcher-npm-29.3.1-2fe48684ea-60d1894734.zip/node_modules/jest-watcher/",\ 5898 "packageDependencies": [\ 5899 ["jest-watcher", "npm:29.3.1"],\ 5900 ["@jest/test-result", "npm:29.3.1"],\ 5901 ["@jest/types", "npm:29.3.1"],\ 5902 ["@types/node", "npm:18.11.18"],\ 5903 ["ansi-escapes", "npm:4.3.2"],\ 5904 ["chalk", "npm:4.1.2"],\ 5905 ["emittery", "npm:0.13.1"],\ 5906 ["jest-util", "npm:29.3.1"],\ 5907 ["string-length", "npm:4.0.2"]\ 5908 ],\ 5909 "linkType": "HARD"\ 5910 }]\ 5911 ]],\ 5912 ["jest-worker", [\ 5913 ["npm:29.3.1", {\ 5914 "packageLocation": "./.yarn/cache/jest-worker-npm-29.3.1-359b9ac79e-38687fcbdc.zip/node_modules/jest-worker/",\ 5915 "packageDependencies": [\ 5916 ["jest-worker", "npm:29.3.1"],\ 5917 ["@types/node", "npm:18.11.18"],\ 5918 ["jest-util", "npm:29.3.1"],\ 5919 ["merge-stream", "npm:2.0.0"],\ 5920 ["supports-color", "npm:8.1.1"]\ 5921 ],\ 5922 "linkType": "HARD"\ 5923 }]\ 5924 ]],\ 5925 ["js-sdsl", [\ 5926 ["npm:4.2.0", {\ 5927 "packageLocation": "./.yarn/cache/js-sdsl-npm-4.2.0-f34411d30f-2cd0885f72.zip/node_modules/js-sdsl/",\ 5928 "packageDependencies": [\ 5929 ["js-sdsl", "npm:4.2.0"]\ 5930 ],\ 5931 "linkType": "HARD"\ 5932 }]\ 5933 ]],\ 5934 ["js-tokens", [\ 5935 ["npm:4.0.0", {\ 5936 "packageLocation": "./.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip/node_modules/js-tokens/",\ 5937 "packageDependencies": [\ 5938 ["js-tokens", "npm:4.0.0"]\ 5939 ],\ 5940 "linkType": "HARD"\ 5941 }]\ 5942 ]],\ 5943 ["js-yaml", [\ 5944 ["npm:3.14.1", {\ 5945 "packageLocation": "./.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-bef146085f.zip/node_modules/js-yaml/",\ 5946 "packageDependencies": [\ 5947 ["js-yaml", "npm:3.14.1"],\ 5948 ["argparse", "npm:1.0.10"],\ 5949 ["esprima", "npm:4.0.1"]\ 5950 ],\ 5951 "linkType": "HARD"\ 5952 }],\ 5953 ["npm:4.1.0", {\ 5954 "packageLocation": "./.yarn/cache/js-yaml-npm-4.1.0-3606f32312-c7830dfd45.zip/node_modules/js-yaml/",\ 5955 "packageDependencies": [\ 5956 ["js-yaml", "npm:4.1.0"],\ 5957 ["argparse", "npm:2.0.1"]\ 5958 ],\ 5959 "linkType": "HARD"\ 5960 }]\ 5961 ]],\ 5962 ["jsdom", [\ 5963 ["npm:20.0.3", {\ 5964 "packageLocation": "./.yarn/cache/jsdom-npm-20.0.3-906a2f7005-6e2ae21db3.zip/node_modules/jsdom/",\ 5965 "packageDependencies": [\ 5966 ["jsdom", "npm:20.0.3"]\ 5967 ],\ 5968 "linkType": "SOFT"\ 5969 }],\ 5970 ["virtual:d0dad83789561c3909a91715a5c4619d69c586a4e803d9da42776b9874bdfca768b76dc07be209c3edb7ce7ac413f99d0e2283dc932f4bb98b305737af7fea85#npm:20.0.3", {\ 5971 "packageLocation": "./.yarn/__virtual__/jsdom-virtual-86945dd2a6/0/cache/jsdom-npm-20.0.3-906a2f7005-6e2ae21db3.zip/node_modules/jsdom/",\ 5972 "packageDependencies": [\ 5973 ["jsdom", "virtual:d0dad83789561c3909a91715a5c4619d69c586a4e803d9da42776b9874bdfca768b76dc07be209c3edb7ce7ac413f99d0e2283dc932f4bb98b305737af7fea85#npm:20.0.3"],\ 5974 ["@types/canvas", null],\ 5975 ["abab", "npm:2.0.6"],\ 5976 ["acorn", "npm:8.8.1"],\ 5977 ["acorn-globals", "npm:7.0.1"],\ 5978 ["canvas", null],\ 5979 ["cssom", "npm:0.5.0"],\ 5980 ["cssstyle", "npm:2.3.0"],\ 5981 ["data-urls", "npm:3.0.2"],\ 5982 ["decimal.js", "npm:10.4.3"],\ 5983 ["domexception", "npm:4.0.0"],\ 5984 ["escodegen", "npm:2.0.0"],\ 5985 ["form-data", "npm:4.0.0"],\ 5986 ["html-encoding-sniffer", "npm:3.0.0"],\ 5987 ["http-proxy-agent", "npm:5.0.0"],\ 5988 ["https-proxy-agent", "npm:5.0.1"],\ 5989 ["is-potential-custom-element-name", "npm:1.0.1"],\ 5990 ["nwsapi", "npm:2.2.2"],\ 5991 ["parse5", "npm:7.1.2"],\ 5992 ["saxes", "npm:6.0.0"],\ 5993 ["symbol-tree", "npm:3.2.4"],\ 5994 ["tough-cookie", "npm:4.1.2"],\ 5995 ["w3c-xmlserializer", "npm:4.0.0"],\ 5996 ["webidl-conversions", "npm:7.0.0"],\ 5997 ["whatwg-encoding", "npm:2.0.0"],\ 5998 ["whatwg-mimetype", "npm:3.0.0"],\ 5999 ["whatwg-url", "npm:11.0.0"],\ 6000 ["ws", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:8.12.0"],\ 6001 ["xml-name-validator", "npm:4.0.0"]\ 6002 ],\ 6003 "packagePeers": [\ 6004 "@types/canvas",\ 6005 "canvas"\ 6006 ],\ 6007 "linkType": "HARD"\ 6008 }]\ 6009 ]],\ 6010 ["jsesc", [\ 6011 ["npm:2.5.2", {\ 6012 "packageLocation": "./.yarn/cache/jsesc-npm-2.5.2-c5acb78804-4dc1907711.zip/node_modules/jsesc/",\ 6013 "packageDependencies": [\ 6014 ["jsesc", "npm:2.5.2"]\ 6015 ],\ 6016 "linkType": "HARD"\ 6017 }]\ 6018 ]],\ 6019 ["json-parse-even-better-errors", [\ 6020 ["npm:2.3.1", {\ 6021 "packageLocation": "./.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip/node_modules/json-parse-even-better-errors/",\ 6022 "packageDependencies": [\ 6023 ["json-parse-even-better-errors", "npm:2.3.1"]\ 6024 ],\ 6025 "linkType": "HARD"\ 6026 }]\ 6027 ]],\ 6028 ["json-schema-traverse", [\ 6029 ["npm:0.4.1", {\ 6030 "packageLocation": "./.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip/node_modules/json-schema-traverse/",\ 6031 "packageDependencies": [\ 6032 ["json-schema-traverse", "npm:0.4.1"]\ 6033 ],\ 6034 "linkType": "HARD"\ 6035 }]\ 6036 ]],\ 6037 ["json-stable-stringify-without-jsonify", [\ 6038 ["npm:1.0.1", {\ 6039 "packageLocation": "./.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-cff44156dd.zip/node_modules/json-stable-stringify-without-jsonify/",\ 6040 "packageDependencies": [\ 6041 ["json-stable-stringify-without-jsonify", "npm:1.0.1"]\ 6042 ],\ 6043 "linkType": "HARD"\ 6044 }]\ 6045 ]],\ 6046 ["json5", [\ 6047 ["npm:1.0.2", {\ 6048 "packageLocation": "./.yarn/cache/json5-npm-1.0.2-9607f93e30-866458a8c5.zip/node_modules/json5/",\ 6049 "packageDependencies": [\ 6050 ["json5", "npm:1.0.2"],\ 6051 ["minimist", "npm:1.2.7"]\ 6052 ],\ 6053 "linkType": "HARD"\ 6054 }],\ 6055 ["npm:2.2.3", {\ 6056 "packageLocation": "./.yarn/cache/json5-npm-2.2.3-9962c55073-2a7436a933.zip/node_modules/json5/",\ 6057 "packageDependencies": [\ 6058 ["json5", "npm:2.2.3"]\ 6059 ],\ 6060 "linkType": "HARD"\ 6061 }]\ 6062 ]],\ 6063 ["jsonwebtoken", [\ 6064 ["npm:9.0.0", {\ 6065 "packageLocation": "./.yarn/cache/jsonwebtoken-npm-9.0.0-36fd1594c0-b9181cecf9.zip/node_modules/jsonwebtoken/",\ 6066 "packageDependencies": [\ 6067 ["jsonwebtoken", "npm:9.0.0"],\ 6068 ["jws", "npm:3.2.2"],\ 6069 ["lodash", "npm:4.17.21"],\ 6070 ["ms", "npm:2.1.3"],\ 6071 ["semver", "npm:7.3.8"]\ 6072 ],\ 6073 "linkType": "HARD"\ 6074 }]\ 6075 ]],\ 6076 ["jsx-ast-utils", [\ 6077 ["npm:3.3.3", {\ 6078 "packageLocation": "./.yarn/cache/jsx-ast-utils-npm-3.3.3-3d3171e1e4-a2ed78cac4.zip/node_modules/jsx-ast-utils/",\ 6079 "packageDependencies": [\ 6080 ["jsx-ast-utils", "npm:3.3.3"],\ 6081 ["array-includes", "npm:3.1.6"],\ 6082 ["object.assign", "npm:4.1.4"]\ 6083 ],\ 6084 "linkType": "HARD"\ 6085 }]\ 6086 ]],\ 6087 ["jwa", [\ 6088 ["npm:1.4.1", {\ 6089 "packageLocation": "./.yarn/cache/jwa-npm-1.4.1-4f19d6572c-ff30ea7c2d.zip/node_modules/jwa/",\ 6090 "packageDependencies": [\ 6091 ["jwa", "npm:1.4.1"],\ 6092 ["buffer-equal-constant-time", "npm:1.0.1"],\ 6093 ["ecdsa-sig-formatter", "npm:1.0.11"],\ 6094 ["safe-buffer", "npm:5.2.1"]\ 6095 ],\ 6096 "linkType": "HARD"\ 6097 }]\ 6098 ]],\ 6099 ["jws", [\ 6100 ["npm:3.2.2", {\ 6101 "packageLocation": "./.yarn/cache/jws-npm-3.2.2-c1ae59c7af-f0213fe5b7.zip/node_modules/jws/",\ 6102 "packageDependencies": [\ 6103 ["jws", "npm:3.2.2"],\ 6104 ["jwa", "npm:1.4.1"],\ 6105 ["safe-buffer", "npm:5.2.1"]\ 6106 ],\ 6107 "linkType": "HARD"\ 6108 }]\ 6109 ]],\ 6110 ["kleur", [\ 6111 ["npm:3.0.3", {\ 6112 "packageLocation": "./.yarn/cache/kleur-npm-3.0.3-f6f53649a4-df82cd1e17.zip/node_modules/kleur/",\ 6113 "packageDependencies": [\ 6114 ["kleur", "npm:3.0.3"]\ 6115 ],\ 6116 "linkType": "HARD"\ 6117 }]\ 6118 ]],\ 6119 ["language-subtag-registry", [\ 6120 ["npm:0.3.22", {\ 6121 "packageLocation": "./.yarn/cache/language-subtag-registry-npm-0.3.22-e9f79fe04e-8ab70a7e0e.zip/node_modules/language-subtag-registry/",\ 6122 "packageDependencies": [\ 6123 ["language-subtag-registry", "npm:0.3.22"]\ 6124 ],\ 6125 "linkType": "HARD"\ 6126 }]\ 6127 ]],\ 6128 ["language-tags", [\ 6129 ["npm:1.0.5", {\ 6130 "packageLocation": "./.yarn/cache/language-tags-npm-1.0.5-3a50e75c96-c81b5d8b9f.zip/node_modules/language-tags/",\ 6131 "packageDependencies": [\ 6132 ["language-tags", "npm:1.0.5"],\ 6133 ["language-subtag-registry", "npm:0.3.22"]\ 6134 ],\ 6135 "linkType": "HARD"\ 6136 }]\ 6137 ]],\ 6138 ["leven", [\ 6139 ["npm:3.1.0", {\ 6140 "packageLocation": "./.yarn/cache/leven-npm-3.1.0-b7697736a3-638401d534.zip/node_modules/leven/",\ 6141 "packageDependencies": [\ 6142 ["leven", "npm:3.1.0"]\ 6143 ],\ 6144 "linkType": "HARD"\ 6145 }]\ 6146 ]],\ 6147 ["levn", [\ 6148 ["npm:0.3.0", {\ 6149 "packageLocation": "./.yarn/cache/levn-npm-0.3.0-48d774b1c2-0d084a5242.zip/node_modules/levn/",\ 6150 "packageDependencies": [\ 6151 ["levn", "npm:0.3.0"],\ 6152 ["prelude-ls", "npm:1.1.2"],\ 6153 ["type-check", "npm:0.3.2"]\ 6154 ],\ 6155 "linkType": "HARD"\ 6156 }],\ 6157 ["npm:0.4.1", {\ 6158 "packageLocation": "./.yarn/cache/levn-npm-0.4.1-d183b2d7bb-12c5021c85.zip/node_modules/levn/",\ 6159 "packageDependencies": [\ 6160 ["levn", "npm:0.4.1"],\ 6161 ["prelude-ls", "npm:1.2.1"],\ 6162 ["type-check", "npm:0.4.0"]\ 6163 ],\ 6164 "linkType": "HARD"\ 6165 }]\ 6166 ]],\ 6167 ["lines-and-columns", [\ 6168 ["npm:1.2.4", {\ 6169 "packageLocation": "./.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip/node_modules/lines-and-columns/",\ 6170 "packageDependencies": [\ 6171 ["lines-and-columns", "npm:1.2.4"]\ 6172 ],\ 6173 "linkType": "HARD"\ 6174 }]\ 6175 ]],\ 6176 ["locate-path", [\ 6177 ["npm:5.0.0", {\ 6178 "packageLocation": "./.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip/node_modules/locate-path/",\ 6179 "packageDependencies": [\ 6180 ["locate-path", "npm:5.0.0"],\ 6181 ["p-locate", "npm:4.1.0"]\ 6182 ],\ 6183 "linkType": "HARD"\ 6184 }],\ 6185 ["npm:6.0.0", {\ 6186 "packageLocation": "./.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-72eb661788.zip/node_modules/locate-path/",\ 6187 "packageDependencies": [\ 6188 ["locate-path", "npm:6.0.0"],\ 6189 ["p-locate", "npm:5.0.0"]\ 6190 ],\ 6191 "linkType": "HARD"\ 6192 }]\ 6193 ]],\ 6194 ["lodash", [\ 6195 ["npm:4.17.21", {\ 6196 "packageLocation": "./.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip/node_modules/lodash/",\ 6197 "packageDependencies": [\ 6198 ["lodash", "npm:4.17.21"]\ 6199 ],\ 6200 "linkType": "HARD"\ 6201 }]\ 6202 ]],\ 6203 ["lodash.merge", [\ 6204 ["npm:4.6.2", {\ 6205 "packageLocation": "./.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-ad580b4bdb.zip/node_modules/lodash.merge/",\ 6206 "packageDependencies": [\ 6207 ["lodash.merge", "npm:4.6.2"]\ 6208 ],\ 6209 "linkType": "HARD"\ 6210 }]\ 6211 ]],\ 6212 ["long", [\ 6213 ["npm:5.2.1", {\ 6214 "packageLocation": "./.yarn/cache/long-npm-5.2.1-3a12730171-9264da12d1.zip/node_modules/long/",\ 6215 "packageDependencies": [\ 6216 ["long", "npm:5.2.1"]\ 6217 ],\ 6218 "linkType": "HARD"\ 6219 }]\ 6220 ]],\ 6221 ["loose-envify", [\ 6222 ["npm:1.4.0", {\ 6223 "packageLocation": "./.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip/node_modules/loose-envify/",\ 6224 "packageDependencies": [\ 6225 ["loose-envify", "npm:1.4.0"],\ 6226 ["js-tokens", "npm:4.0.0"]\ 6227 ],\ 6228 "linkType": "HARD"\ 6229 }]\ 6230 ]],\ 6231 ["lru-cache", [\ 6232 ["npm:5.1.1", {\ 6233 "packageLocation": "./.yarn/cache/lru-cache-npm-5.1.1-f475882a51-c154ae1cbb.zip/node_modules/lru-cache/",\ 6234 "packageDependencies": [\ 6235 ["lru-cache", "npm:5.1.1"],\ 6236 ["yallist", "npm:3.1.1"]\ 6237 ],\ 6238 "linkType": "HARD"\ 6239 }],\ 6240 ["npm:6.0.0", {\ 6241 "packageLocation": "./.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip/node_modules/lru-cache/",\ 6242 "packageDependencies": [\ 6243 ["lru-cache", "npm:6.0.0"],\ 6244 ["yallist", "npm:4.0.0"]\ 6245 ],\ 6246 "linkType": "HARD"\ 6247 }],\ 6248 ["npm:7.14.1", {\ 6249 "packageLocation": "./.yarn/cache/lru-cache-npm-7.14.1-d3ba9407b6-d72c6713c6.zip/node_modules/lru-cache/",\ 6250 "packageDependencies": [\ 6251 ["lru-cache", "npm:7.14.1"]\ 6252 ],\ 6253 "linkType": "HARD"\ 6254 }]\ 6255 ]],\ 6256 ["lz-string", [\ 6257 ["npm:1.4.4", {\ 6258 "packageLocation": "./.yarn/cache/lz-string-npm-1.4.4-59a2091d3f-54e31238a6.zip/node_modules/lz-string/",\ 6259 "packageDependencies": [\ 6260 ["lz-string", "npm:1.4.4"]\ 6261 ],\ 6262 "linkType": "HARD"\ 6263 }]\ 6264 ]],\ 6265 ["make-dir", [\ 6266 ["npm:3.1.0", {\ 6267 "packageLocation": "./.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip/node_modules/make-dir/",\ 6268 "packageDependencies": [\ 6269 ["make-dir", "npm:3.1.0"],\ 6270 ["semver", "npm:6.3.0"]\ 6271 ],\ 6272 "linkType": "HARD"\ 6273 }]\ 6274 ]],\ 6275 ["make-fetch-happen", [\ 6276 ["npm:10.2.1", {\ 6277 "packageLocation": "./.yarn/cache/make-fetch-happen-npm-10.2.1-f1cc7cd2df-2332eb9a8e.zip/node_modules/make-fetch-happen/",\ 6278 "packageDependencies": [\ 6279 ["make-fetch-happen", "npm:10.2.1"],\ 6280 ["agentkeepalive", "npm:4.2.1"],\ 6281 ["cacache", "npm:16.1.3"],\ 6282 ["http-cache-semantics", "npm:4.1.0"],\ 6283 ["http-proxy-agent", "npm:5.0.0"],\ 6284 ["https-proxy-agent", "npm:5.0.1"],\ 6285 ["is-lambda", "npm:1.0.1"],\ 6286 ["lru-cache", "npm:7.14.1"],\ 6287 ["minipass", "npm:3.3.6"],\ 6288 ["minipass-collect", "npm:1.0.2"],\ 6289 ["minipass-fetch", "npm:2.1.2"],\ 6290 ["minipass-flush", "npm:1.0.5"],\ 6291 ["minipass-pipeline", "npm:1.2.4"],\ 6292 ["negotiator", "npm:0.6.3"],\ 6293 ["promise-retry", "npm:2.0.1"],\ 6294 ["socks-proxy-agent", "npm:7.0.0"],\ 6295 ["ssri", "npm:9.0.1"]\ 6296 ],\ 6297 "linkType": "HARD"\ 6298 }]\ 6299 ]],\ 6300 ["makeerror", [\ 6301 ["npm:1.0.12", {\ 6302 "packageLocation": "./.yarn/cache/makeerror-npm-1.0.12-69abf085d7-b38a025a12.zip/node_modules/makeerror/",\ 6303 "packageDependencies": [\ 6304 ["makeerror", "npm:1.0.12"],\ 6305 ["tmpl", "npm:1.0.5"]\ 6306 ],\ 6307 "linkType": "HARD"\ 6308 }]\ 6309 ]],\ 6310 ["merge-stream", [\ 6311 ["npm:2.0.0", {\ 6312 "packageLocation": "./.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.zip/node_modules/merge-stream/",\ 6313 "packageDependencies": [\ 6314 ["merge-stream", "npm:2.0.0"]\ 6315 ],\ 6316 "linkType": "HARD"\ 6317 }]\ 6318 ]],\ 6319 ["merge2", [\ 6320 ["npm:1.4.1", {\ 6321 "packageLocation": "./.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip/node_modules/merge2/",\ 6322 "packageDependencies": [\ 6323 ["merge2", "npm:1.4.1"]\ 6324 ],\ 6325 "linkType": "HARD"\ 6326 }]\ 6327 ]],\ 6328 ["micromatch", [\ 6329 ["npm:4.0.5", {\ 6330 "packageLocation": "./.yarn/cache/micromatch-npm-4.0.5-cfab5d7669-02a17b671c.zip/node_modules/micromatch/",\ 6331 "packageDependencies": [\ 6332 ["micromatch", "npm:4.0.5"],\ 6333 ["braces", "npm:3.0.2"],\ 6334 ["picomatch", "npm:2.3.1"]\ 6335 ],\ 6336 "linkType": "HARD"\ 6337 }]\ 6338 ]],\ 6339 ["mime-db", [\ 6340 ["npm:1.52.0", {\ 6341 "packageLocation": "./.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip/node_modules/mime-db/",\ 6342 "packageDependencies": [\ 6343 ["mime-db", "npm:1.52.0"]\ 6344 ],\ 6345 "linkType": "HARD"\ 6346 }]\ 6347 ]],\ 6348 ["mime-types", [\ 6349 ["npm:2.1.35", {\ 6350 "packageLocation": "./.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip/node_modules/mime-types/",\ 6351 "packageDependencies": [\ 6352 ["mime-types", "npm:2.1.35"],\ 6353 ["mime-db", "npm:1.52.0"]\ 6354 ],\ 6355 "linkType": "HARD"\ 6356 }]\ 6357 ]],\ 6358 ["mimic-fn", [\ 6359 ["npm:2.1.0", {\ 6360 "packageLocation": "./.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-d2421a3444.zip/node_modules/mimic-fn/",\ 6361 "packageDependencies": [\ 6362 ["mimic-fn", "npm:2.1.0"]\ 6363 ],\ 6364 "linkType": "HARD"\ 6365 }]\ 6366 ]],\ 6367 ["min-indent", [\ 6368 ["npm:1.0.1", {\ 6369 "packageLocation": "./.yarn/cache/min-indent-npm-1.0.1-77031f50e1-bfc6dd03c5.zip/node_modules/min-indent/",\ 6370 "packageDependencies": [\ 6371 ["min-indent", "npm:1.0.1"]\ 6372 ],\ 6373 "linkType": "HARD"\ 6374 }]\ 6375 ]],\ 6376 ["minimatch", [\ 6377 ["npm:3.1.2", {\ 6378 "packageLocation": "./.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip/node_modules/minimatch/",\ 6379 "packageDependencies": [\ 6380 ["minimatch", "npm:3.1.2"],\ 6381 ["brace-expansion", "npm:1.1.11"]\ 6382 ],\ 6383 "linkType": "HARD"\ 6384 }],\ 6385 ["npm:5.1.4", {\ 6386 "packageLocation": "./.yarn/cache/minimatch-npm-5.1.4-3009c246b4-0de6d7d154.zip/node_modules/minimatch/",\ 6387 "packageDependencies": [\ 6388 ["minimatch", "npm:5.1.4"],\ 6389 ["brace-expansion", "npm:2.0.1"]\ 6390 ],\ 6391 "linkType": "HARD"\ 6392 }]\ 6393 ]],\ 6394 ["minimist", [\ 6395 ["npm:1.2.7", {\ 6396 "packageLocation": "./.yarn/cache/minimist-npm-1.2.7-51d33b1371-7346574a10.zip/node_modules/minimist/",\ 6397 "packageDependencies": [\ 6398 ["minimist", "npm:1.2.7"]\ 6399 ],\ 6400 "linkType": "HARD"\ 6401 }]\ 6402 ]],\ 6403 ["minipass", [\ 6404 ["npm:3.3.6", {\ 6405 "packageLocation": "./.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip/node_modules/minipass/",\ 6406 "packageDependencies": [\ 6407 ["minipass", "npm:3.3.6"],\ 6408 ["yallist", "npm:4.0.0"]\ 6409 ],\ 6410 "linkType": "HARD"\ 6411 }],\ 6412 ["npm:4.0.0", {\ 6413 "packageLocation": "./.yarn/cache/minipass-npm-4.0.0-2520d5ae3c-7a609afbf3.zip/node_modules/minipass/",\ 6414 "packageDependencies": [\ 6415 ["minipass", "npm:4.0.0"],\ 6416 ["yallist", "npm:4.0.0"]\ 6417 ],\ 6418 "linkType": "HARD"\ 6419 }]\ 6420 ]],\ 6421 ["minipass-collect", [\ 6422 ["npm:1.0.2", {\ 6423 "packageLocation": "./.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip/node_modules/minipass-collect/",\ 6424 "packageDependencies": [\ 6425 ["minipass-collect", "npm:1.0.2"],\ 6426 ["minipass", "npm:3.3.6"]\ 6427 ],\ 6428 "linkType": "HARD"\ 6429 }]\ 6430 ]],\ 6431 ["minipass-fetch", [\ 6432 ["npm:2.1.2", {\ 6433 "packageLocation": "./.yarn/cache/minipass-fetch-npm-2.1.2-9b21a5c930-3f216be791.zip/node_modules/minipass-fetch/",\ 6434 "packageDependencies": [\ 6435 ["minipass-fetch", "npm:2.1.2"],\ 6436 ["encoding", "npm:0.1.13"],\ 6437 ["minipass", "npm:3.3.6"],\ 6438 ["minipass-sized", "npm:1.0.3"],\ 6439 ["minizlib", "npm:2.1.2"]\ 6440 ],\ 6441 "linkType": "HARD"\ 6442 }]\ 6443 ]],\ 6444 ["minipass-flush", [\ 6445 ["npm:1.0.5", {\ 6446 "packageLocation": "./.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip/node_modules/minipass-flush/",\ 6447 "packageDependencies": [\ 6448 ["minipass-flush", "npm:1.0.5"],\ 6449 ["minipass", "npm:3.3.6"]\ 6450 ],\ 6451 "linkType": "HARD"\ 6452 }]\ 6453 ]],\ 6454 ["minipass-pipeline", [\ 6455 ["npm:1.2.4", {\ 6456 "packageLocation": "./.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip/node_modules/minipass-pipeline/",\ 6457 "packageDependencies": [\ 6458 ["minipass-pipeline", "npm:1.2.4"],\ 6459 ["minipass", "npm:3.3.6"]\ 6460 ],\ 6461 "linkType": "HARD"\ 6462 }]\ 6463 ]],\ 6464 ["minipass-sized", [\ 6465 ["npm:1.0.3", {\ 6466 "packageLocation": "./.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip/node_modules/minipass-sized/",\ 6467 "packageDependencies": [\ 6468 ["minipass-sized", "npm:1.0.3"],\ 6469 ["minipass", "npm:3.3.6"]\ 6470 ],\ 6471 "linkType": "HARD"\ 6472 }]\ 6473 ]],\ 6474 ["minizlib", [\ 6475 ["npm:2.1.2", {\ 6476 "packageLocation": "./.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip/node_modules/minizlib/",\ 6477 "packageDependencies": [\ 6478 ["minizlib", "npm:2.1.2"],\ 6479 ["minipass", "npm:3.3.6"],\ 6480 ["yallist", "npm:4.0.0"]\ 6481 ],\ 6482 "linkType": "HARD"\ 6483 }]\ 6484 ]],\ 6485 ["mkdirp", [\ 6486 ["npm:1.0.4", {\ 6487 "packageLocation": "./.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip/node_modules/mkdirp/",\ 6488 "packageDependencies": [\ 6489 ["mkdirp", "npm:1.0.4"]\ 6490 ],\ 6491 "linkType": "HARD"\ 6492 }]\ 6493 ]],\ 6494 ["moment", [\ 6495 ["npm:2.29.4", {\ 6496 "packageLocation": "./.yarn/cache/moment-npm-2.29.4-902943305d-0ec3f9c2bc.zip/node_modules/moment/",\ 6497 "packageDependencies": [\ 6498 ["moment", "npm:2.29.4"]\ 6499 ],\ 6500 "linkType": "HARD"\ 6501 }]\ 6502 ]],\ 6503 ["ms", [\ 6504 ["npm:2.1.2", {\ 6505 "packageLocation": "./.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip/node_modules/ms/",\ 6506 "packageDependencies": [\ 6507 ["ms", "npm:2.1.2"]\ 6508 ],\ 6509 "linkType": "HARD"\ 6510 }],\ 6511 ["npm:2.1.3", {\ 6512 "packageLocation": "./.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip/node_modules/ms/",\ 6513 "packageDependencies": [\ 6514 ["ms", "npm:2.1.3"]\ 6515 ],\ 6516 "linkType": "HARD"\ 6517 }]\ 6518 ]],\ 6519 ["mysql2", [\ 6520 ["npm:3.0.1", {\ 6521 "packageLocation": "./.yarn/cache/mysql2-npm-3.0.1-ceda50bb4d-3b724df78d.zip/node_modules/mysql2/",\ 6522 "packageDependencies": [\ 6523 ["mysql2", "npm:3.0.1"],\ 6524 ["denque", "npm:2.1.0"],\ 6525 ["generate-function", "npm:2.3.1"],\ 6526 ["iconv-lite", "npm:0.6.3"],\ 6527 ["long", "npm:5.2.1"],\ 6528 ["lru-cache", "npm:7.14.1"],\ 6529 ["named-placeholders", "npm:1.1.3"],\ 6530 ["seq-queue", "npm:0.0.5"],\ 6531 ["sqlstring", "npm:2.3.3"]\ 6532 ],\ 6533 "linkType": "HARD"\ 6534 }]\ 6535 ]],\ 6536 ["named-placeholders", [\ 6537 ["npm:1.1.3", {\ 6538 "packageLocation": "./.yarn/cache/named-placeholders-npm-1.1.3-1b385febe5-7834adc91e.zip/node_modules/named-placeholders/",\ 6539 "packageDependencies": [\ 6540 ["named-placeholders", "npm:1.1.3"],\ 6541 ["lru-cache", "npm:7.14.1"]\ 6542 ],\ 6543 "linkType": "HARD"\ 6544 }]\ 6545 ]],\ 6546 ["nanoevents", [\ 6547 ["npm:7.0.1", {\ 6548 "packageLocation": "./.yarn/cache/nanoevents-npm-7.0.1-54af7d9828-5c0704cfeb.zip/node_modules/nanoevents/",\ 6549 "packageDependencies": [\ 6550 ["nanoevents", "npm:7.0.1"]\ 6551 ],\ 6552 "linkType": "HARD"\ 6553 }]\ 6554 ]],\ 6555 ["nanoid", [\ 6556 ["npm:3.3.4", {\ 6557 "packageLocation": "./.yarn/cache/nanoid-npm-3.3.4-3d250377d6-2fddd6dee9.zip/node_modules/nanoid/",\ 6558 "packageDependencies": [\ 6559 ["nanoid", "npm:3.3.4"]\ 6560 ],\ 6561 "linkType": "HARD"\ 6562 }],\ 6563 ["npm:4.0.0", {\ 6564 "packageLocation": "./.yarn/cache/nanoid-npm-4.0.0-924f5c6312-7d5946df5c.zip/node_modules/nanoid/",\ 6565 "packageDependencies": [\ 6566 ["nanoid", "npm:4.0.0"]\ 6567 ],\ 6568 "linkType": "HARD"\ 6569 }]\ 6570 ]],\ 6571 ["natural-compare", [\ 6572 ["npm:1.4.0", {\ 6573 "packageLocation": "./.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip/node_modules/natural-compare/",\ 6574 "packageDependencies": [\ 6575 ["natural-compare", "npm:1.4.0"]\ 6576 ],\ 6577 "linkType": "HARD"\ 6578 }]\ 6579 ]],\ 6580 ["negotiator", [\ 6581 ["npm:0.6.3", {\ 6582 "packageLocation": "./.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip/node_modules/negotiator/",\ 6583 "packageDependencies": [\ 6584 ["negotiator", "npm:0.6.3"]\ 6585 ],\ 6586 "linkType": "HARD"\ 6587 }]\ 6588 ]],\ 6589 ["neo-async", [\ 6590 ["npm:2.6.2", {\ 6591 "packageLocation": "./.yarn/cache/neo-async-npm-2.6.2-75d6902586-deac9f8d00.zip/node_modules/neo-async/",\ 6592 "packageDependencies": [\ 6593 ["neo-async", "npm:2.6.2"]\ 6594 ],\ 6595 "linkType": "HARD"\ 6596 }]\ 6597 ]],\ 6598 ["next", [\ 6599 ["npm:13.1.2", {\ 6600 "packageLocation": "./.yarn/cache/next-npm-13.1.2-fdc453e9b1-bc9aedfc70.zip/node_modules/next/",\ 6601 "packageDependencies": [\ 6602 ["next", "npm:13.1.2"]\ 6603 ],\ 6604 "linkType": "SOFT"\ 6605 }],\ 6606 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2", {\ 6607 "packageLocation": "./.yarn/__virtual__/next-virtual-297677bc07/0/cache/next-npm-13.1.2-fdc453e9b1-bc9aedfc70.zip/node_modules/next/",\ 6608 "packageDependencies": [\ 6609 ["next", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2"],\ 6610 ["@next/env", "npm:13.1.2"],\ 6611 ["@next/swc-android-arm-eabi", "npm:13.1.2"],\ 6612 ["@next/swc-android-arm64", "npm:13.1.2"],\ 6613 ["@next/swc-darwin-arm64", "npm:13.1.2"],\ 6614 ["@next/swc-darwin-x64", "npm:13.1.2"],\ 6615 ["@next/swc-freebsd-x64", "npm:13.1.2"],\ 6616 ["@next/swc-linux-arm-gnueabihf", "npm:13.1.2"],\ 6617 ["@next/swc-linux-arm64-gnu", "npm:13.1.2"],\ 6618 ["@next/swc-linux-arm64-musl", "npm:13.1.2"],\ 6619 ["@next/swc-linux-x64-gnu", "npm:13.1.2"],\ 6620 ["@next/swc-linux-x64-musl", "npm:13.1.2"],\ 6621 ["@next/swc-win32-arm64-msvc", "npm:13.1.2"],\ 6622 ["@next/swc-win32-ia32-msvc", "npm:13.1.2"],\ 6623 ["@next/swc-win32-x64-msvc", "npm:13.1.2"],\ 6624 ["@swc/helpers", "npm:0.4.14"],\ 6625 ["@types/fibers", null],\ 6626 ["@types/node-sass", null],\ 6627 ["@types/react", "npm:18.0.26"],\ 6628 ["@types/react-dom", "npm:18.0.10"],\ 6629 ["@types/sass", null],\ 6630 ["caniuse-lite", "npm:1.0.30001445"],\ 6631 ["fibers", null],\ 6632 ["node-sass", null],\ 6633 ["postcss", "npm:8.4.14"],\ 6634 ["react", "npm:18.2.0"],\ 6635 ["react-dom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:18.2.0"],\ 6636 ["sass", "npm:1.57.1"],\ 6637 ["styled-jsx", "virtual:297677bc07d73ccdd3fd351a985268b98c7acd87436df6275a7cd6e7df2a441d3d4f2fbd956f04eb05287463ad1e0eebb94a2ecc2681c43c97e9cb4708eddd15#npm:5.1.1"]\ 6638 ],\ 6639 "packagePeers": [\ 6640 "@types/fibers",\ 6641 "@types/node-sass",\ 6642 "@types/react-dom",\ 6643 "@types/react",\ 6644 "@types/sass",\ 6645 "fibers",\ 6646 "node-sass",\ 6647 "react-dom",\ 6648 "react",\ 6649 "sass"\ 6650 ],\ 6651 "linkType": "HARD"\ 6652 }]\ 6653 ]],\ 6654 ["next-router-mock", [\ 6655 ["npm:0.9.1-beta.0", {\ 6656 "packageLocation": "./.yarn/cache/next-router-mock-npm-0.9.1-beta.0-933a96d52e-3fbc91e6b9.zip/node_modules/next-router-mock/",\ 6657 "packageDependencies": [\ 6658 ["next-router-mock", "npm:0.9.1-beta.0"]\ 6659 ],\ 6660 "linkType": "SOFT"\ 6661 }],\ 6662 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:0.9.1-beta.0", {\ 6663 "packageLocation": "./.yarn/__virtual__/next-router-mock-virtual-b3dc0e644e/0/cache/next-router-mock-npm-0.9.1-beta.0-933a96d52e-3fbc91e6b9.zip/node_modules/next-router-mock/",\ 6664 "packageDependencies": [\ 6665 ["next-router-mock", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:0.9.1-beta.0"],\ 6666 ["@types/next", null],\ 6667 ["@types/react", "npm:18.0.26"],\ 6668 ["next", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2"],\ 6669 ["react", "npm:18.2.0"]\ 6670 ],\ 6671 "packagePeers": [\ 6672 "@types/next",\ 6673 "@types/react",\ 6674 "next",\ 6675 "react"\ 6676 ],\ 6677 "linkType": "HARD"\ 6678 }]\ 6679 ]],\ 6680 ["next-superjson-plugin", [\ 6681 ["npm:0.5.4", {\ 6682 "packageLocation": "./.yarn/unplugged/next-superjson-plugin-virtual-512e3b7f5c/node_modules/next-superjson-plugin/",\ 6683 "packageDependencies": [\ 6684 ["next-superjson-plugin", "npm:0.5.4"]\ 6685 ],\ 6686 "linkType": "SOFT"\ 6687 }],\ 6688 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:0.5.4", {\ 6689 "packageLocation": "./.yarn/unplugged/next-superjson-plugin-virtual-512e3b7f5c/node_modules/next-superjson-plugin/",\ 6690 "packageDependencies": [\ 6691 ["next-superjson-plugin", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:0.5.4"],\ 6692 ["@types/next", null],\ 6693 ["@types/superjson", null],\ 6694 ["hoist-non-react-statics", "npm:3.3.2"],\ 6695 ["next", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:13.1.2"],\ 6696 ["superjson", "npm:1.12.2"]\ 6697 ],\ 6698 "packagePeers": [\ 6699 "@types/next",\ 6700 "@types/superjson",\ 6701 "next",\ 6702 "superjson"\ 6703 ],\ 6704 "linkType": "HARD"\ 6705 }]\ 6706 ]],\ 6707 ["node-addon-api", [\ 6708 ["npm:5.1.0", {\ 6709 "packageLocation": "./.yarn/unplugged/node-addon-api-npm-5.1.0-b50d00f739/node_modules/node-addon-api/",\ 6710 "packageDependencies": [\ 6711 ["node-addon-api", "npm:5.1.0"],\ 6712 ["node-gyp", "npm:9.3.1"]\ 6713 ],\ 6714 "linkType": "HARD"\ 6715 }]\ 6716 ]],\ 6717 ["node-fetch", [\ 6718 ["npm:2.6.8", {\ 6719 "packageLocation": "./.yarn/cache/node-fetch-npm-2.6.8-ddb8bfc274-91f57be68e.zip/node_modules/node-fetch/",\ 6720 "packageDependencies": [\ 6721 ["node-fetch", "npm:2.6.8"]\ 6722 ],\ 6723 "linkType": "SOFT"\ 6724 }],\ 6725 ["virtual:1811160047d7e0f7e43f371e07920c11204416dd6ae0b8461e04538b2f68e9167aca28b60b34dbd287674a5cdd52bd05be5797bbe2f7de916231958cb58055fb#npm:2.6.8", {\ 6726 "packageLocation": "./.yarn/__virtual__/node-fetch-virtual-4c40075230/0/cache/node-fetch-npm-2.6.8-ddb8bfc274-91f57be68e.zip/node_modules/node-fetch/",\ 6727 "packageDependencies": [\ 6728 ["node-fetch", "virtual:1811160047d7e0f7e43f371e07920c11204416dd6ae0b8461e04538b2f68e9167aca28b60b34dbd287674a5cdd52bd05be5797bbe2f7de916231958cb58055fb#npm:2.6.8"],\ 6729 ["@types/encoding", null],\ 6730 ["encoding", null],\ 6731 ["whatwg-url", "npm:5.0.0"]\ 6732 ],\ 6733 "packagePeers": [\ 6734 "@types/encoding",\ 6735 "encoding"\ 6736 ],\ 6737 "linkType": "HARD"\ 6738 }]\ 6739 ]],\ 6740 ["node-gyp", [\ 6741 ["npm:9.3.1", {\ 6742 "packageLocation": "./.yarn/unplugged/node-gyp-npm-9.3.1-43540bab9c/node_modules/node-gyp/",\ 6743 "packageDependencies": [\ 6744 ["node-gyp", "npm:9.3.1"],\ 6745 ["env-paths", "npm:2.2.1"],\ 6746 ["glob", "npm:7.2.3"],\ 6747 ["graceful-fs", "npm:4.2.10"],\ 6748 ["make-fetch-happen", "npm:10.2.1"],\ 6749 ["nopt", "npm:6.0.0"],\ 6750 ["npmlog", "npm:6.0.2"],\ 6751 ["rimraf", "npm:3.0.2"],\ 6752 ["semver", "npm:7.3.8"],\ 6753 ["tar", "npm:6.1.13"],\ 6754 ["which", "npm:2.0.2"]\ 6755 ],\ 6756 "linkType": "HARD"\ 6757 }]\ 6758 ]],\ 6759 ["node-int64", [\ 6760 ["npm:0.4.0", {\ 6761 "packageLocation": "./.yarn/cache/node-int64-npm-0.4.0-0dc04ec3b2-d0b30b1ee6.zip/node_modules/node-int64/",\ 6762 "packageDependencies": [\ 6763 ["node-int64", "npm:0.4.0"]\ 6764 ],\ 6765 "linkType": "HARD"\ 6766 }]\ 6767 ]],\ 6768 ["node-releases", [\ 6769 ["npm:2.0.8", {\ 6770 "packageLocation": "./.yarn/cache/node-releases-npm-2.0.8-1733e5f247-b1ab02c0d5.zip/node_modules/node-releases/",\ 6771 "packageDependencies": [\ 6772 ["node-releases", "npm:2.0.8"]\ 6773 ],\ 6774 "linkType": "HARD"\ 6775 }]\ 6776 ]],\ 6777 ["nodemailer", [\ 6778 ["npm:6.9.0", {\ 6779 "packageLocation": "./.yarn/cache/nodemailer-npm-6.9.0-67d1056668-152d38de71.zip/node_modules/nodemailer/",\ 6780 "packageDependencies": [\ 6781 ["nodemailer", "npm:6.9.0"]\ 6782 ],\ 6783 "linkType": "HARD"\ 6784 }]\ 6785 ]],\ 6786 ["nopt", [\ 6787 ["npm:5.0.0", {\ 6788 "packageLocation": "./.yarn/cache/nopt-npm-5.0.0-304b40fbfe-d35fdec187.zip/node_modules/nopt/",\ 6789 "packageDependencies": [\ 6790 ["nopt", "npm:5.0.0"],\ 6791 ["abbrev", "npm:1.1.1"]\ 6792 ],\ 6793 "linkType": "HARD"\ 6794 }],\ 6795 ["npm:6.0.0", {\ 6796 "packageLocation": "./.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip/node_modules/nopt/",\ 6797 "packageDependencies": [\ 6798 ["nopt", "npm:6.0.0"],\ 6799 ["abbrev", "npm:1.1.1"]\ 6800 ],\ 6801 "linkType": "HARD"\ 6802 }]\ 6803 ]],\ 6804 ["normalize-path", [\ 6805 ["npm:3.0.0", {\ 6806 "packageLocation": "./.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip/node_modules/normalize-path/",\ 6807 "packageDependencies": [\ 6808 ["normalize-path", "npm:3.0.0"]\ 6809 ],\ 6810 "linkType": "HARD"\ 6811 }]\ 6812 ]],\ 6813 ["npm-run-path", [\ 6814 ["npm:4.0.1", {\ 6815 "packageLocation": "./.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-5374c0cea4.zip/node_modules/npm-run-path/",\ 6816 "packageDependencies": [\ 6817 ["npm-run-path", "npm:4.0.1"],\ 6818 ["path-key", "npm:3.1.1"]\ 6819 ],\ 6820 "linkType": "HARD"\ 6821 }]\ 6822 ]],\ 6823 ["npmlog", [\ 6824 ["npm:5.0.1", {\ 6825 "packageLocation": "./.yarn/cache/npmlog-npm-5.0.1-366cab64a2-516b266302.zip/node_modules/npmlog/",\ 6826 "packageDependencies": [\ 6827 ["npmlog", "npm:5.0.1"],\ 6828 ["are-we-there-yet", "npm:2.0.0"],\ 6829 ["console-control-strings", "npm:1.1.0"],\ 6830 ["gauge", "npm:3.0.2"],\ 6831 ["set-blocking", "npm:2.0.0"]\ 6832 ],\ 6833 "linkType": "HARD"\ 6834 }],\ 6835 ["npm:6.0.2", {\ 6836 "packageLocation": "./.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip/node_modules/npmlog/",\ 6837 "packageDependencies": [\ 6838 ["npmlog", "npm:6.0.2"],\ 6839 ["are-we-there-yet", "npm:3.0.1"],\ 6840 ["console-control-strings", "npm:1.1.0"],\ 6841 ["gauge", "npm:4.0.4"],\ 6842 ["set-blocking", "npm:2.0.0"]\ 6843 ],\ 6844 "linkType": "HARD"\ 6845 }]\ 6846 ]],\ 6847 ["nwsapi", [\ 6848 ["npm:2.2.2", {\ 6849 "packageLocation": "./.yarn/cache/nwsapi-npm-2.2.2-b77040326c-4376910629.zip/node_modules/nwsapi/",\ 6850 "packageDependencies": [\ 6851 ["nwsapi", "npm:2.2.2"]\ 6852 ],\ 6853 "linkType": "HARD"\ 6854 }]\ 6855 ]],\ 6856 ["object-assign", [\ 6857 ["npm:4.1.1", {\ 6858 "packageLocation": "./.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip/node_modules/object-assign/",\ 6859 "packageDependencies": [\ 6860 ["object-assign", "npm:4.1.1"]\ 6861 ],\ 6862 "linkType": "HARD"\ 6863 }]\ 6864 ]],\ 6865 ["object-inspect", [\ 6866 ["npm:1.12.3", {\ 6867 "packageLocation": "./.yarn/cache/object-inspect-npm-1.12.3-1e7d20f5ff-dabfd824d9.zip/node_modules/object-inspect/",\ 6868 "packageDependencies": [\ 6869 ["object-inspect", "npm:1.12.3"]\ 6870 ],\ 6871 "linkType": "HARD"\ 6872 }]\ 6873 ]],\ 6874 ["object-is", [\ 6875 ["npm:1.1.5", {\ 6876 "packageLocation": "./.yarn/cache/object-is-npm-1.1.5-48a862602b-989b18c4cb.zip/node_modules/object-is/",\ 6877 "packageDependencies": [\ 6878 ["object-is", "npm:1.1.5"],\ 6879 ["call-bind", "npm:1.0.2"],\ 6880 ["define-properties", "npm:1.1.4"]\ 6881 ],\ 6882 "linkType": "HARD"\ 6883 }]\ 6884 ]],\ 6885 ["object-keys", [\ 6886 ["npm:1.1.1", {\ 6887 "packageLocation": "./.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-b363c5e764.zip/node_modules/object-keys/",\ 6888 "packageDependencies": [\ 6889 ["object-keys", "npm:1.1.1"]\ 6890 ],\ 6891 "linkType": "HARD"\ 6892 }]\ 6893 ]],\ 6894 ["object.assign", [\ 6895 ["npm:4.1.4", {\ 6896 "packageLocation": "./.yarn/cache/object.assign-npm-4.1.4-fb3deb1c3a-76cab513a5.zip/node_modules/object.assign/",\ 6897 "packageDependencies": [\ 6898 ["object.assign", "npm:4.1.4"],\ 6899 ["call-bind", "npm:1.0.2"],\ 6900 ["define-properties", "npm:1.1.4"],\ 6901 ["has-symbols", "npm:1.0.3"],\ 6902 ["object-keys", "npm:1.1.1"]\ 6903 ],\ 6904 "linkType": "HARD"\ 6905 }]\ 6906 ]],\ 6907 ["object.entries", [\ 6908 ["npm:1.1.6", {\ 6909 "packageLocation": "./.yarn/cache/object.entries-npm-1.1.6-5f9ba14b46-0f8c47517e.zip/node_modules/object.entries/",\ 6910 "packageDependencies": [\ 6911 ["object.entries", "npm:1.1.6"],\ 6912 ["call-bind", "npm:1.0.2"],\ 6913 ["define-properties", "npm:1.1.4"],\ 6914 ["es-abstract", "npm:1.21.1"]\ 6915 ],\ 6916 "linkType": "HARD"\ 6917 }]\ 6918 ]],\ 6919 ["object.fromentries", [\ 6920 ["npm:2.0.6", {\ 6921 "packageLocation": "./.yarn/cache/object.fromentries-npm-2.0.6-424cf4cd3c-453c6d6941.zip/node_modules/object.fromentries/",\ 6922 "packageDependencies": [\ 6923 ["object.fromentries", "npm:2.0.6"],\ 6924 ["call-bind", "npm:1.0.2"],\ 6925 ["define-properties", "npm:1.1.4"],\ 6926 ["es-abstract", "npm:1.21.1"]\ 6927 ],\ 6928 "linkType": "HARD"\ 6929 }]\ 6930 ]],\ 6931 ["object.hasown", [\ 6932 ["npm:1.1.2", {\ 6933 "packageLocation": "./.yarn/cache/object.hasown-npm-1.1.2-db9bbc7f97-b936572536.zip/node_modules/object.hasown/",\ 6934 "packageDependencies": [\ 6935 ["object.hasown", "npm:1.1.2"],\ 6936 ["define-properties", "npm:1.1.4"],\ 6937 ["es-abstract", "npm:1.21.1"]\ 6938 ],\ 6939 "linkType": "HARD"\ 6940 }]\ 6941 ]],\ 6942 ["object.values", [\ 6943 ["npm:1.1.6", {\ 6944 "packageLocation": "./.yarn/cache/object.values-npm-1.1.6-ab9b67ccd3-f6fff9fd81.zip/node_modules/object.values/",\ 6945 "packageDependencies": [\ 6946 ["object.values", "npm:1.1.6"],\ 6947 ["call-bind", "npm:1.0.2"],\ 6948 ["define-properties", "npm:1.1.4"],\ 6949 ["es-abstract", "npm:1.21.1"]\ 6950 ],\ 6951 "linkType": "HARD"\ 6952 }]\ 6953 ]],\ 6954 ["on-exit-leak-free", [\ 6955 ["npm:2.1.0", {\ 6956 "packageLocation": "./.yarn/cache/on-exit-leak-free-npm-2.1.0-b522202aa1-7334d98b87.zip/node_modules/on-exit-leak-free/",\ 6957 "packageDependencies": [\ 6958 ["on-exit-leak-free", "npm:2.1.0"]\ 6959 ],\ 6960 "linkType": "HARD"\ 6961 }]\ 6962 ]],\ 6963 ["once", [\ 6964 ["npm:1.4.0", {\ 6965 "packageLocation": "./.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip/node_modules/once/",\ 6966 "packageDependencies": [\ 6967 ["once", "npm:1.4.0"],\ 6968 ["wrappy", "npm:1.0.2"]\ 6969 ],\ 6970 "linkType": "HARD"\ 6971 }]\ 6972 ]],\ 6973 ["onetime", [\ 6974 ["npm:5.1.2", {\ 6975 "packageLocation": "./.yarn/cache/onetime-npm-5.1.2-3ed148fa42-2478859ef8.zip/node_modules/onetime/",\ 6976 "packageDependencies": [\ 6977 ["onetime", "npm:5.1.2"],\ 6978 ["mimic-fn", "npm:2.1.0"]\ 6979 ],\ 6980 "linkType": "HARD"\ 6981 }]\ 6982 ]],\ 6983 ["open", [\ 6984 ["npm:8.4.0", {\ 6985 "packageLocation": "./.yarn/unplugged/open-npm-8.4.0-df63cfe537/node_modules/open/",\ 6986 "packageDependencies": [\ 6987 ["open", "npm:8.4.0"],\ 6988 ["define-lazy-prop", "npm:2.0.0"],\ 6989 ["is-docker", "npm:2.2.1"],\ 6990 ["is-wsl", "npm:2.2.0"]\ 6991 ],\ 6992 "linkType": "HARD"\ 6993 }]\ 6994 ]],\ 6995 ["optionator", [\ 6996 ["npm:0.8.3", {\ 6997 "packageLocation": "./.yarn/cache/optionator-npm-0.8.3-bc555bc5b7-b8695ddf3d.zip/node_modules/optionator/",\ 6998 "packageDependencies": [\ 6999 ["optionator", "npm:0.8.3"],\ 7000 ["deep-is", "npm:0.1.4"],\ 7001 ["fast-levenshtein", "npm:2.0.6"],\ 7002 ["levn", "npm:0.3.0"],\ 7003 ["prelude-ls", "npm:1.1.2"],\ 7004 ["type-check", "npm:0.3.2"],\ 7005 ["word-wrap", "npm:1.2.3"]\ 7006 ],\ 7007 "linkType": "HARD"\ 7008 }],\ 7009 ["npm:0.9.1", {\ 7010 "packageLocation": "./.yarn/cache/optionator-npm-0.9.1-577e397aae-dbc6fa0656.zip/node_modules/optionator/",\ 7011 "packageDependencies": [\ 7012 ["optionator", "npm:0.9.1"],\ 7013 ["deep-is", "npm:0.1.4"],\ 7014 ["fast-levenshtein", "npm:2.0.6"],\ 7015 ["levn", "npm:0.4.1"],\ 7016 ["prelude-ls", "npm:1.2.1"],\ 7017 ["type-check", "npm:0.4.0"],\ 7018 ["word-wrap", "npm:1.2.3"]\ 7019 ],\ 7020 "linkType": "HARD"\ 7021 }]\ 7022 ]],\ 7023 ["p-limit", [\ 7024 ["npm:2.3.0", {\ 7025 "packageLocation": "./.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip/node_modules/p-limit/",\ 7026 "packageDependencies": [\ 7027 ["p-limit", "npm:2.3.0"],\ 7028 ["p-try", "npm:2.2.0"]\ 7029 ],\ 7030 "linkType": "HARD"\ 7031 }],\ 7032 ["npm:3.1.0", {\ 7033 "packageLocation": "./.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.zip/node_modules/p-limit/",\ 7034 "packageDependencies": [\ 7035 ["p-limit", "npm:3.1.0"],\ 7036 ["yocto-queue", "npm:0.1.0"]\ 7037 ],\ 7038 "linkType": "HARD"\ 7039 }]\ 7040 ]],\ 7041 ["p-locate", [\ 7042 ["npm:4.1.0", {\ 7043 "packageLocation": "./.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip/node_modules/p-locate/",\ 7044 "packageDependencies": [\ 7045 ["p-locate", "npm:4.1.0"],\ 7046 ["p-limit", "npm:2.3.0"]\ 7047 ],\ 7048 "linkType": "HARD"\ 7049 }],\ 7050 ["npm:5.0.0", {\ 7051 "packageLocation": "./.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-1623088f36.zip/node_modules/p-locate/",\ 7052 "packageDependencies": [\ 7053 ["p-locate", "npm:5.0.0"],\ 7054 ["p-limit", "npm:3.1.0"]\ 7055 ],\ 7056 "linkType": "HARD"\ 7057 }]\ 7058 ]],\ 7059 ["p-map", [\ 7060 ["npm:4.0.0", {\ 7061 "packageLocation": "./.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip/node_modules/p-map/",\ 7062 "packageDependencies": [\ 7063 ["p-map", "npm:4.0.0"],\ 7064 ["aggregate-error", "npm:3.1.0"]\ 7065 ],\ 7066 "linkType": "HARD"\ 7067 }]\ 7068 ]],\ 7069 ["p-try", [\ 7070 ["npm:2.2.0", {\ 7071 "packageLocation": "./.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip/node_modules/p-try/",\ 7072 "packageDependencies": [\ 7073 ["p-try", "npm:2.2.0"]\ 7074 ],\ 7075 "linkType": "HARD"\ 7076 }]\ 7077 ]],\ 7078 ["parent-module", [\ 7079 ["npm:1.0.1", {\ 7080 "packageLocation": "./.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip/node_modules/parent-module/",\ 7081 "packageDependencies": [\ 7082 ["parent-module", "npm:1.0.1"],\ 7083 ["callsites", "npm:3.1.0"]\ 7084 ],\ 7085 "linkType": "HARD"\ 7086 }]\ 7087 ]],\ 7088 ["parse-json", [\ 7089 ["npm:5.2.0", {\ 7090 "packageLocation": "./.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip/node_modules/parse-json/",\ 7091 "packageDependencies": [\ 7092 ["parse-json", "npm:5.2.0"],\ 7093 ["@babel/code-frame", "npm:7.18.6"],\ 7094 ["error-ex", "npm:1.3.2"],\ 7095 ["json-parse-even-better-errors", "npm:2.3.1"],\ 7096 ["lines-and-columns", "npm:1.2.4"]\ 7097 ],\ 7098 "linkType": "HARD"\ 7099 }]\ 7100 ]],\ 7101 ["parse5", [\ 7102 ["npm:7.1.2", {\ 7103 "packageLocation": "./.yarn/cache/parse5-npm-7.1.2-aa9a92c270-59465dd05e.zip/node_modules/parse5/",\ 7104 "packageDependencies": [\ 7105 ["parse5", "npm:7.1.2"],\ 7106 ["entities", "npm:4.4.0"]\ 7107 ],\ 7108 "linkType": "HARD"\ 7109 }]\ 7110 ]],\ 7111 ["path-exists", [\ 7112 ["npm:4.0.0", {\ 7113 "packageLocation": "./.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip/node_modules/path-exists/",\ 7114 "packageDependencies": [\ 7115 ["path-exists", "npm:4.0.0"]\ 7116 ],\ 7117 "linkType": "HARD"\ 7118 }]\ 7119 ]],\ 7120 ["path-is-absolute", [\ 7121 ["npm:1.0.1", {\ 7122 "packageLocation": "./.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip/node_modules/path-is-absolute/",\ 7123 "packageDependencies": [\ 7124 ["path-is-absolute", "npm:1.0.1"]\ 7125 ],\ 7126 "linkType": "HARD"\ 7127 }]\ 7128 ]],\ 7129 ["path-key", [\ 7130 ["npm:3.1.1", {\ 7131 "packageLocation": "./.yarn/cache/path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip/node_modules/path-key/",\ 7132 "packageDependencies": [\ 7133 ["path-key", "npm:3.1.1"]\ 7134 ],\ 7135 "linkType": "HARD"\ 7136 }]\ 7137 ]],\ 7138 ["path-parse", [\ 7139 ["npm:1.0.7", {\ 7140 "packageLocation": "./.yarn/cache/path-parse-npm-1.0.7-09564527b7-49abf3d811.zip/node_modules/path-parse/",\ 7141 "packageDependencies": [\ 7142 ["path-parse", "npm:1.0.7"]\ 7143 ],\ 7144 "linkType": "HARD"\ 7145 }]\ 7146 ]],\ 7147 ["path-type", [\ 7148 ["npm:4.0.0", {\ 7149 "packageLocation": "./.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip/node_modules/path-type/",\ 7150 "packageDependencies": [\ 7151 ["path-type", "npm:4.0.0"]\ 7152 ],\ 7153 "linkType": "HARD"\ 7154 }]\ 7155 ]],\ 7156 ["picocolors", [\ 7157 ["npm:1.0.0", {\ 7158 "packageLocation": "./.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip/node_modules/picocolors/",\ 7159 "packageDependencies": [\ 7160 ["picocolors", "npm:1.0.0"]\ 7161 ],\ 7162 "linkType": "HARD"\ 7163 }]\ 7164 ]],\ 7165 ["picomatch", [\ 7166 ["npm:2.3.1", {\ 7167 "packageLocation": "./.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip/node_modules/picomatch/",\ 7168 "packageDependencies": [\ 7169 ["picomatch", "npm:2.3.1"]\ 7170 ],\ 7171 "linkType": "HARD"\ 7172 }]\ 7173 ]],\ 7174 ["pino", [\ 7175 ["npm:8.8.0", {\ 7176 "packageLocation": "./.yarn/cache/pino-npm-8.8.0-827ae46607-6925646922.zip/node_modules/pino/",\ 7177 "packageDependencies": [\ 7178 ["pino", "npm:8.8.0"],\ 7179 ["atomic-sleep", "npm:1.0.0"],\ 7180 ["fast-redact", "npm:3.1.2"],\ 7181 ["on-exit-leak-free", "npm:2.1.0"],\ 7182 ["pino-abstract-transport", "npm:1.0.0"],\ 7183 ["pino-std-serializers", "npm:6.1.0"],\ 7184 ["process-warning", "npm:2.1.0"],\ 7185 ["quick-format-unescaped", "npm:4.0.4"],\ 7186 ["real-require", "npm:0.2.0"],\ 7187 ["safe-stable-stringify", "npm:2.4.2"],\ 7188 ["sonic-boom", "npm:3.2.1"],\ 7189 ["thread-stream", "npm:2.3.0"]\ 7190 ],\ 7191 "linkType": "HARD"\ 7192 }]\ 7193 ]],\ 7194 ["pino-abstract-transport", [\ 7195 ["npm:1.0.0", {\ 7196 "packageLocation": "./.yarn/cache/pino-abstract-transport-npm-1.0.0-a566611547-05dd0eda52.zip/node_modules/pino-abstract-transport/",\ 7197 "packageDependencies": [\ 7198 ["pino-abstract-transport", "npm:1.0.0"],\ 7199 ["readable-stream", "npm:4.3.0"],\ 7200 ["split2", "npm:4.1.0"]\ 7201 ],\ 7202 "linkType": "HARD"\ 7203 }]\ 7204 ]],\ 7205 ["pino-std-serializers", [\ 7206 ["npm:6.1.0", {\ 7207 "packageLocation": "./.yarn/cache/pino-std-serializers-npm-6.1.0-849611aa5b-5e42327c24.zip/node_modules/pino-std-serializers/",\ 7208 "packageDependencies": [\ 7209 ["pino-std-serializers", "npm:6.1.0"]\ 7210 ],\ 7211 "linkType": "HARD"\ 7212 }]\ 7213 ]],\ 7214 ["pirates", [\ 7215 ["npm:4.0.5", {\ 7216 "packageLocation": "./.yarn/cache/pirates-npm-4.0.5-22f8e827ce-c9994e61b8.zip/node_modules/pirates/",\ 7217 "packageDependencies": [\ 7218 ["pirates", "npm:4.0.5"]\ 7219 ],\ 7220 "linkType": "HARD"\ 7221 }]\ 7222 ]],\ 7223 ["pkg-dir", [\ 7224 ["npm:4.2.0", {\ 7225 "packageLocation": "./.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-9863e3f351.zip/node_modules/pkg-dir/",\ 7226 "packageDependencies": [\ 7227 ["pkg-dir", "npm:4.2.0"],\ 7228 ["find-up", "npm:4.1.0"]\ 7229 ],\ 7230 "linkType": "HARD"\ 7231 }]\ 7232 ]],\ 7233 ["postcss", [\ 7234 ["npm:8.4.14", {\ 7235 "packageLocation": "./.yarn/cache/postcss-npm-8.4.14-c0d448b728-fe58766ff3.zip/node_modules/postcss/",\ 7236 "packageDependencies": [\ 7237 ["postcss", "npm:8.4.14"],\ 7238 ["nanoid", "npm:3.3.4"],\ 7239 ["picocolors", "npm:1.0.0"],\ 7240 ["source-map-js", "npm:1.0.2"]\ 7241 ],\ 7242 "linkType": "HARD"\ 7243 }]\ 7244 ]],\ 7245 ["prelude-ls", [\ 7246 ["npm:1.1.2", {\ 7247 "packageLocation": "./.yarn/cache/prelude-ls-npm-1.1.2-a0daac0886-c4867c8748.zip/node_modules/prelude-ls/",\ 7248 "packageDependencies": [\ 7249 ["prelude-ls", "npm:1.1.2"]\ 7250 ],\ 7251 "linkType": "HARD"\ 7252 }],\ 7253 ["npm:1.2.1", {\ 7254 "packageLocation": "./.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-cd192ec0d0.zip/node_modules/prelude-ls/",\ 7255 "packageDependencies": [\ 7256 ["prelude-ls", "npm:1.2.1"]\ 7257 ],\ 7258 "linkType": "HARD"\ 7259 }]\ 7260 ]],\ 7261 ["pretty-format", [\ 7262 ["npm:27.5.1", {\ 7263 "packageLocation": "./.yarn/cache/pretty-format-npm-27.5.1-cd7d49696f-cf610cffcb.zip/node_modules/pretty-format/",\ 7264 "packageDependencies": [\ 7265 ["pretty-format", "npm:27.5.1"],\ 7266 ["ansi-regex", "npm:5.0.1"],\ 7267 ["ansi-styles", "npm:5.2.0"],\ 7268 ["react-is", "npm:17.0.2"]\ 7269 ],\ 7270 "linkType": "HARD"\ 7271 }],\ 7272 ["npm:29.3.1", {\ 7273 "packageLocation": "./.yarn/cache/pretty-format-npm-29.3.1-cf42cb4acb-9917a0bb85.zip/node_modules/pretty-format/",\ 7274 "packageDependencies": [\ 7275 ["pretty-format", "npm:29.3.1"],\ 7276 ["@jest/schemas", "npm:29.0.0"],\ 7277 ["ansi-styles", "npm:5.2.0"],\ 7278 ["react-is", "npm:18.2.0"]\ 7279 ],\ 7280 "linkType": "HARD"\ 7281 }]\ 7282 ]],\ 7283 ["process", [\ 7284 ["npm:0.11.10", {\ 7285 "packageLocation": "./.yarn/cache/process-npm-0.11.10-aeb3b641ae-bfcce49814.zip/node_modules/process/",\ 7286 "packageDependencies": [\ 7287 ["process", "npm:0.11.10"]\ 7288 ],\ 7289 "linkType": "HARD"\ 7290 }]\ 7291 ]],\ 7292 ["process-warning", [\ 7293 ["npm:2.1.0", {\ 7294 "packageLocation": "./.yarn/cache/process-warning-npm-2.1.0-9e82ce3778-2f22a3b8ec.zip/node_modules/process-warning/",\ 7295 "packageDependencies": [\ 7296 ["process-warning", "npm:2.1.0"]\ 7297 ],\ 7298 "linkType": "HARD"\ 7299 }]\ 7300 ]],\ 7301 ["promise-inflight", [\ 7302 ["npm:1.0.1", {\ 7303 "packageLocation": "./.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip/node_modules/promise-inflight/",\ 7304 "packageDependencies": [\ 7305 ["promise-inflight", "npm:1.0.1"]\ 7306 ],\ 7307 "linkType": "SOFT"\ 7308 }],\ 7309 ["virtual:4e2088ed0df52533102f445d7e7aeba6560b7effa0cabbc7cc20dd1e36a86dd838cc541de4414688f4ce3ec77b0ad5298cea6de581350d934ceb35c3e0fe3462#npm:1.0.1", {\ 7310 "packageLocation": "./.yarn/__virtual__/promise-inflight-virtual-faec2dbb37/0/cache/promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip/node_modules/promise-inflight/",\ 7311 "packageDependencies": [\ 7312 ["promise-inflight", "virtual:4e2088ed0df52533102f445d7e7aeba6560b7effa0cabbc7cc20dd1e36a86dd838cc541de4414688f4ce3ec77b0ad5298cea6de581350d934ceb35c3e0fe3462#npm:1.0.1"],\ 7313 ["@types/bluebird", null],\ 7314 ["bluebird", null]\ 7315 ],\ 7316 "packagePeers": [\ 7317 "@types/bluebird",\ 7318 "bluebird"\ 7319 ],\ 7320 "linkType": "HARD"\ 7321 }]\ 7322 ]],\ 7323 ["promise-retry", [\ 7324 ["npm:2.0.1", {\ 7325 "packageLocation": "./.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip/node_modules/promise-retry/",\ 7326 "packageDependencies": [\ 7327 ["promise-retry", "npm:2.0.1"],\ 7328 ["err-code", "npm:2.0.3"],\ 7329 ["retry", "npm:0.12.0"]\ 7330 ],\ 7331 "linkType": "HARD"\ 7332 }]\ 7333 ]],\ 7334 ["prompts", [\ 7335 ["npm:2.4.2", {\ 7336 "packageLocation": "./.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-d8fd1fe638.zip/node_modules/prompts/",\ 7337 "packageDependencies": [\ 7338 ["prompts", "npm:2.4.2"],\ 7339 ["kleur", "npm:3.0.3"],\ 7340 ["sisteransi", "npm:1.0.5"]\ 7341 ],\ 7342 "linkType": "HARD"\ 7343 }]\ 7344 ]],\ 7345 ["prop-types", [\ 7346 ["npm:15.8.1", {\ 7347 "packageLocation": "./.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip/node_modules/prop-types/",\ 7348 "packageDependencies": [\ 7349 ["prop-types", "npm:15.8.1"],\ 7350 ["loose-envify", "npm:1.4.0"],\ 7351 ["object-assign", "npm:4.1.1"],\ 7352 ["react-is", "npm:16.13.1"]\ 7353 ],\ 7354 "linkType": "HARD"\ 7355 }]\ 7356 ]],\ 7357 ["psl", [\ 7358 ["npm:1.9.0", {\ 7359 "packageLocation": "./.yarn/cache/psl-npm-1.9.0-a546edad1a-20c4277f64.zip/node_modules/psl/",\ 7360 "packageDependencies": [\ 7361 ["psl", "npm:1.9.0"]\ 7362 ],\ 7363 "linkType": "HARD"\ 7364 }]\ 7365 ]],\ 7366 ["punycode", [\ 7367 ["npm:2.2.0", {\ 7368 "packageLocation": "./.yarn/cache/punycode-npm-2.2.0-9eb533dae1-32f291c1b1.zip/node_modules/punycode/",\ 7369 "packageDependencies": [\ 7370 ["punycode", "npm:2.2.0"]\ 7371 ],\ 7372 "linkType": "HARD"\ 7373 }]\ 7374 ]],\ 7375 ["querystringify", [\ 7376 ["npm:2.2.0", {\ 7377 "packageLocation": "./.yarn/cache/querystringify-npm-2.2.0-4e77c9f606-5641ea231b.zip/node_modules/querystringify/",\ 7378 "packageDependencies": [\ 7379 ["querystringify", "npm:2.2.0"]\ 7380 ],\ 7381 "linkType": "HARD"\ 7382 }]\ 7383 ]],\ 7384 ["queue-microtask", [\ 7385 ["npm:1.2.3", {\ 7386 "packageLocation": "./.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip/node_modules/queue-microtask/",\ 7387 "packageDependencies": [\ 7388 ["queue-microtask", "npm:1.2.3"]\ 7389 ],\ 7390 "linkType": "HARD"\ 7391 }]\ 7392 ]],\ 7393 ["quick-format-unescaped", [\ 7394 ["npm:4.0.4", {\ 7395 "packageLocation": "./.yarn/cache/quick-format-unescaped-npm-4.0.4-7e22c9b7dc-7bc32b9935.zip/node_modules/quick-format-unescaped/",\ 7396 "packageDependencies": [\ 7397 ["quick-format-unescaped", "npm:4.0.4"]\ 7398 ],\ 7399 "linkType": "HARD"\ 7400 }]\ 7401 ]],\ 7402 ["react", [\ 7403 ["npm:18.2.0", {\ 7404 "packageLocation": "./.yarn/cache/react-npm-18.2.0-1eae08fee2-88e38092da.zip/node_modules/react/",\ 7405 "packageDependencies": [\ 7406 ["react", "npm:18.2.0"],\ 7407 ["loose-envify", "npm:1.4.0"]\ 7408 ],\ 7409 "linkType": "HARD"\ 7410 }]\ 7411 ]],\ 7412 ["react-dom", [\ 7413 ["npm:18.2.0", {\ 7414 "packageLocation": "./.yarn/cache/react-dom-npm-18.2.0-dd675bca1c-7d323310be.zip/node_modules/react-dom/",\ 7415 "packageDependencies": [\ 7416 ["react-dom", "npm:18.2.0"]\ 7417 ],\ 7418 "linkType": "SOFT"\ 7419 }],\ 7420 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:18.2.0", {\ 7421 "packageLocation": "./.yarn/__virtual__/react-dom-virtual-ef6d631745/0/cache/react-dom-npm-18.2.0-dd675bca1c-7d323310be.zip/node_modules/react-dom/",\ 7422 "packageDependencies": [\ 7423 ["react-dom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:18.2.0"],\ 7424 ["@types/react", "npm:18.0.26"],\ 7425 ["loose-envify", "npm:1.4.0"],\ 7426 ["react", "npm:18.2.0"],\ 7427 ["scheduler", "npm:0.23.0"]\ 7428 ],\ 7429 "packagePeers": [\ 7430 "@types/react",\ 7431 "react"\ 7432 ],\ 7433 "linkType": "HARD"\ 7434 }]\ 7435 ]],\ 7436 ["react-hot-toast", [\ 7437 ["npm:2.4.0", {\ 7438 "packageLocation": "./.yarn/cache/react-hot-toast-npm-2.4.0-df9434bc58-910214496d.zip/node_modules/react-hot-toast/",\ 7439 "packageDependencies": [\ 7440 ["react-hot-toast", "npm:2.4.0"]\ 7441 ],\ 7442 "linkType": "SOFT"\ 7443 }],\ 7444 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:2.4.0", {\ 7445 "packageLocation": "./.yarn/__virtual__/react-hot-toast-virtual-fb9c773472/0/cache/react-hot-toast-npm-2.4.0-df9434bc58-910214496d.zip/node_modules/react-hot-toast/",\ 7446 "packageDependencies": [\ 7447 ["react-hot-toast", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:2.4.0"],\ 7448 ["@types/react", "npm:18.0.26"],\ 7449 ["@types/react-dom", "npm:18.0.10"],\ 7450 ["goober", "virtual:fb9c7734729e35124b57143a9a3090a64e7de6291d24560db9b56f966d0cf34bbc3d7321078118671e0aae2410d649021f8bac248a2e89fc41bf77987f9c3d18#npm:2.1.11"],\ 7451 ["react", "npm:18.2.0"],\ 7452 ["react-dom", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:18.2.0"]\ 7453 ],\ 7454 "packagePeers": [\ 7455 "@types/react-dom",\ 7456 "@types/react",\ 7457 "react-dom",\ 7458 "react"\ 7459 ],\ 7460 "linkType": "HARD"\ 7461 }]\ 7462 ]],\ 7463 ["react-is", [\ 7464 ["npm:16.13.1", {\ 7465 "packageLocation": "./.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip/node_modules/react-is/",\ 7466 "packageDependencies": [\ 7467 ["react-is", "npm:16.13.1"]\ 7468 ],\ 7469 "linkType": "HARD"\ 7470 }],\ 7471 ["npm:17.0.2", {\ 7472 "packageLocation": "./.yarn/cache/react-is-npm-17.0.2-091bbb8db6-9d6d111d89.zip/node_modules/react-is/",\ 7473 "packageDependencies": [\ 7474 ["react-is", "npm:17.0.2"]\ 7475 ],\ 7476 "linkType": "HARD"\ 7477 }],\ 7478 ["npm:18.2.0", {\ 7479 "packageLocation": "./.yarn/cache/react-is-npm-18.2.0-0cc5edb910-e72d0ba81b.zip/node_modules/react-is/",\ 7480 "packageDependencies": [\ 7481 ["react-is", "npm:18.2.0"]\ 7482 ],\ 7483 "linkType": "HARD"\ 7484 }]\ 7485 ]],\ 7486 ["readable-stream", [\ 7487 ["npm:3.6.0", {\ 7488 "packageLocation": "./.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-d4ea81502d.zip/node_modules/readable-stream/",\ 7489 "packageDependencies": [\ 7490 ["readable-stream", "npm:3.6.0"],\ 7491 ["inherits", "npm:2.0.4"],\ 7492 ["string_decoder", "npm:1.3.0"],\ 7493 ["util-deprecate", "npm:1.0.2"]\ 7494 ],\ 7495 "linkType": "HARD"\ 7496 }],\ 7497 ["npm:4.3.0", {\ 7498 "packageLocation": "./.yarn/cache/readable-stream-npm-4.3.0-11c60fc281-5f8d5fc1eb.zip/node_modules/readable-stream/",\ 7499 "packageDependencies": [\ 7500 ["readable-stream", "npm:4.3.0"],\ 7501 ["abort-controller", "npm:3.0.0"],\ 7502 ["buffer", "npm:6.0.3"],\ 7503 ["events", "npm:3.3.0"],\ 7504 ["process", "npm:0.11.10"]\ 7505 ],\ 7506 "linkType": "HARD"\ 7507 }]\ 7508 ]],\ 7509 ["readdirp", [\ 7510 ["npm:3.6.0", {\ 7511 "packageLocation": "./.yarn/cache/readdirp-npm-3.6.0-f950cc74ab-1ced032e6e.zip/node_modules/readdirp/",\ 7512 "packageDependencies": [\ 7513 ["readdirp", "npm:3.6.0"],\ 7514 ["picomatch", "npm:2.3.1"]\ 7515 ],\ 7516 "linkType": "HARD"\ 7517 }]\ 7518 ]],\ 7519 ["real-require", [\ 7520 ["npm:0.2.0", {\ 7521 "packageLocation": "./.yarn/cache/real-require-npm-0.2.0-7f69dbc7b6-fa060f19f2.zip/node_modules/real-require/",\ 7522 "packageDependencies": [\ 7523 ["real-require", "npm:0.2.0"]\ 7524 ],\ 7525 "linkType": "HARD"\ 7526 }]\ 7527 ]],\ 7528 ["redent", [\ 7529 ["npm:3.0.0", {\ 7530 "packageLocation": "./.yarn/cache/redent-npm-3.0.0-31892f4906-fa1ef20404.zip/node_modules/redent/",\ 7531 "packageDependencies": [\ 7532 ["redent", "npm:3.0.0"],\ 7533 ["indent-string", "npm:4.0.0"],\ 7534 ["strip-indent", "npm:3.0.0"]\ 7535 ],\ 7536 "linkType": "HARD"\ 7537 }]\ 7538 ]],\ 7539 ["redis", [\ 7540 ["npm:4.6.1", {\ 7541 "packageLocation": "./.yarn/cache/redis-npm-4.6.1-69fb823c06-0fc9811f4e.zip/node_modules/redis/",\ 7542 "packageDependencies": [\ 7543 ["redis", "npm:4.6.1"],\ 7544 ["@redis/bloom", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.2.0"],\ 7545 ["@redis/client", "npm:1.5.2"],\ 7546 ["@redis/graph", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.1.0"],\ 7547 ["@redis/json", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.0.4"],\ 7548 ["@redis/search", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.1.1"],\ 7549 ["@redis/time-series", "virtual:69fb823c06ba220e04106d60001a379cfbc41d4af4686d144cafeec2b1ef7ae478d490b2f27c6d3898fad210fb40aca27c942d5185cb9a3a1af894397b6b1841#npm:1.0.4"]\ 7550 ],\ 7551 "linkType": "HARD"\ 7552 }]\ 7553 ]],\ 7554 ["regenerator-runtime", [\ 7555 ["npm:0.13.11", {\ 7556 "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-27481628d2.zip/node_modules/regenerator-runtime/",\ 7557 "packageDependencies": [\ 7558 ["regenerator-runtime", "npm:0.13.11"]\ 7559 ],\ 7560 "linkType": "HARD"\ 7561 }]\ 7562 ]],\ 7563 ["regexp.prototype.flags", [\ 7564 ["npm:1.4.3", {\ 7565 "packageLocation": "./.yarn/cache/regexp.prototype.flags-npm-1.4.3-df1c08b65d-51228bae73.zip/node_modules/regexp.prototype.flags/",\ 7566 "packageDependencies": [\ 7567 ["regexp.prototype.flags", "npm:1.4.3"],\ 7568 ["call-bind", "npm:1.0.2"],\ 7569 ["define-properties", "npm:1.1.4"],\ 7570 ["functions-have-names", "npm:1.2.3"]\ 7571 ],\ 7572 "linkType": "HARD"\ 7573 }]\ 7574 ]],\ 7575 ["regexpp", [\ 7576 ["npm:3.2.0", {\ 7577 "packageLocation": "./.yarn/cache/regexpp-npm-3.2.0-2513f32cfc-a78dc5c715.zip/node_modules/regexpp/",\ 7578 "packageDependencies": [\ 7579 ["regexpp", "npm:3.2.0"]\ 7580 ],\ 7581 "linkType": "HARD"\ 7582 }]\ 7583 ]],\ 7584 ["require-directory", [\ 7585 ["npm:2.1.1", {\ 7586 "packageLocation": "./.yarn/cache/require-directory-npm-2.1.1-8608aee50b-fb47e70bf0.zip/node_modules/require-directory/",\ 7587 "packageDependencies": [\ 7588 ["require-directory", "npm:2.1.1"]\ 7589 ],\ 7590 "linkType": "HARD"\ 7591 }]\ 7592 ]],\ 7593 ["requires-port", [\ 7594 ["npm:1.0.0", {\ 7595 "packageLocation": "./.yarn/cache/requires-port-npm-1.0.0-fd036b488a-eee0e303ad.zip/node_modules/requires-port/",\ 7596 "packageDependencies": [\ 7597 ["requires-port", "npm:1.0.0"]\ 7598 ],\ 7599 "linkType": "HARD"\ 7600 }]\ 7601 ]],\ 7602 ["resolve", [\ 7603 ["patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d", {\ 7604 "packageLocation": "./.yarn/cache/resolve-patch-0c52e0e4f7-5656f4d0be.zip/node_modules/resolve/",\ 7605 "packageDependencies": [\ 7606 ["resolve", "patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d"],\ 7607 ["is-core-module", "npm:2.11.0"],\ 7608 ["path-parse", "npm:1.0.7"],\ 7609 ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ 7610 ],\ 7611 "linkType": "HARD"\ 7612 }],\ 7613 ["patch:resolve@npm%3A2.0.0-next.4#~builtin<compat/resolve>::version=2.0.0-next.4&hash=c3c19d", {\ 7614 "packageLocation": "./.yarn/cache/resolve-patch-34cda421ec-4bf9f4f8a4.zip/node_modules/resolve/",\ 7615 "packageDependencies": [\ 7616 ["resolve", "patch:resolve@npm%3A2.0.0-next.4#~builtin<compat/resolve>::version=2.0.0-next.4&hash=c3c19d"],\ 7617 ["is-core-module", "npm:2.11.0"],\ 7618 ["path-parse", "npm:1.0.7"],\ 7619 ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ 7620 ],\ 7621 "linkType": "HARD"\ 7622 }]\ 7623 ]],\ 7624 ["resolve-cwd", [\ 7625 ["npm:3.0.0", {\ 7626 "packageLocation": "./.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.zip/node_modules/resolve-cwd/",\ 7627 "packageDependencies": [\ 7628 ["resolve-cwd", "npm:3.0.0"],\ 7629 ["resolve-from", "npm:5.0.0"]\ 7630 ],\ 7631 "linkType": "HARD"\ 7632 }]\ 7633 ]],\ 7634 ["resolve-from", [\ 7635 ["npm:4.0.0", {\ 7636 "packageLocation": "./.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-f4ba0b8494.zip/node_modules/resolve-from/",\ 7637 "packageDependencies": [\ 7638 ["resolve-from", "npm:4.0.0"]\ 7639 ],\ 7640 "linkType": "HARD"\ 7641 }],\ 7642 ["npm:5.0.0", {\ 7643 "packageLocation": "./.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-4ceeb9113e.zip/node_modules/resolve-from/",\ 7644 "packageDependencies": [\ 7645 ["resolve-from", "npm:5.0.0"]\ 7646 ],\ 7647 "linkType": "HARD"\ 7648 }]\ 7649 ]],\ 7650 ["resolve.exports", [\ 7651 ["npm:1.1.1", {\ 7652 "packageLocation": "./.yarn/cache/resolve.exports-npm-1.1.1-26b48a30b5-485aa10082.zip/node_modules/resolve.exports/",\ 7653 "packageDependencies": [\ 7654 ["resolve.exports", "npm:1.1.1"]\ 7655 ],\ 7656 "linkType": "HARD"\ 7657 }]\ 7658 ]],\ 7659 ["retry", [\ 7660 ["npm:0.12.0", {\ 7661 "packageLocation": "./.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip/node_modules/retry/",\ 7662 "packageDependencies": [\ 7663 ["retry", "npm:0.12.0"]\ 7664 ],\ 7665 "linkType": "HARD"\ 7666 }]\ 7667 ]],\ 7668 ["reusify", [\ 7669 ["npm:1.0.4", {\ 7670 "packageLocation": "./.yarn/cache/reusify-npm-1.0.4-95ac4aec11-c3076ebcc2.zip/node_modules/reusify/",\ 7671 "packageDependencies": [\ 7672 ["reusify", "npm:1.0.4"]\ 7673 ],\ 7674 "linkType": "HARD"\ 7675 }]\ 7676 ]],\ 7677 ["rimraf", [\ 7678 ["npm:3.0.2", {\ 7679 "packageLocation": "./.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip/node_modules/rimraf/",\ 7680 "packageDependencies": [\ 7681 ["rimraf", "npm:3.0.2"],\ 7682 ["glob", "npm:7.2.3"]\ 7683 ],\ 7684 "linkType": "HARD"\ 7685 }]\ 7686 ]],\ 7687 ["run-parallel", [\ 7688 ["npm:1.2.0", {\ 7689 "packageLocation": "./.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip/node_modules/run-parallel/",\ 7690 "packageDependencies": [\ 7691 ["run-parallel", "npm:1.2.0"],\ 7692 ["queue-microtask", "npm:1.2.3"]\ 7693 ],\ 7694 "linkType": "HARD"\ 7695 }]\ 7696 ]],\ 7697 ["safe-buffer", [\ 7698 ["npm:5.2.1", {\ 7699 "packageLocation": "./.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip/node_modules/safe-buffer/",\ 7700 "packageDependencies": [\ 7701 ["safe-buffer", "npm:5.2.1"]\ 7702 ],\ 7703 "linkType": "HARD"\ 7704 }]\ 7705 ]],\ 7706 ["safe-regex-test", [\ 7707 ["npm:1.0.0", {\ 7708 "packageLocation": "./.yarn/cache/safe-regex-test-npm-1.0.0-e94a09b84e-bc566d8beb.zip/node_modules/safe-regex-test/",\ 7709 "packageDependencies": [\ 7710 ["safe-regex-test", "npm:1.0.0"],\ 7711 ["call-bind", "npm:1.0.2"],\ 7712 ["get-intrinsic", "npm:1.1.3"],\ 7713 ["is-regex", "npm:1.1.4"]\ 7714 ],\ 7715 "linkType": "HARD"\ 7716 }]\ 7717 ]],\ 7718 ["safe-stable-stringify", [\ 7719 ["npm:2.4.2", {\ 7720 "packageLocation": "./.yarn/cache/safe-stable-stringify-npm-2.4.2-26d12f7937-0324ba2e40.zip/node_modules/safe-stable-stringify/",\ 7721 "packageDependencies": [\ 7722 ["safe-stable-stringify", "npm:2.4.2"]\ 7723 ],\ 7724 "linkType": "HARD"\ 7725 }]\ 7726 ]],\ 7727 ["safer-buffer", [\ 7728 ["npm:2.1.2", {\ 7729 "packageLocation": "./.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip/node_modules/safer-buffer/",\ 7730 "packageDependencies": [\ 7731 ["safer-buffer", "npm:2.1.2"]\ 7732 ],\ 7733 "linkType": "HARD"\ 7734 }]\ 7735 ]],\ 7736 ["sass", [\ 7737 ["npm:1.57.1", {\ 7738 "packageLocation": "./.yarn/cache/sass-npm-1.57.1-bafdba484f-734a08781b.zip/node_modules/sass/",\ 7739 "packageDependencies": [\ 7740 ["sass", "npm:1.57.1"],\ 7741 ["chokidar", "npm:3.5.3"],\ 7742 ["immutable", "npm:4.2.2"],\ 7743 ["source-map-js", "npm:1.0.2"]\ 7744 ],\ 7745 "linkType": "HARD"\ 7746 }]\ 7747 ]],\ 7748 ["saxes", [\ 7749 ["npm:6.0.0", {\ 7750 "packageLocation": "./.yarn/cache/saxes-npm-6.0.0-31558949f5-d3fa3e2aaf.zip/node_modules/saxes/",\ 7751 "packageDependencies": [\ 7752 ["saxes", "npm:6.0.0"],\ 7753 ["xmlchars", "npm:2.2.0"]\ 7754 ],\ 7755 "linkType": "HARD"\ 7756 }]\ 7757 ]],\ 7758 ["scheduler", [\ 7759 ["npm:0.23.0", {\ 7760 "packageLocation": "./.yarn/cache/scheduler-npm-0.23.0-a379a6bc3b-d79192eeaa.zip/node_modules/scheduler/",\ 7761 "packageDependencies": [\ 7762 ["scheduler", "npm:0.23.0"],\ 7763 ["loose-envify", "npm:1.4.0"]\ 7764 ],\ 7765 "linkType": "HARD"\ 7766 }]\ 7767 ]],\ 7768 ["semver", [\ 7769 ["npm:6.3.0", {\ 7770 "packageLocation": "./.yarn/cache/semver-npm-6.3.0-b3eace8bfd-1b26ecf6db.zip/node_modules/semver/",\ 7771 "packageDependencies": [\ 7772 ["semver", "npm:6.3.0"]\ 7773 ],\ 7774 "linkType": "HARD"\ 7775 }],\ 7776 ["npm:7.3.8", {\ 7777 "packageLocation": "./.yarn/cache/semver-npm-7.3.8-25a996cb4f-ba9c7cbbf2.zip/node_modules/semver/",\ 7778 "packageDependencies": [\ 7779 ["semver", "npm:7.3.8"],\ 7780 ["lru-cache", "npm:6.0.0"]\ 7781 ],\ 7782 "linkType": "HARD"\ 7783 }]\ 7784 ]],\ 7785 ["seq-queue", [\ 7786 ["npm:0.0.5", {\ 7787 "packageLocation": "./.yarn/cache/seq-queue-npm-0.0.5-d5064d9793-f8695a6cb6.zip/node_modules/seq-queue/",\ 7788 "packageDependencies": [\ 7789 ["seq-queue", "npm:0.0.5"]\ 7790 ],\ 7791 "linkType": "HARD"\ 7792 }]\ 7793 ]],\ 7794 ["set-blocking", [\ 7795 ["npm:2.0.0", {\ 7796 "packageLocation": "./.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip/node_modules/set-blocking/",\ 7797 "packageDependencies": [\ 7798 ["set-blocking", "npm:2.0.0"]\ 7799 ],\ 7800 "linkType": "HARD"\ 7801 }]\ 7802 ]],\ 7803 ["shebang-command", [\ 7804 ["npm:2.0.0", {\ 7805 "packageLocation": "./.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip/node_modules/shebang-command/",\ 7806 "packageDependencies": [\ 7807 ["shebang-command", "npm:2.0.0"],\ 7808 ["shebang-regex", "npm:3.0.0"]\ 7809 ],\ 7810 "linkType": "HARD"\ 7811 }]\ 7812 ]],\ 7813 ["shebang-regex", [\ 7814 ["npm:3.0.0", {\ 7815 "packageLocation": "./.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip/node_modules/shebang-regex/",\ 7816 "packageDependencies": [\ 7817 ["shebang-regex", "npm:3.0.0"]\ 7818 ],\ 7819 "linkType": "HARD"\ 7820 }]\ 7821 ]],\ 7822 ["side-channel", [\ 7823 ["npm:1.0.4", {\ 7824 "packageLocation": "./.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-351e41b947.zip/node_modules/side-channel/",\ 7825 "packageDependencies": [\ 7826 ["side-channel", "npm:1.0.4"],\ 7827 ["call-bind", "npm:1.0.2"],\ 7828 ["get-intrinsic", "npm:1.1.3"],\ 7829 ["object-inspect", "npm:1.12.3"]\ 7830 ],\ 7831 "linkType": "HARD"\ 7832 }]\ 7833 ]],\ 7834 ["signal-exit", [\ 7835 ["npm:3.0.7", {\ 7836 "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip/node_modules/signal-exit/",\ 7837 "packageDependencies": [\ 7838 ["signal-exit", "npm:3.0.7"]\ 7839 ],\ 7840 "linkType": "HARD"\ 7841 }]\ 7842 ]],\ 7843 ["sisteransi", [\ 7844 ["npm:1.0.5", {\ 7845 "packageLocation": "./.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip/node_modules/sisteransi/",\ 7846 "packageDependencies": [\ 7847 ["sisteransi", "npm:1.0.5"]\ 7848 ],\ 7849 "linkType": "HARD"\ 7850 }]\ 7851 ]],\ 7852 ["slash", [\ 7853 ["npm:3.0.0", {\ 7854 "packageLocation": "./.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip/node_modules/slash/",\ 7855 "packageDependencies": [\ 7856 ["slash", "npm:3.0.0"]\ 7857 ],\ 7858 "linkType": "HARD"\ 7859 }],\ 7860 ["npm:4.0.0", {\ 7861 "packageLocation": "./.yarn/cache/slash-npm-4.0.0-ce4bbc4a80-da8e4af737.zip/node_modules/slash/",\ 7862 "packageDependencies": [\ 7863 ["slash", "npm:4.0.0"]\ 7864 ],\ 7865 "linkType": "HARD"\ 7866 }]\ 7867 ]],\ 7868 ["smart-buffer", [\ 7869 ["npm:4.2.0", {\ 7870 "packageLocation": "./.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip/node_modules/smart-buffer/",\ 7871 "packageDependencies": [\ 7872 ["smart-buffer", "npm:4.2.0"]\ 7873 ],\ 7874 "linkType": "HARD"\ 7875 }]\ 7876 ]],\ 7877 ["socks", [\ 7878 ["npm:2.7.1", {\ 7879 "packageLocation": "./.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip/node_modules/socks/",\ 7880 "packageDependencies": [\ 7881 ["socks", "npm:2.7.1"],\ 7882 ["ip", "npm:2.0.0"],\ 7883 ["smart-buffer", "npm:4.2.0"]\ 7884 ],\ 7885 "linkType": "HARD"\ 7886 }]\ 7887 ]],\ 7888 ["socks-proxy-agent", [\ 7889 ["npm:7.0.0", {\ 7890 "packageLocation": "./.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip/node_modules/socks-proxy-agent/",\ 7891 "packageDependencies": [\ 7892 ["socks-proxy-agent", "npm:7.0.0"],\ 7893 ["agent-base", "npm:6.0.2"],\ 7894 ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.4"],\ 7895 ["socks", "npm:2.7.1"]\ 7896 ],\ 7897 "linkType": "HARD"\ 7898 }]\ 7899 ]],\ 7900 ["sonic-boom", [\ 7901 ["npm:3.2.1", {\ 7902 "packageLocation": "./.yarn/cache/sonic-boom-npm-3.2.1-ddac56c4bc-674d0af31c.zip/node_modules/sonic-boom/",\ 7903 "packageDependencies": [\ 7904 ["sonic-boom", "npm:3.2.1"],\ 7905 ["atomic-sleep", "npm:1.0.0"]\ 7906 ],\ 7907 "linkType": "HARD"\ 7908 }]\ 7909 ]],\ 7910 ["source-map", [\ 7911 ["npm:0.6.1", {\ 7912 "packageLocation": "./.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ce8640cf.zip/node_modules/source-map/",\ 7913 "packageDependencies": [\ 7914 ["source-map", "npm:0.6.1"]\ 7915 ],\ 7916 "linkType": "HARD"\ 7917 }]\ 7918 ]],\ 7919 ["source-map-js", [\ 7920 ["npm:1.0.2", {\ 7921 "packageLocation": "./.yarn/cache/source-map-js-npm-1.0.2-ee4f9f9b30-c049a7fc4d.zip/node_modules/source-map-js/",\ 7922 "packageDependencies": [\ 7923 ["source-map-js", "npm:1.0.2"]\ 7924 ],\ 7925 "linkType": "HARD"\ 7926 }]\ 7927 ]],\ 7928 ["source-map-support", [\ 7929 ["npm:0.5.13", {\ 7930 "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.13-377dfd7321-933550047b.zip/node_modules/source-map-support/",\ 7931 "packageDependencies": [\ 7932 ["source-map-support", "npm:0.5.13"],\ 7933 ["buffer-from", "npm:1.1.2"],\ 7934 ["source-map", "npm:0.6.1"]\ 7935 ],\ 7936 "linkType": "HARD"\ 7937 }]\ 7938 ]],\ 7939 ["split2", [\ 7940 ["npm:4.1.0", {\ 7941 "packageLocation": "./.yarn/cache/split2-npm-4.1.0-1c1a4bd984-ec581597cb.zip/node_modules/split2/",\ 7942 "packageDependencies": [\ 7943 ["split2", "npm:4.1.0"]\ 7944 ],\ 7945 "linkType": "HARD"\ 7946 }]\ 7947 ]],\ 7948 ["sprintf-js", [\ 7949 ["npm:1.0.3", {\ 7950 "packageLocation": "./.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-19d79aec21.zip/node_modules/sprintf-js/",\ 7951 "packageDependencies": [\ 7952 ["sprintf-js", "npm:1.0.3"]\ 7953 ],\ 7954 "linkType": "HARD"\ 7955 }]\ 7956 ]],\ 7957 ["sqlstring", [\ 7958 ["npm:2.3.3", {\ 7959 "packageLocation": "./.yarn/cache/sqlstring-npm-2.3.3-2db6939570-1e7e2d51c3.zip/node_modules/sqlstring/",\ 7960 "packageDependencies": [\ 7961 ["sqlstring", "npm:2.3.3"]\ 7962 ],\ 7963 "linkType": "HARD"\ 7964 }]\ 7965 ]],\ 7966 ["ssri", [\ 7967 ["npm:9.0.1", {\ 7968 "packageLocation": "./.yarn/cache/ssri-npm-9.0.1-33ce27f4f8-fb58f5e46b.zip/node_modules/ssri/",\ 7969 "packageDependencies": [\ 7970 ["ssri", "npm:9.0.1"],\ 7971 ["minipass", "npm:3.3.6"]\ 7972 ],\ 7973 "linkType": "HARD"\ 7974 }]\ 7975 ]],\ 7976 ["stack-utils", [\ 7977 ["npm:2.0.6", {\ 7978 "packageLocation": "./.yarn/cache/stack-utils-npm-2.0.6-2be1099696-052bf4d25b.zip/node_modules/stack-utils/",\ 7979 "packageDependencies": [\ 7980 ["stack-utils", "npm:2.0.6"],\ 7981 ["escape-string-regexp", "npm:2.0.0"]\ 7982 ],\ 7983 "linkType": "HARD"\ 7984 }]\ 7985 ]],\ 7986 ["stop-iteration-iterator", [\ 7987 ["npm:1.0.0", {\ 7988 "packageLocation": "./.yarn/cache/stop-iteration-iterator-npm-1.0.0-ea451e1609-d04173690b.zip/node_modules/stop-iteration-iterator/",\ 7989 "packageDependencies": [\ 7990 ["stop-iteration-iterator", "npm:1.0.0"],\ 7991 ["internal-slot", "npm:1.0.4"]\ 7992 ],\ 7993 "linkType": "HARD"\ 7994 }]\ 7995 ]],\ 7996 ["string-length", [\ 7997 ["npm:4.0.2", {\ 7998 "packageLocation": "./.yarn/cache/string-length-npm-4.0.2-675173c7a2-ce85533ef5.zip/node_modules/string-length/",\ 7999 "packageDependencies": [\ 8000 ["string-length", "npm:4.0.2"],\ 8001 ["char-regex", "npm:1.0.2"],\ 8002 ["strip-ansi", "npm:6.0.1"]\ 8003 ],\ 8004 "linkType": "HARD"\ 8005 }]\ 8006 ]],\ 8007 ["string-width", [\ 8008 ["npm:4.2.3", {\ 8009 "packageLocation": "./.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip/node_modules/string-width/",\ 8010 "packageDependencies": [\ 8011 ["string-width", "npm:4.2.3"],\ 8012 ["emoji-regex", "npm:8.0.0"],\ 8013 ["is-fullwidth-code-point", "npm:3.0.0"],\ 8014 ["strip-ansi", "npm:6.0.1"]\ 8015 ],\ 8016 "linkType": "HARD"\ 8017 }]\ 8018 ]],\ 8019 ["string.prototype.matchall", [\ 8020 ["npm:4.0.8", {\ 8021 "packageLocation": "./.yarn/cache/string.prototype.matchall-npm-4.0.8-1feb1531b6-952da3a818.zip/node_modules/string.prototype.matchall/",\ 8022 "packageDependencies": [\ 8023 ["string.prototype.matchall", "npm:4.0.8"],\ 8024 ["call-bind", "npm:1.0.2"],\ 8025 ["define-properties", "npm:1.1.4"],\ 8026 ["es-abstract", "npm:1.21.1"],\ 8027 ["get-intrinsic", "npm:1.1.3"],\ 8028 ["has-symbols", "npm:1.0.3"],\ 8029 ["internal-slot", "npm:1.0.4"],\ 8030 ["regexp.prototype.flags", "npm:1.4.3"],\ 8031 ["side-channel", "npm:1.0.4"]\ 8032 ],\ 8033 "linkType": "HARD"\ 8034 }]\ 8035 ]],\ 8036 ["string.prototype.trimend", [\ 8037 ["npm:1.0.6", {\ 8038 "packageLocation": "./.yarn/cache/string.prototype.trimend-npm-1.0.6-304246ecc1-0fdc34645a.zip/node_modules/string.prototype.trimend/",\ 8039 "packageDependencies": [\ 8040 ["string.prototype.trimend", "npm:1.0.6"],\ 8041 ["call-bind", "npm:1.0.2"],\ 8042 ["define-properties", "npm:1.1.4"],\ 8043 ["es-abstract", "npm:1.21.1"]\ 8044 ],\ 8045 "linkType": "HARD"\ 8046 }]\ 8047 ]],\ 8048 ["string.prototype.trimstart", [\ 8049 ["npm:1.0.6", {\ 8050 "packageLocation": "./.yarn/cache/string.prototype.trimstart-npm-1.0.6-0926caea6c-89080feef4.zip/node_modules/string.prototype.trimstart/",\ 8051 "packageDependencies": [\ 8052 ["string.prototype.trimstart", "npm:1.0.6"],\ 8053 ["call-bind", "npm:1.0.2"],\ 8054 ["define-properties", "npm:1.1.4"],\ 8055 ["es-abstract", "npm:1.21.1"]\ 8056 ],\ 8057 "linkType": "HARD"\ 8058 }]\ 8059 ]],\ 8060 ["string_decoder", [\ 8061 ["npm:1.3.0", {\ 8062 "packageLocation": "./.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip/node_modules/string_decoder/",\ 8063 "packageDependencies": [\ 8064 ["string_decoder", "npm:1.3.0"],\ 8065 ["safe-buffer", "npm:5.2.1"]\ 8066 ],\ 8067 "linkType": "HARD"\ 8068 }]\ 8069 ]],\ 8070 ["strip-ansi", [\ 8071 ["npm:6.0.1", {\ 8072 "packageLocation": "./.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip/node_modules/strip-ansi/",\ 8073 "packageDependencies": [\ 8074 ["strip-ansi", "npm:6.0.1"],\ 8075 ["ansi-regex", "npm:5.0.1"]\ 8076 ],\ 8077 "linkType": "HARD"\ 8078 }]\ 8079 ]],\ 8080 ["strip-bom", [\ 8081 ["npm:3.0.0", {\ 8082 "packageLocation": "./.yarn/cache/strip-bom-npm-3.0.0-71e8f81ff9-8d50ff27b7.zip/node_modules/strip-bom/",\ 8083 "packageDependencies": [\ 8084 ["strip-bom", "npm:3.0.0"]\ 8085 ],\ 8086 "linkType": "HARD"\ 8087 }],\ 8088 ["npm:4.0.0", {\ 8089 "packageLocation": "./.yarn/cache/strip-bom-npm-4.0.0-97d367a64d-9dbcfbaf50.zip/node_modules/strip-bom/",\ 8090 "packageDependencies": [\ 8091 ["strip-bom", "npm:4.0.0"]\ 8092 ],\ 8093 "linkType": "HARD"\ 8094 }]\ 8095 ]],\ 8096 ["strip-final-newline", [\ 8097 ["npm:2.0.0", {\ 8098 "packageLocation": "./.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-69412b5e25.zip/node_modules/strip-final-newline/",\ 8099 "packageDependencies": [\ 8100 ["strip-final-newline", "npm:2.0.0"]\ 8101 ],\ 8102 "linkType": "HARD"\ 8103 }]\ 8104 ]],\ 8105 ["strip-indent", [\ 8106 ["npm:3.0.0", {\ 8107 "packageLocation": "./.yarn/cache/strip-indent-npm-3.0.0-519e75a28d-18f045d57d.zip/node_modules/strip-indent/",\ 8108 "packageDependencies": [\ 8109 ["strip-indent", "npm:3.0.0"],\ 8110 ["min-indent", "npm:1.0.1"]\ 8111 ],\ 8112 "linkType": "HARD"\ 8113 }]\ 8114 ]],\ 8115 ["strip-json-comments", [\ 8116 ["npm:3.1.1", {\ 8117 "packageLocation": "./.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-492f73e272.zip/node_modules/strip-json-comments/",\ 8118 "packageDependencies": [\ 8119 ["strip-json-comments", "npm:3.1.1"]\ 8120 ],\ 8121 "linkType": "HARD"\ 8122 }]\ 8123 ]],\ 8124 ["styled-jsx", [\ 8125 ["npm:5.1.1", {\ 8126 "packageLocation": "./.yarn/cache/styled-jsx-npm-5.1.1-2557a209ba-523a33b386.zip/node_modules/styled-jsx/",\ 8127 "packageDependencies": [\ 8128 ["styled-jsx", "npm:5.1.1"]\ 8129 ],\ 8130 "linkType": "SOFT"\ 8131 }],\ 8132 ["virtual:297677bc07d73ccdd3fd351a985268b98c7acd87436df6275a7cd6e7df2a441d3d4f2fbd956f04eb05287463ad1e0eebb94a2ecc2681c43c97e9cb4708eddd15#npm:5.1.1", {\ 8133 "packageLocation": "./.yarn/__virtual__/styled-jsx-virtual-96036ce3cc/0/cache/styled-jsx-npm-5.1.1-2557a209ba-523a33b386.zip/node_modules/styled-jsx/",\ 8134 "packageDependencies": [\ 8135 ["styled-jsx", "virtual:297677bc07d73ccdd3fd351a985268b98c7acd87436df6275a7cd6e7df2a441d3d4f2fbd956f04eb05287463ad1e0eebb94a2ecc2681c43c97e9cb4708eddd15#npm:5.1.1"],\ 8136 ["@babel/core", null],\ 8137 ["@types/babel-plugin-macros", null],\ 8138 ["@types/babel__core", null],\ 8139 ["@types/react", "npm:18.0.26"],\ 8140 ["babel-plugin-macros", null],\ 8141 ["client-only", "npm:0.0.1"],\ 8142 ["react", "npm:18.2.0"]\ 8143 ],\ 8144 "packagePeers": [\ 8145 "@babel/core",\ 8146 "@types/babel-plugin-macros",\ 8147 "@types/babel__core",\ 8148 "@types/react",\ 8149 "babel-plugin-macros",\ 8150 "react"\ 8151 ],\ 8152 "linkType": "HARD"\ 8153 }]\ 8154 ]],\ 8155 ["superjson", [\ 8156 ["npm:1.12.2", {\ 8157 "packageLocation": "./.yarn/cache/superjson-npm-1.12.2-e37d205ed2-cf7735e172.zip/node_modules/superjson/",\ 8158 "packageDependencies": [\ 8159 ["superjson", "npm:1.12.2"],\ 8160 ["copy-anything", "npm:3.0.3"]\ 8161 ],\ 8162 "linkType": "HARD"\ 8163 }]\ 8164 ]],\ 8165 ["supports-color", [\ 8166 ["npm:5.5.0", {\ 8167 "packageLocation": "./.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip/node_modules/supports-color/",\ 8168 "packageDependencies": [\ 8169 ["supports-color", "npm:5.5.0"],\ 8170 ["has-flag", "npm:3.0.0"]\ 8171 ],\ 8172 "linkType": "HARD"\ 8173 }],\ 8174 ["npm:7.2.0", {\ 8175 "packageLocation": "./.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip/node_modules/supports-color/",\ 8176 "packageDependencies": [\ 8177 ["supports-color", "npm:7.2.0"],\ 8178 ["has-flag", "npm:4.0.0"]\ 8179 ],\ 8180 "linkType": "HARD"\ 8181 }],\ 8182 ["npm:8.1.1", {\ 8183 "packageLocation": "./.yarn/cache/supports-color-npm-8.1.1-289e937149-c052193a7e.zip/node_modules/supports-color/",\ 8184 "packageDependencies": [\ 8185 ["supports-color", "npm:8.1.1"],\ 8186 ["has-flag", "npm:4.0.0"]\ 8187 ],\ 8188 "linkType": "HARD"\ 8189 }]\ 8190 ]],\ 8191 ["supports-preserve-symlinks-flag", [\ 8192 ["npm:1.0.0", {\ 8193 "packageLocation": "./.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip/node_modules/supports-preserve-symlinks-flag/",\ 8194 "packageDependencies": [\ 8195 ["supports-preserve-symlinks-flag", "npm:1.0.0"]\ 8196 ],\ 8197 "linkType": "HARD"\ 8198 }]\ 8199 ]],\ 8200 ["symbol-tree", [\ 8201 ["npm:3.2.4", {\ 8202 "packageLocation": "./.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-6e8fc7e148.zip/node_modules/symbol-tree/",\ 8203 "packageDependencies": [\ 8204 ["symbol-tree", "npm:3.2.4"]\ 8205 ],\ 8206 "linkType": "HARD"\ 8207 }]\ 8208 ]],\ 8209 ["synckit", [\ 8210 ["npm:0.8.4", {\ 8211 "packageLocation": "./.yarn/cache/synckit-npm-0.8.4-ee1ab9a997-83e054fe44.zip/node_modules/synckit/",\ 8212 "packageDependencies": [\ 8213 ["synckit", "npm:0.8.4"],\ 8214 ["@pkgr/utils", "npm:2.3.1"],\ 8215 ["tslib", "npm:2.4.1"]\ 8216 ],\ 8217 "linkType": "HARD"\ 8218 }]\ 8219 ]],\ 8220 ["tapable", [\ 8221 ["npm:2.2.1", {\ 8222 "packageLocation": "./.yarn/cache/tapable-npm-2.2.1-8cf5ff3039-3b7a1b4d86.zip/node_modules/tapable/",\ 8223 "packageDependencies": [\ 8224 ["tapable", "npm:2.2.1"]\ 8225 ],\ 8226 "linkType": "HARD"\ 8227 }]\ 8228 ]],\ 8229 ["tar", [\ 8230 ["npm:6.1.13", {\ 8231 "packageLocation": "./.yarn/cache/tar-npm-6.1.13-3234e72781-8a278bed12.zip/node_modules/tar/",\ 8232 "packageDependencies": [\ 8233 ["tar", "npm:6.1.13"],\ 8234 ["chownr", "npm:2.0.0"],\ 8235 ["fs-minipass", "npm:2.1.0"],\ 8236 ["minipass", "npm:4.0.0"],\ 8237 ["minizlib", "npm:2.1.2"],\ 8238 ["mkdirp", "npm:1.0.4"],\ 8239 ["yallist", "npm:4.0.0"]\ 8240 ],\ 8241 "linkType": "HARD"\ 8242 }]\ 8243 ]],\ 8244 ["test-exclude", [\ 8245 ["npm:6.0.0", {\ 8246 "packageLocation": "./.yarn/cache/test-exclude-npm-6.0.0-3fb03d69df-3b34a3d771.zip/node_modules/test-exclude/",\ 8247 "packageDependencies": [\ 8248 ["test-exclude", "npm:6.0.0"],\ 8249 ["@istanbuljs/schema", "npm:0.1.3"],\ 8250 ["glob", "npm:7.2.3"],\ 8251 ["minimatch", "npm:3.1.2"]\ 8252 ],\ 8253 "linkType": "HARD"\ 8254 }]\ 8255 ]],\ 8256 ["text-table", [\ 8257 ["npm:0.2.0", {\ 8258 "packageLocation": "./.yarn/cache/text-table-npm-0.2.0-d92a778b59-b6937a38c8.zip/node_modules/text-table/",\ 8259 "packageDependencies": [\ 8260 ["text-table", "npm:0.2.0"]\ 8261 ],\ 8262 "linkType": "HARD"\ 8263 }]\ 8264 ]],\ 8265 ["thread-stream", [\ 8266 ["npm:2.3.0", {\ 8267 "packageLocation": "./.yarn/cache/thread-stream-npm-2.3.0-77ee67ae69-e9ea58f9f3.zip/node_modules/thread-stream/",\ 8268 "packageDependencies": [\ 8269 ["thread-stream", "npm:2.3.0"],\ 8270 ["real-require", "npm:0.2.0"]\ 8271 ],\ 8272 "linkType": "HARD"\ 8273 }]\ 8274 ]],\ 8275 ["tiny-glob", [\ 8276 ["npm:0.2.9", {\ 8277 "packageLocation": "./.yarn/cache/tiny-glob-npm-0.2.9-068f4ab3f8-aea5801eb6.zip/node_modules/tiny-glob/",\ 8278 "packageDependencies": [\ 8279 ["tiny-glob", "npm:0.2.9"],\ 8280 ["globalyzer", "npm:0.1.0"],\ 8281 ["globrex", "npm:0.1.2"]\ 8282 ],\ 8283 "linkType": "HARD"\ 8284 }]\ 8285 ]],\ 8286 ["tmpl", [\ 8287 ["npm:1.0.5", {\ 8288 "packageLocation": "./.yarn/cache/tmpl-npm-1.0.5-d399ba37e2-cd922d9b85.zip/node_modules/tmpl/",\ 8289 "packageDependencies": [\ 8290 ["tmpl", "npm:1.0.5"]\ 8291 ],\ 8292 "linkType": "HARD"\ 8293 }]\ 8294 ]],\ 8295 ["to-fast-properties", [\ 8296 ["npm:2.0.0", {\ 8297 "packageLocation": "./.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip/node_modules/to-fast-properties/",\ 8298 "packageDependencies": [\ 8299 ["to-fast-properties", "npm:2.0.0"]\ 8300 ],\ 8301 "linkType": "HARD"\ 8302 }]\ 8303 ]],\ 8304 ["to-regex-range", [\ 8305 ["npm:5.0.1", {\ 8306 "packageLocation": "./.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip/node_modules/to-regex-range/",\ 8307 "packageDependencies": [\ 8308 ["to-regex-range", "npm:5.0.1"],\ 8309 ["is-number", "npm:7.0.0"]\ 8310 ],\ 8311 "linkType": "HARD"\ 8312 }]\ 8313 ]],\ 8314 ["tough-cookie", [\ 8315 ["npm:4.1.2", {\ 8316 "packageLocation": "./.yarn/cache/tough-cookie-npm-4.1.2-09068826e1-a7359e9a3e.zip/node_modules/tough-cookie/",\ 8317 "packageDependencies": [\ 8318 ["tough-cookie", "npm:4.1.2"],\ 8319 ["psl", "npm:1.9.0"],\ 8320 ["punycode", "npm:2.2.0"],\ 8321 ["universalify", "npm:0.2.0"],\ 8322 ["url-parse", "npm:1.5.10"]\ 8323 ],\ 8324 "linkType": "HARD"\ 8325 }]\ 8326 ]],\ 8327 ["tr46", [\ 8328 ["npm:0.0.3", {\ 8329 "packageLocation": "./.yarn/cache/tr46-npm-0.0.3-de53018915-726321c5ea.zip/node_modules/tr46/",\ 8330 "packageDependencies": [\ 8331 ["tr46", "npm:0.0.3"]\ 8332 ],\ 8333 "linkType": "HARD"\ 8334 }],\ 8335 ["npm:3.0.0", {\ 8336 "packageLocation": "./.yarn/cache/tr46-npm-3.0.0-e1ae1ea7c9-44c3cc6767.zip/node_modules/tr46/",\ 8337 "packageDependencies": [\ 8338 ["tr46", "npm:3.0.0"],\ 8339 ["punycode", "npm:2.2.0"]\ 8340 ],\ 8341 "linkType": "HARD"\ 8342 }]\ 8343 ]],\ 8344 ["tsconfig-paths", [\ 8345 ["npm:3.14.1", {\ 8346 "packageLocation": "./.yarn/cache/tsconfig-paths-npm-3.14.1-17a815b5c5-8afa01c673.zip/node_modules/tsconfig-paths/",\ 8347 "packageDependencies": [\ 8348 ["tsconfig-paths", "npm:3.14.1"],\ 8349 ["@types/json5", "npm:0.0.29"],\ 8350 ["json5", "npm:1.0.2"],\ 8351 ["minimist", "npm:1.2.7"],\ 8352 ["strip-bom", "npm:3.0.0"]\ 8353 ],\ 8354 "linkType": "HARD"\ 8355 }]\ 8356 ]],\ 8357 ["tslib", [\ 8358 ["npm:1.14.1", {\ 8359 "packageLocation": "./.yarn/cache/tslib-npm-1.14.1-102499115e-dbe628ef87.zip/node_modules/tslib/",\ 8360 "packageDependencies": [\ 8361 ["tslib", "npm:1.14.1"]\ 8362 ],\ 8363 "linkType": "HARD"\ 8364 }],\ 8365 ["npm:2.4.1", {\ 8366 "packageLocation": "./.yarn/cache/tslib-npm-2.4.1-36f0ed04db-19480d6e03.zip/node_modules/tslib/",\ 8367 "packageDependencies": [\ 8368 ["tslib", "npm:2.4.1"]\ 8369 ],\ 8370 "linkType": "HARD"\ 8371 }]\ 8372 ]],\ 8373 ["tsutils", [\ 8374 ["npm:3.21.0", {\ 8375 "packageLocation": "./.yarn/cache/tsutils-npm-3.21.0-347e6636c5-1843f4c1b2.zip/node_modules/tsutils/",\ 8376 "packageDependencies": [\ 8377 ["tsutils", "npm:3.21.0"]\ 8378 ],\ 8379 "linkType": "SOFT"\ 8380 }],\ 8381 ["virtual:7405f371622a6871c6a8d58e7bdb32f140e6bfae8a5e144f129244df6c027e2d160980c8d4cee0e4473d9243e7c00f918872fe46db463a64ee59e1da7e9c0d2d#npm:3.21.0", {\ 8382 "packageLocation": "./.yarn/__virtual__/tsutils-virtual-273c72fa9c/0/cache/tsutils-npm-3.21.0-347e6636c5-1843f4c1b2.zip/node_modules/tsutils/",\ 8383 "packageDependencies": [\ 8384 ["tsutils", "virtual:7405f371622a6871c6a8d58e7bdb32f140e6bfae8a5e144f129244df6c027e2d160980c8d4cee0e4473d9243e7c00f918872fe46db463a64ee59e1da7e9c0d2d#npm:3.21.0"],\ 8385 ["@types/typescript", null],\ 8386 ["tslib", "npm:1.14.1"],\ 8387 ["typescript", "patch:typescript@npm%3A4.9.4#~builtin<compat/typescript>::version=4.9.4&hash=ad5954"]\ 8388 ],\ 8389 "packagePeers": [\ 8390 "@types/typescript",\ 8391 "typescript"\ 8392 ],\ 8393 "linkType": "HARD"\ 8394 }]\ 8395 ]],\ 8396 ["type-check", [\ 8397 ["npm:0.3.2", {\ 8398 "packageLocation": "./.yarn/cache/type-check-npm-0.3.2-a4a38bb0b6-dd3b149564.zip/node_modules/type-check/",\ 8399 "packageDependencies": [\ 8400 ["type-check", "npm:0.3.2"],\ 8401 ["prelude-ls", "npm:1.1.2"]\ 8402 ],\ 8403 "linkType": "HARD"\ 8404 }],\ 8405 ["npm:0.4.0", {\ 8406 "packageLocation": "./.yarn/cache/type-check-npm-0.4.0-60565800ce-ec688ebfc9.zip/node_modules/type-check/",\ 8407 "packageDependencies": [\ 8408 ["type-check", "npm:0.4.0"],\ 8409 ["prelude-ls", "npm:1.2.1"]\ 8410 ],\ 8411 "linkType": "HARD"\ 8412 }]\ 8413 ]],\ 8414 ["type-detect", [\ 8415 ["npm:4.0.8", {\ 8416 "packageLocation": "./.yarn/cache/type-detect-npm-4.0.8-8d8127b901-62b5628bff.zip/node_modules/type-detect/",\ 8417 "packageDependencies": [\ 8418 ["type-detect", "npm:4.0.8"]\ 8419 ],\ 8420 "linkType": "HARD"\ 8421 }]\ 8422 ]],\ 8423 ["type-fest", [\ 8424 ["npm:0.20.2", {\ 8425 "packageLocation": "./.yarn/cache/type-fest-npm-0.20.2-b36432617f-4fb3272df2.zip/node_modules/type-fest/",\ 8426 "packageDependencies": [\ 8427 ["type-fest", "npm:0.20.2"]\ 8428 ],\ 8429 "linkType": "HARD"\ 8430 }],\ 8431 ["npm:0.21.3", {\ 8432 "packageLocation": "./.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-e6b32a3b38.zip/node_modules/type-fest/",\ 8433 "packageDependencies": [\ 8434 ["type-fest", "npm:0.21.3"]\ 8435 ],\ 8436 "linkType": "HARD"\ 8437 }]\ 8438 ]],\ 8439 ["typed-array-length", [\ 8440 ["npm:1.0.4", {\ 8441 "packageLocation": "./.yarn/cache/typed-array-length-npm-1.0.4-92771b81fc-2228febc93.zip/node_modules/typed-array-length/",\ 8442 "packageDependencies": [\ 8443 ["typed-array-length", "npm:1.0.4"],\ 8444 ["call-bind", "npm:1.0.2"],\ 8445 ["for-each", "npm:0.3.3"],\ 8446 ["is-typed-array", "npm:1.1.10"]\ 8447 ],\ 8448 "linkType": "HARD"\ 8449 }]\ 8450 ]],\ 8451 ["typescript", [\ 8452 ["patch:typescript@npm%3A4.9.4#~builtin<compat/typescript>::version=4.9.4&hash=ad5954", {\ 8453 "packageLocation": "./.yarn/cache/typescript-patch-7bc527fc0a-1caaea6cb7.zip/node_modules/typescript/",\ 8454 "packageDependencies": [\ 8455 ["typescript", "patch:typescript@npm%3A4.9.4#~builtin<compat/typescript>::version=4.9.4&hash=ad5954"]\ 8456 ],\ 8457 "linkType": "HARD"\ 8458 }]\ 8459 ]],\ 8460 ["uglify-js", [\ 8461 ["npm:3.17.4", {\ 8462 "packageLocation": "./.yarn/cache/uglify-js-npm-3.17.4-58d4ab56aa-7b3897df38.zip/node_modules/uglify-js/",\ 8463 "packageDependencies": [\ 8464 ["uglify-js", "npm:3.17.4"]\ 8465 ],\ 8466 "linkType": "HARD"\ 8467 }]\ 8468 ]],\ 8469 ["unbox-primitive", [\ 8470 ["npm:1.0.2", {\ 8471 "packageLocation": "./.yarn/cache/unbox-primitive-npm-1.0.2-cb56a05066-b7a1cf5862.zip/node_modules/unbox-primitive/",\ 8472 "packageDependencies": [\ 8473 ["unbox-primitive", "npm:1.0.2"],\ 8474 ["call-bind", "npm:1.0.2"],\ 8475 ["has-bigints", "npm:1.0.2"],\ 8476 ["has-symbols", "npm:1.0.3"],\ 8477 ["which-boxed-primitive", "npm:1.0.2"]\ 8478 ],\ 8479 "linkType": "HARD"\ 8480 }]\ 8481 ]],\ 8482 ["unique-filename", [\ 8483 ["npm:2.0.1", {\ 8484 "packageLocation": "./.yarn/cache/unique-filename-npm-2.0.1-183c6c7c2b-807acf3381.zip/node_modules/unique-filename/",\ 8485 "packageDependencies": [\ 8486 ["unique-filename", "npm:2.0.1"],\ 8487 ["unique-slug", "npm:3.0.0"]\ 8488 ],\ 8489 "linkType": "HARD"\ 8490 }]\ 8491 ]],\ 8492 ["unique-slug", [\ 8493 ["npm:3.0.0", {\ 8494 "packageLocation": "./.yarn/cache/unique-slug-npm-3.0.0-0b82e51577-49f8d915ba.zip/node_modules/unique-slug/",\ 8495 "packageDependencies": [\ 8496 ["unique-slug", "npm:3.0.0"],\ 8497 ["imurmurhash", "npm:0.1.4"]\ 8498 ],\ 8499 "linkType": "HARD"\ 8500 }]\ 8501 ]],\ 8502 ["universalify", [\ 8503 ["npm:0.2.0", {\ 8504 "packageLocation": "./.yarn/cache/universalify-npm-0.2.0-9984e61c10-e86134cb12.zip/node_modules/universalify/",\ 8505 "packageDependencies": [\ 8506 ["universalify", "npm:0.2.0"]\ 8507 ],\ 8508 "linkType": "HARD"\ 8509 }]\ 8510 ]],\ 8511 ["update-browserslist-db", [\ 8512 ["npm:1.0.10", {\ 8513 "packageLocation": "./.yarn/cache/update-browserslist-db-npm-1.0.10-676baf0b9f-12db73b4f6.zip/node_modules/update-browserslist-db/",\ 8514 "packageDependencies": [\ 8515 ["update-browserslist-db", "npm:1.0.10"]\ 8516 ],\ 8517 "linkType": "SOFT"\ 8518 }],\ 8519 ["virtual:7d64a96afc8cf9b31b95951ccc2f47931d0cf97faa526fd0d20448bf2c73ddf9f5ef9e5cd28839ae8b5791451df45079a407b3f4978367b4210748169f5848f6#npm:1.0.10", {\ 8520 "packageLocation": "./.yarn/__virtual__/update-browserslist-db-virtual-503d1f881e/0/cache/update-browserslist-db-npm-1.0.10-676baf0b9f-12db73b4f6.zip/node_modules/update-browserslist-db/",\ 8521 "packageDependencies": [\ 8522 ["update-browserslist-db", "virtual:7d64a96afc8cf9b31b95951ccc2f47931d0cf97faa526fd0d20448bf2c73ddf9f5ef9e5cd28839ae8b5791451df45079a407b3f4978367b4210748169f5848f6#npm:1.0.10"],\ 8523 ["@types/browserslist", null],\ 8524 ["browserslist", "npm:4.21.4"],\ 8525 ["escalade", "npm:3.1.1"],\ 8526 ["picocolors", "npm:1.0.0"]\ 8527 ],\ 8528 "packagePeers": [\ 8529 "@types/browserslist",\ 8530 "browserslist"\ 8531 ],\ 8532 "linkType": "HARD"\ 8533 }]\ 8534 ]],\ 8535 ["uri-js", [\ 8536 ["npm:4.4.1", {\ 8537 "packageLocation": "./.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-7167432de6.zip/node_modules/uri-js/",\ 8538 "packageDependencies": [\ 8539 ["uri-js", "npm:4.4.1"],\ 8540 ["punycode", "npm:2.2.0"]\ 8541 ],\ 8542 "linkType": "HARD"\ 8543 }]\ 8544 ]],\ 8545 ["url-parse", [\ 8546 ["npm:1.5.10", {\ 8547 "packageLocation": "./.yarn/cache/url-parse-npm-1.5.10-64fa2bcd6d-fbdba6b1d8.zip/node_modules/url-parse/",\ 8548 "packageDependencies": [\ 8549 ["url-parse", "npm:1.5.10"],\ 8550 ["querystringify", "npm:2.2.0"],\ 8551 ["requires-port", "npm:1.0.0"]\ 8552 ],\ 8553 "linkType": "HARD"\ 8554 }]\ 8555 ]],\ 8556 ["util-deprecate", [\ 8557 ["npm:1.0.2", {\ 8558 "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip/node_modules/util-deprecate/",\ 8559 "packageDependencies": [\ 8560 ["util-deprecate", "npm:1.0.2"]\ 8561 ],\ 8562 "linkType": "HARD"\ 8563 }]\ 8564 ]],\ 8565 ["v8-to-istanbul", [\ 8566 ["npm:9.0.1", {\ 8567 "packageLocation": "./.yarn/cache/v8-to-istanbul-npm-9.0.1-58bbce7857-a49c34bf0a.zip/node_modules/v8-to-istanbul/",\ 8568 "packageDependencies": [\ 8569 ["v8-to-istanbul", "npm:9.0.1"],\ 8570 ["@jridgewell/trace-mapping", "npm:0.3.17"],\ 8571 ["@types/istanbul-lib-coverage", "npm:2.0.4"],\ 8572 ["convert-source-map", "npm:1.9.0"]\ 8573 ],\ 8574 "linkType": "HARD"\ 8575 }]\ 8576 ]],\ 8577 ["w3c-xmlserializer", [\ 8578 ["npm:4.0.0", {\ 8579 "packageLocation": "./.yarn/cache/w3c-xmlserializer-npm-4.0.0-f09d0ec3fc-eba070e78d.zip/node_modules/w3c-xmlserializer/",\ 8580 "packageDependencies": [\ 8581 ["w3c-xmlserializer", "npm:4.0.0"],\ 8582 ["xml-name-validator", "npm:4.0.0"]\ 8583 ],\ 8584 "linkType": "HARD"\ 8585 }]\ 8586 ]],\ 8587 ["walker", [\ 8588 ["npm:1.0.8", {\ 8589 "packageLocation": "./.yarn/cache/walker-npm-1.0.8-b0a05b9478-ad7a257ea1.zip/node_modules/walker/",\ 8590 "packageDependencies": [\ 8591 ["walker", "npm:1.0.8"],\ 8592 ["makeerror", "npm:1.0.12"]\ 8593 ],\ 8594 "linkType": "HARD"\ 8595 }]\ 8596 ]],\ 8597 ["webidl-conversions", [\ 8598 ["npm:3.0.1", {\ 8599 "packageLocation": "./.yarn/cache/webidl-conversions-npm-3.0.1-60310f6a2b-c92a0a6ab9.zip/node_modules/webidl-conversions/",\ 8600 "packageDependencies": [\ 8601 ["webidl-conversions", "npm:3.0.1"]\ 8602 ],\ 8603 "linkType": "HARD"\ 8604 }],\ 8605 ["npm:7.0.0", {\ 8606 "packageLocation": "./.yarn/cache/webidl-conversions-npm-7.0.0-e8c8e30c68-f05588567a.zip/node_modules/webidl-conversions/",\ 8607 "packageDependencies": [\ 8608 ["webidl-conversions", "npm:7.0.0"]\ 8609 ],\ 8610 "linkType": "HARD"\ 8611 }]\ 8612 ]],\ 8613 ["whatwg-encoding", [\ 8614 ["npm:2.0.0", {\ 8615 "packageLocation": "./.yarn/cache/whatwg-encoding-npm-2.0.0-d7451f51b4-7087810c41.zip/node_modules/whatwg-encoding/",\ 8616 "packageDependencies": [\ 8617 ["whatwg-encoding", "npm:2.0.0"],\ 8618 ["iconv-lite", "npm:0.6.3"]\ 8619 ],\ 8620 "linkType": "HARD"\ 8621 }]\ 8622 ]],\ 8623 ["whatwg-mimetype", [\ 8624 ["npm:3.0.0", {\ 8625 "packageLocation": "./.yarn/cache/whatwg-mimetype-npm-3.0.0-5b617710c1-ce08bbb36b.zip/node_modules/whatwg-mimetype/",\ 8626 "packageDependencies": [\ 8627 ["whatwg-mimetype", "npm:3.0.0"]\ 8628 ],\ 8629 "linkType": "HARD"\ 8630 }]\ 8631 ]],\ 8632 ["whatwg-url", [\ 8633 ["npm:11.0.0", {\ 8634 "packageLocation": "./.yarn/cache/whatwg-url-npm-11.0.0-073529d93a-ed4826aaa5.zip/node_modules/whatwg-url/",\ 8635 "packageDependencies": [\ 8636 ["whatwg-url", "npm:11.0.0"],\ 8637 ["tr46", "npm:3.0.0"],\ 8638 ["webidl-conversions", "npm:7.0.0"]\ 8639 ],\ 8640 "linkType": "HARD"\ 8641 }],\ 8642 ["npm:5.0.0", {\ 8643 "packageLocation": "./.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-b8daed4ad3.zip/node_modules/whatwg-url/",\ 8644 "packageDependencies": [\ 8645 ["whatwg-url", "npm:5.0.0"],\ 8646 ["tr46", "npm:0.0.3"],\ 8647 ["webidl-conversions", "npm:3.0.1"]\ 8648 ],\ 8649 "linkType": "HARD"\ 8650 }]\ 8651 ]],\ 8652 ["which", [\ 8653 ["npm:2.0.2", {\ 8654 "packageLocation": "./.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip/node_modules/which/",\ 8655 "packageDependencies": [\ 8656 ["which", "npm:2.0.2"],\ 8657 ["isexe", "npm:2.0.0"]\ 8658 ],\ 8659 "linkType": "HARD"\ 8660 }]\ 8661 ]],\ 8662 ["which-boxed-primitive", [\ 8663 ["npm:1.0.2", {\ 8664 "packageLocation": "./.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-53ce774c73.zip/node_modules/which-boxed-primitive/",\ 8665 "packageDependencies": [\ 8666 ["which-boxed-primitive", "npm:1.0.2"],\ 8667 ["is-bigint", "npm:1.0.4"],\ 8668 ["is-boolean-object", "npm:1.1.2"],\ 8669 ["is-number-object", "npm:1.0.7"],\ 8670 ["is-string", "npm:1.0.7"],\ 8671 ["is-symbol", "npm:1.0.4"]\ 8672 ],\ 8673 "linkType": "HARD"\ 8674 }]\ 8675 ]],\ 8676 ["which-collection", [\ 8677 ["npm:1.0.1", {\ 8678 "packageLocation": "./.yarn/cache/which-collection-npm-1.0.1-cd2c054585-c815bbd163.zip/node_modules/which-collection/",\ 8679 "packageDependencies": [\ 8680 ["which-collection", "npm:1.0.1"],\ 8681 ["is-map", "npm:2.0.2"],\ 8682 ["is-set", "npm:2.0.2"],\ 8683 ["is-weakmap", "npm:2.0.1"],\ 8684 ["is-weakset", "npm:2.0.2"]\ 8685 ],\ 8686 "linkType": "HARD"\ 8687 }]\ 8688 ]],\ 8689 ["which-typed-array", [\ 8690 ["npm:1.1.9", {\ 8691 "packageLocation": "./.yarn/cache/which-typed-array-npm-1.1.9-9559c95dfc-fe0178ca44.zip/node_modules/which-typed-array/",\ 8692 "packageDependencies": [\ 8693 ["which-typed-array", "npm:1.1.9"],\ 8694 ["available-typed-arrays", "npm:1.0.5"],\ 8695 ["call-bind", "npm:1.0.2"],\ 8696 ["for-each", "npm:0.3.3"],\ 8697 ["gopd", "npm:1.0.1"],\ 8698 ["has-tostringtag", "npm:1.0.0"],\ 8699 ["is-typed-array", "npm:1.1.10"]\ 8700 ],\ 8701 "linkType": "HARD"\ 8702 }]\ 8703 ]],\ 8704 ["wide-align", [\ 8705 ["npm:1.1.5", {\ 8706 "packageLocation": "./.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip/node_modules/wide-align/",\ 8707 "packageDependencies": [\ 8708 ["wide-align", "npm:1.1.5"],\ 8709 ["string-width", "npm:4.2.3"]\ 8710 ],\ 8711 "linkType": "HARD"\ 8712 }]\ 8713 ]],\ 8714 ["word-wrap", [\ 8715 ["npm:1.2.3", {\ 8716 "packageLocation": "./.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-30b48f91fc.zip/node_modules/word-wrap/",\ 8717 "packageDependencies": [\ 8718 ["word-wrap", "npm:1.2.3"]\ 8719 ],\ 8720 "linkType": "HARD"\ 8721 }]\ 8722 ]],\ 8723 ["wordwrap", [\ 8724 ["npm:1.0.0", {\ 8725 "packageLocation": "./.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-2a44b27881.zip/node_modules/wordwrap/",\ 8726 "packageDependencies": [\ 8727 ["wordwrap", "npm:1.0.0"]\ 8728 ],\ 8729 "linkType": "HARD"\ 8730 }]\ 8731 ]],\ 8732 ["wrap-ansi", [\ 8733 ["npm:7.0.0", {\ 8734 "packageLocation": "./.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip/node_modules/wrap-ansi/",\ 8735 "packageDependencies": [\ 8736 ["wrap-ansi", "npm:7.0.0"],\ 8737 ["ansi-styles", "npm:4.3.0"],\ 8738 ["string-width", "npm:4.2.3"],\ 8739 ["strip-ansi", "npm:6.0.1"]\ 8740 ],\ 8741 "linkType": "HARD"\ 8742 }]\ 8743 ]],\ 8744 ["wrappy", [\ 8745 ["npm:1.0.2", {\ 8746 "packageLocation": "./.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip/node_modules/wrappy/",\ 8747 "packageDependencies": [\ 8748 ["wrappy", "npm:1.0.2"]\ 8749 ],\ 8750 "linkType": "HARD"\ 8751 }]\ 8752 ]],\ 8753 ["write-file-atomic", [\ 8754 ["npm:4.0.2", {\ 8755 "packageLocation": "./.yarn/cache/write-file-atomic-npm-4.0.2-661baae4aa-5da60bd4ee.zip/node_modules/write-file-atomic/",\ 8756 "packageDependencies": [\ 8757 ["write-file-atomic", "npm:4.0.2"],\ 8758 ["imurmurhash", "npm:0.1.4"],\ 8759 ["signal-exit", "npm:3.0.7"]\ 8760 ],\ 8761 "linkType": "HARD"\ 8762 }]\ 8763 ]],\ 8764 ["ws", [\ 8765 ["npm:8.12.0", {\ 8766 "packageLocation": "./.yarn/cache/ws-npm-8.12.0-4e21348613-818ff3f874.zip/node_modules/ws/",\ 8767 "packageDependencies": [\ 8768 ["ws", "npm:8.12.0"]\ 8769 ],\ 8770 "linkType": "SOFT"\ 8771 }],\ 8772 ["virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:8.12.0", {\ 8773 "packageLocation": "./.yarn/__virtual__/ws-virtual-49359431ed/0/cache/ws-npm-8.12.0-4e21348613-818ff3f874.zip/node_modules/ws/",\ 8774 "packageDependencies": [\ 8775 ["ws", "virtual:185201ad25745f54898a2e9f78d456a655eb75b6cdedfba903ba6a6b91ecfe544fb067556e53d84d3f5dee5e27bf03679e7ed01de96d422947cdba9f3cf4c1cd#npm:8.12.0"],\ 8776 ["@types/bufferutil", null],\ 8777 ["@types/utf-8-validate", null],\ 8778 ["bufferutil", null],\ 8779 ["utf-8-validate", null]\ 8780 ],\ 8781 "packagePeers": [\ 8782 "@types/bufferutil",\ 8783 "@types/utf-8-validate",\ 8784 "bufferutil",\ 8785 "utf-8-validate"\ 8786 ],\ 8787 "linkType": "HARD"\ 8788 }]\ 8789 ]],\ 8790 ["xml-name-validator", [\ 8791 ["npm:4.0.0", {\ 8792 "packageLocation": "./.yarn/cache/xml-name-validator-npm-4.0.0-0857c21729-af100b79c2.zip/node_modules/xml-name-validator/",\ 8793 "packageDependencies": [\ 8794 ["xml-name-validator", "npm:4.0.0"]\ 8795 ],\ 8796 "linkType": "HARD"\ 8797 }]\ 8798 ]],\ 8799 ["xmlchars", [\ 8800 ["npm:2.2.0", {\ 8801 "packageLocation": "./.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-8c70ac9407.zip/node_modules/xmlchars/",\ 8802 "packageDependencies": [\ 8803 ["xmlchars", "npm:2.2.0"]\ 8804 ],\ 8805 "linkType": "HARD"\ 8806 }]\ 8807 ]],\ 8808 ["y18n", [\ 8809 ["npm:5.0.8", {\ 8810 "packageLocation": "./.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-54f0fb9562.zip/node_modules/y18n/",\ 8811 "packageDependencies": [\ 8812 ["y18n", "npm:5.0.8"]\ 8813 ],\ 8814 "linkType": "HARD"\ 8815 }]\ 8816 ]],\ 8817 ["yallist", [\ 8818 ["npm:3.1.1", {\ 8819 "packageLocation": "./.yarn/cache/yallist-npm-3.1.1-a568a556b4-48f7bb00dc.zip/node_modules/yallist/",\ 8820 "packageDependencies": [\ 8821 ["yallist", "npm:3.1.1"]\ 8822 ],\ 8823 "linkType": "HARD"\ 8824 }],\ 8825 ["npm:4.0.0", {\ 8826 "packageLocation": "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/",\ 8827 "packageDependencies": [\ 8828 ["yallist", "npm:4.0.0"]\ 8829 ],\ 8830 "linkType": "HARD"\ 8831 }]\ 8832 ]],\ 8833 ["yaml", [\ 8834 ["npm:2.2.1", {\ 8835 "packageLocation": "./.yarn/cache/yaml-npm-2.2.1-b7f7f5e84d-84f68cbe46.zip/node_modules/yaml/",\ 8836 "packageDependencies": [\ 8837 ["yaml", "npm:2.2.1"]\ 8838 ],\ 8839 "linkType": "HARD"\ 8840 }]\ 8841 ]],\ 8842 ["yargs", [\ 8843 ["npm:17.6.2", {\ 8844 "packageLocation": "./.yarn/cache/yargs-npm-17.6.2-1dd8b38d1b-47da1b0d85.zip/node_modules/yargs/",\ 8845 "packageDependencies": [\ 8846 ["yargs", "npm:17.6.2"],\ 8847 ["cliui", "npm:8.0.1"],\ 8848 ["escalade", "npm:3.1.1"],\ 8849 ["get-caller-file", "npm:2.0.5"],\ 8850 ["require-directory", "npm:2.1.1"],\ 8851 ["string-width", "npm:4.2.3"],\ 8852 ["y18n", "npm:5.0.8"],\ 8853 ["yargs-parser", "npm:21.1.1"]\ 8854 ],\ 8855 "linkType": "HARD"\ 8856 }]\ 8857 ]],\ 8858 ["yargs-parser", [\ 8859 ["npm:21.1.1", {\ 8860 "packageLocation": "./.yarn/cache/yargs-parser-npm-21.1.1-8fdc003314-ed2d96a616.zip/node_modules/yargs-parser/",\ 8861 "packageDependencies": [\ 8862 ["yargs-parser", "npm:21.1.1"]\ 8863 ],\ 8864 "linkType": "HARD"\ 8865 }]\ 8866 ]],\ 8867 ["yocto-queue", [\ 8868 ["npm:0.1.0", {\ 8869 "packageLocation": "./.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip/node_modules/yocto-queue/",\ 8870 "packageDependencies": [\ 8871 ["yocto-queue", "npm:0.1.0"]\ 8872 ],\ 8873 "linkType": "HARD"\ 8874 }]\ 8875 ]]\ 8876 ]\ 8877 }'), {basePath: basePath || __dirname}); 8878 } 8879 8880 const fs = require('fs'); 8881 const path = require('path'); 8882 const require$$0 = require('module'); 8883 const StringDecoder = require('string_decoder'); 8884 const url = require('url'); 8885 const os = require('os'); 8886 const nodeUtils = require('util'); 8887 const readline = require('readline'); 8888 const assert = require('assert'); 8889 const stream = require('stream'); 8890 const zlib = require('zlib'); 8891 const events = require('events'); 8892 8893 const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; 8894 8895 function _interopNamespace(e) { 8896 if (e && e.__esModule) return e; 8897 const n = Object.create(null); 8898 if (e) { 8899 for (const k in e) { 8900 if (k !== 'default') { 8901 const d = Object.getOwnPropertyDescriptor(e, k); 8902 Object.defineProperty(n, k, d.get ? d : { 8903 enumerable: true, 8904 get: () => e[k] 8905 }); 8906 } 8907 } 8908 } 8909 n.default = e; 8910 return Object.freeze(n); 8911 } 8912 8913 const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); 8914 const path__default = /*#__PURE__*/_interopDefaultLegacy(path); 8915 const require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0); 8916 const StringDecoder__default = /*#__PURE__*/_interopDefaultLegacy(StringDecoder); 8917 const nodeUtils__namespace = /*#__PURE__*/_interopNamespace(nodeUtils); 8918 const assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); 8919 const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); 8920 8921 const S_IFMT = 61440; 8922 const S_IFDIR = 16384; 8923 const S_IFREG = 32768; 8924 const S_IFLNK = 40960; 8925 const SAFE_TIME = 456789e3; 8926 8927 const DEFAULT_MODE = S_IFREG | 420; 8928 class StatEntry { 8929 constructor() { 8930 this.uid = 0; 8931 this.gid = 0; 8932 this.size = 0; 8933 this.blksize = 0; 8934 this.atimeMs = 0; 8935 this.mtimeMs = 0; 8936 this.ctimeMs = 0; 8937 this.birthtimeMs = 0; 8938 this.atime = new Date(0); 8939 this.mtime = new Date(0); 8940 this.ctime = new Date(0); 8941 this.birthtime = new Date(0); 8942 this.dev = 0; 8943 this.ino = 0; 8944 this.mode = DEFAULT_MODE; 8945 this.nlink = 1; 8946 this.rdev = 0; 8947 this.blocks = 1; 8948 } 8949 isBlockDevice() { 8950 return false; 8951 } 8952 isCharacterDevice() { 8953 return false; 8954 } 8955 isDirectory() { 8956 return (this.mode & S_IFMT) === S_IFDIR; 8957 } 8958 isFIFO() { 8959 return false; 8960 } 8961 isFile() { 8962 return (this.mode & S_IFMT) === S_IFREG; 8963 } 8964 isSocket() { 8965 return false; 8966 } 8967 isSymbolicLink() { 8968 return (this.mode & S_IFMT) === S_IFLNK; 8969 } 8970 } 8971 class BigIntStatsEntry { 8972 constructor() { 8973 this.uid = BigInt(0); 8974 this.gid = BigInt(0); 8975 this.size = BigInt(0); 8976 this.blksize = BigInt(0); 8977 this.atimeMs = BigInt(0); 8978 this.mtimeMs = BigInt(0); 8979 this.ctimeMs = BigInt(0); 8980 this.birthtimeMs = BigInt(0); 8981 this.atimeNs = BigInt(0); 8982 this.mtimeNs = BigInt(0); 8983 this.ctimeNs = BigInt(0); 8984 this.birthtimeNs = BigInt(0); 8985 this.atime = new Date(0); 8986 this.mtime = new Date(0); 8987 this.ctime = new Date(0); 8988 this.birthtime = new Date(0); 8989 this.dev = BigInt(0); 8990 this.ino = BigInt(0); 8991 this.mode = BigInt(DEFAULT_MODE); 8992 this.nlink = BigInt(1); 8993 this.rdev = BigInt(0); 8994 this.blocks = BigInt(1); 8995 } 8996 isBlockDevice() { 8997 return false; 8998 } 8999 isCharacterDevice() { 9000 return false; 9001 } 9002 isDirectory() { 9003 return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFDIR); 9004 } 9005 isFIFO() { 9006 return false; 9007 } 9008 isFile() { 9009 return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFREG); 9010 } 9011 isSocket() { 9012 return false; 9013 } 9014 isSymbolicLink() { 9015 return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFLNK); 9016 } 9017 } 9018 function makeDefaultStats() { 9019 return new StatEntry(); 9020 } 9021 function clearStats(stats) { 9022 for (const key in stats) { 9023 if (Object.prototype.hasOwnProperty.call(stats, key)) { 9024 const element = stats[key]; 9025 if (typeof element === `number`) { 9026 stats[key] = 0; 9027 } else if (typeof element === `bigint`) { 9028 stats[key] = BigInt(0); 9029 } else if (nodeUtils__namespace.types.isDate(element)) { 9030 stats[key] = new Date(0); 9031 } 9032 } 9033 } 9034 return stats; 9035 } 9036 function convertToBigIntStats(stats) { 9037 const bigintStats = new BigIntStatsEntry(); 9038 for (const key in stats) { 9039 if (Object.prototype.hasOwnProperty.call(stats, key)) { 9040 const element = stats[key]; 9041 if (typeof element === `number`) { 9042 bigintStats[key] = BigInt(element); 9043 } else if (nodeUtils__namespace.types.isDate(element)) { 9044 bigintStats[key] = new Date(element); 9045 } 9046 } 9047 } 9048 bigintStats.atimeNs = bigintStats.atimeMs * BigInt(1e6); 9049 bigintStats.mtimeNs = bigintStats.mtimeMs * BigInt(1e6); 9050 bigintStats.ctimeNs = bigintStats.ctimeMs * BigInt(1e6); 9051 bigintStats.birthtimeNs = bigintStats.birthtimeMs * BigInt(1e6); 9052 return bigintStats; 9053 } 9054 function areStatsEqual(a, b) { 9055 if (a.atimeMs !== b.atimeMs) 9056 return false; 9057 if (a.birthtimeMs !== b.birthtimeMs) 9058 return false; 9059 if (a.blksize !== b.blksize) 9060 return false; 9061 if (a.blocks !== b.blocks) 9062 return false; 9063 if (a.ctimeMs !== b.ctimeMs) 9064 return false; 9065 if (a.dev !== b.dev) 9066 return false; 9067 if (a.gid !== b.gid) 9068 return false; 9069 if (a.ino !== b.ino) 9070 return false; 9071 if (a.isBlockDevice() !== b.isBlockDevice()) 9072 return false; 9073 if (a.isCharacterDevice() !== b.isCharacterDevice()) 9074 return false; 9075 if (a.isDirectory() !== b.isDirectory()) 9076 return false; 9077 if (a.isFIFO() !== b.isFIFO()) 9078 return false; 9079 if (a.isFile() !== b.isFile()) 9080 return false; 9081 if (a.isSocket() !== b.isSocket()) 9082 return false; 9083 if (a.isSymbolicLink() !== b.isSymbolicLink()) 9084 return false; 9085 if (a.mode !== b.mode) 9086 return false; 9087 if (a.mtimeMs !== b.mtimeMs) 9088 return false; 9089 if (a.nlink !== b.nlink) 9090 return false; 9091 if (a.rdev !== b.rdev) 9092 return false; 9093 if (a.size !== b.size) 9094 return false; 9095 if (a.uid !== b.uid) 9096 return false; 9097 const aN = a; 9098 const bN = b; 9099 if (aN.atimeNs !== bN.atimeNs) 9100 return false; 9101 if (aN.mtimeNs !== bN.mtimeNs) 9102 return false; 9103 if (aN.ctimeNs !== bN.ctimeNs) 9104 return false; 9105 if (aN.birthtimeNs !== bN.birthtimeNs) 9106 return false; 9107 return true; 9108 } 9109 9110 const PortablePath = { 9111 root: `/`, 9112 dot: `.`, 9113 parent: `..` 9114 }; 9115 const Filename = { 9116 nodeModules: `node_modules`, 9117 manifest: `package.json`, 9118 lockfile: `yarn.lock`, 9119 virtual: `__virtual__`, 9120 pnpJs: `.pnp.js`, 9121 pnpCjs: `.pnp.cjs`, 9122 rc: `.yarnrc.yml` 9123 }; 9124 const npath = Object.create(path__default.default); 9125 const ppath = Object.create(path__default.default.posix); 9126 npath.cwd = () => process.cwd(); 9127 ppath.cwd = () => toPortablePath(process.cwd()); 9128 ppath.resolve = (...segments) => { 9129 if (segments.length > 0 && ppath.isAbsolute(segments[0])) { 9130 return path__default.default.posix.resolve(...segments); 9131 } else { 9132 return path__default.default.posix.resolve(ppath.cwd(), ...segments); 9133 } 9134 }; 9135 const contains = function(pathUtils, from, to) { 9136 from = pathUtils.normalize(from); 9137 to = pathUtils.normalize(to); 9138 if (from === to) 9139 return `.`; 9140 if (!from.endsWith(pathUtils.sep)) 9141 from = from + pathUtils.sep; 9142 if (to.startsWith(from)) { 9143 return to.slice(from.length); 9144 } else { 9145 return null; 9146 } 9147 }; 9148 npath.fromPortablePath = fromPortablePath; 9149 npath.toPortablePath = toPortablePath; 9150 npath.contains = (from, to) => contains(npath, from, to); 9151 ppath.contains = (from, to) => contains(ppath, from, to); 9152 const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; 9153 const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; 9154 const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; 9155 const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; 9156 function fromPortablePath(p) { 9157 if (process.platform !== `win32`) 9158 return p; 9159 let portablePathMatch, uncPortablePathMatch; 9160 if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) 9161 p = portablePathMatch[1]; 9162 else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) 9163 p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; 9164 else 9165 return p; 9166 return p.replace(/\//g, `\\`); 9167 } 9168 function toPortablePath(p) { 9169 if (process.platform !== `win32`) 9170 return p; 9171 p = p.replace(/\\/g, `/`); 9172 let windowsPathMatch, uncWindowsPathMatch; 9173 if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) 9174 p = `/${windowsPathMatch[1]}`; 9175 else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) 9176 p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; 9177 return p; 9178 } 9179 function convertPath(targetPathUtils, sourcePath) { 9180 return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); 9181 } 9182 9183 const defaultTime = new Date(SAFE_TIME * 1e3); 9184 async function copyPromise(destinationFs, destination, sourceFs, source, opts) { 9185 const normalizedDestination = destinationFs.pathUtils.normalize(destination); 9186 const normalizedSource = sourceFs.pathUtils.normalize(source); 9187 const prelayout = []; 9188 const postlayout = []; 9189 const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); 9190 await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); 9191 const updateTime = typeof destinationFs.lutimesPromise === `function` ? destinationFs.lutimesPromise.bind(destinationFs) : destinationFs.utimesPromise.bind(destinationFs); 9192 await copyImpl(prelayout, postlayout, updateTime, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); 9193 for (const operation of prelayout) 9194 await operation(); 9195 await Promise.all(postlayout.map((operation) => { 9196 return operation(); 9197 })); 9198 } 9199 async function copyImpl(prelayout, postlayout, updateTime, destinationFs, destination, sourceFs, source, opts) { 9200 var _a, _b; 9201 const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; 9202 const sourceStat = await sourceFs.lstatPromise(source); 9203 const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; 9204 let updated; 9205 switch (true) { 9206 case sourceStat.isDirectory(): 9207 { 9208 updated = await copyFolder(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); 9209 } 9210 break; 9211 case sourceStat.isFile(): 9212 { 9213 updated = await copyFile(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); 9214 } 9215 break; 9216 case sourceStat.isSymbolicLink(): 9217 { 9218 updated = await copySymlink(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); 9219 } 9220 break; 9221 default: 9222 { 9223 throw new Error(`Unsupported file type (${sourceStat.mode})`); 9224 } 9225 } 9226 if (updated || ((_a = destinationStat == null ? void 0 : destinationStat.mtime) == null ? void 0 : _a.getTime()) !== mtime.getTime() || ((_b = destinationStat == null ? void 0 : destinationStat.atime) == null ? void 0 : _b.getTime()) !== atime.getTime()) { 9227 postlayout.push(() => updateTime(destination, atime, mtime)); 9228 updated = true; 9229 } 9230 if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { 9231 postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); 9232 updated = true; 9233 } 9234 return updated; 9235 } 9236 async function maybeLStat(baseFs, p) { 9237 try { 9238 return await baseFs.lstatPromise(p); 9239 } catch (e) { 9240 return null; 9241 } 9242 } 9243 async function copyFolder(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { 9244 if (destinationStat !== null && !destinationStat.isDirectory()) { 9245 if (opts.overwrite) { 9246 prelayout.push(async () => destinationFs.removePromise(destination)); 9247 destinationStat = null; 9248 } else { 9249 return false; 9250 } 9251 } 9252 let updated = false; 9253 if (destinationStat === null) { 9254 prelayout.push(async () => { 9255 try { 9256 await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); 9257 } catch (err) { 9258 if (err.code !== `EEXIST`) { 9259 throw err; 9260 } 9261 } 9262 }); 9263 updated = true; 9264 } 9265 const entries = await sourceFs.readdirPromise(source); 9266 const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; 9267 if (opts.stableSort) { 9268 for (const entry of entries.sort()) { 9269 if (await copyImpl(prelayout, postlayout, updateTime, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { 9270 updated = true; 9271 } 9272 } 9273 } else { 9274 const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { 9275 await copyImpl(prelayout, postlayout, updateTime, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); 9276 })); 9277 if (entriesUpdateStatus.some((status) => status)) { 9278 updated = true; 9279 } 9280 } 9281 return updated; 9282 } 9283 const isCloneSupportedCache = /* @__PURE__ */ new WeakMap(); 9284 function makeLinkOperation(opFs, destination, source, sourceStat, linkStrategy) { 9285 return async () => { 9286 await opFs.linkPromise(source, destination); 9287 if (linkStrategy === "readOnly" /* ReadOnly */) { 9288 sourceStat.mode &= ~146; 9289 await opFs.chmodPromise(destination, sourceStat.mode); 9290 } 9291 }; 9292 } 9293 function makeCloneLinkOperation(opFs, destination, source, sourceStat, linkStrategy) { 9294 const isCloneSupported = isCloneSupportedCache.get(opFs); 9295 if (typeof isCloneSupported === `undefined`) { 9296 return async () => { 9297 try { 9298 await opFs.copyFilePromise(source, destination, fs__default.default.constants.COPYFILE_FICLONE_FORCE); 9299 isCloneSupportedCache.set(opFs, true); 9300 } catch (err) { 9301 if (err.code === `ENOSYS` || err.code === `ENOTSUP`) { 9302 isCloneSupportedCache.set(opFs, false); 9303 await makeLinkOperation(opFs, destination, source, sourceStat, linkStrategy)(); 9304 } else { 9305 throw err; 9306 } 9307 } 9308 }; 9309 } else { 9310 if (isCloneSupported) { 9311 return async () => opFs.copyFilePromise(source, destination, fs__default.default.constants.COPYFILE_FICLONE_FORCE); 9312 } else { 9313 return makeLinkOperation(opFs, destination, source, sourceStat, linkStrategy); 9314 } 9315 } 9316 } 9317 async function copyFile(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { 9318 var _a; 9319 if (destinationStat !== null) { 9320 if (opts.overwrite) { 9321 prelayout.push(async () => destinationFs.removePromise(destination)); 9322 destinationStat = null; 9323 } else { 9324 return false; 9325 } 9326 } 9327 const linkStrategy = (_a = opts.linkStrategy) != null ? _a : null; 9328 const op = destinationFs === sourceFs ? linkStrategy !== null ? makeCloneLinkOperation(destinationFs, destination, source, sourceStat, linkStrategy) : async () => destinationFs.copyFilePromise(source, destination, fs__default.default.constants.COPYFILE_FICLONE) : linkStrategy !== null ? makeLinkOperation(destinationFs, destination, source, sourceStat, linkStrategy) : async () => destinationFs.writeFilePromise(destination, await sourceFs.readFilePromise(source)); 9329 prelayout.push(async () => op()); 9330 return true; 9331 } 9332 async function copySymlink(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { 9333 if (destinationStat !== null) { 9334 if (opts.overwrite) { 9335 prelayout.push(async () => destinationFs.removePromise(destination)); 9336 destinationStat = null; 9337 } else { 9338 return false; 9339 } 9340 } 9341 prelayout.push(async () => { 9342 await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); 9343 }); 9344 return true; 9345 } 9346 9347 function makeError$1(code, message) { 9348 return Object.assign(new Error(`${code}: ${message}`), { code }); 9349 } 9350 function EBUSY(message) { 9351 return makeError$1(`EBUSY`, message); 9352 } 9353 function ENOSYS(message, reason) { 9354 return makeError$1(`ENOSYS`, `${message}, ${reason}`); 9355 } 9356 function EINVAL(reason) { 9357 return makeError$1(`EINVAL`, `invalid argument, ${reason}`); 9358 } 9359 function EBADF(reason) { 9360 return makeError$1(`EBADF`, `bad file descriptor, ${reason}`); 9361 } 9362 function ENOENT(reason) { 9363 return makeError$1(`ENOENT`, `no such file or directory, ${reason}`); 9364 } 9365 function ENOTDIR(reason) { 9366 return makeError$1(`ENOTDIR`, `not a directory, ${reason}`); 9367 } 9368 function EISDIR(reason) { 9369 return makeError$1(`EISDIR`, `illegal operation on a directory, ${reason}`); 9370 } 9371 function EEXIST(reason) { 9372 return makeError$1(`EEXIST`, `file already exists, ${reason}`); 9373 } 9374 function EROFS(reason) { 9375 return makeError$1(`EROFS`, `read-only filesystem, ${reason}`); 9376 } 9377 function ENOTEMPTY(reason) { 9378 return makeError$1(`ENOTEMPTY`, `directory not empty, ${reason}`); 9379 } 9380 function EOPNOTSUPP(reason) { 9381 return makeError$1(`EOPNOTSUPP`, `operation not supported, ${reason}`); 9382 } 9383 function ERR_DIR_CLOSED() { 9384 return makeError$1(`ERR_DIR_CLOSED`, `Directory handle was closed`); 9385 } 9386 class LibzipError extends Error { 9387 constructor(message, code) { 9388 super(message); 9389 this.name = `Libzip Error`; 9390 this.code = code; 9391 } 9392 } 9393 9394 class CustomDir { 9395 constructor(path, nextDirent, opts = {}) { 9396 this.path = path; 9397 this.nextDirent = nextDirent; 9398 this.opts = opts; 9399 this.closed = false; 9400 } 9401 throwIfClosed() { 9402 if (this.closed) { 9403 throw ERR_DIR_CLOSED(); 9404 } 9405 } 9406 async *[Symbol.asyncIterator]() { 9407 try { 9408 let dirent; 9409 while ((dirent = await this.read()) !== null) { 9410 yield dirent; 9411 } 9412 } finally { 9413 await this.close(); 9414 } 9415 } 9416 read(cb) { 9417 const dirent = this.readSync(); 9418 if (typeof cb !== `undefined`) 9419 return cb(null, dirent); 9420 return Promise.resolve(dirent); 9421 } 9422 readSync() { 9423 this.throwIfClosed(); 9424 return this.nextDirent(); 9425 } 9426 close(cb) { 9427 this.closeSync(); 9428 if (typeof cb !== `undefined`) 9429 return cb(null); 9430 return Promise.resolve(); 9431 } 9432 closeSync() { 9433 var _a, _b; 9434 this.throwIfClosed(); 9435 (_b = (_a = this.opts).onClose) == null ? void 0 : _b.call(_a); 9436 this.closed = true; 9437 } 9438 } 9439 function opendir(fakeFs, path, entries, opts) { 9440 const nextDirent = () => { 9441 const filename = entries.shift(); 9442 if (typeof filename === `undefined`) 9443 return null; 9444 return Object.assign(fakeFs.statSync(fakeFs.pathUtils.join(path, filename)), { 9445 name: filename 9446 }); 9447 }; 9448 return new CustomDir(path, nextDirent, opts); 9449 } 9450 9451 class FakeFS { 9452 constructor(pathUtils) { 9453 this.pathUtils = pathUtils; 9454 } 9455 async *genTraversePromise(init, { stableSort = false } = {}) { 9456 const stack = [init]; 9457 while (stack.length > 0) { 9458 const p = stack.shift(); 9459 const entry = await this.lstatPromise(p); 9460 if (entry.isDirectory()) { 9461 const entries = await this.readdirPromise(p); 9462 if (stableSort) { 9463 for (const entry2 of entries.sort()) { 9464 stack.push(this.pathUtils.join(p, entry2)); 9465 } 9466 } else { 9467 throw new Error(`Not supported`); 9468 } 9469 } else { 9470 yield p; 9471 } 9472 } 9473 } 9474 async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { 9475 let stat; 9476 try { 9477 stat = await this.lstatPromise(p); 9478 } catch (error) { 9479 if (error.code === `ENOENT`) { 9480 return; 9481 } else { 9482 throw error; 9483 } 9484 } 9485 if (stat.isDirectory()) { 9486 if (recursive) { 9487 const entries = await this.readdirPromise(p); 9488 await Promise.all(entries.map((entry) => { 9489 return this.removePromise(this.pathUtils.resolve(p, entry)); 9490 })); 9491 } 9492 for (let t = 0; t <= maxRetries; t++) { 9493 try { 9494 await this.rmdirPromise(p); 9495 break; 9496 } catch (error) { 9497 if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { 9498 throw error; 9499 } else if (t < maxRetries) { 9500 await new Promise((resolve) => setTimeout(resolve, t * 100)); 9501 } 9502 } 9503 } 9504 } else { 9505 await this.unlinkPromise(p); 9506 } 9507 } 9508 removeSync(p, { recursive = true } = {}) { 9509 let stat; 9510 try { 9511 stat = this.lstatSync(p); 9512 } catch (error) { 9513 if (error.code === `ENOENT`) { 9514 return; 9515 } else { 9516 throw error; 9517 } 9518 } 9519 if (stat.isDirectory()) { 9520 if (recursive) 9521 for (const entry of this.readdirSync(p)) 9522 this.removeSync(this.pathUtils.resolve(p, entry)); 9523 this.rmdirSync(p); 9524 } else { 9525 this.unlinkSync(p); 9526 } 9527 } 9528 async mkdirpPromise(p, { chmod, utimes } = {}) { 9529 p = this.resolve(p); 9530 if (p === this.pathUtils.dirname(p)) 9531 return void 0; 9532 const parts = p.split(this.pathUtils.sep); 9533 let createdDirectory; 9534 for (let u = 2; u <= parts.length; ++u) { 9535 const subPath = parts.slice(0, u).join(this.pathUtils.sep); 9536 if (!this.existsSync(subPath)) { 9537 try { 9538 await this.mkdirPromise(subPath); 9539 } catch (error) { 9540 if (error.code === `EEXIST`) { 9541 continue; 9542 } else { 9543 throw error; 9544 } 9545 } 9546 createdDirectory != null ? createdDirectory : createdDirectory = subPath; 9547 if (chmod != null) 9548 await this.chmodPromise(subPath, chmod); 9549 if (utimes != null) { 9550 await this.utimesPromise(subPath, utimes[0], utimes[1]); 9551 } else { 9552 const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); 9553 await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); 9554 } 9555 } 9556 } 9557 return createdDirectory; 9558 } 9559 mkdirpSync(p, { chmod, utimes } = {}) { 9560 p = this.resolve(p); 9561 if (p === this.pathUtils.dirname(p)) 9562 return void 0; 9563 const parts = p.split(this.pathUtils.sep); 9564 let createdDirectory; 9565 for (let u = 2; u <= parts.length; ++u) { 9566 const subPath = parts.slice(0, u).join(this.pathUtils.sep); 9567 if (!this.existsSync(subPath)) { 9568 try { 9569 this.mkdirSync(subPath); 9570 } catch (error) { 9571 if (error.code === `EEXIST`) { 9572 continue; 9573 } else { 9574 throw error; 9575 } 9576 } 9577 createdDirectory != null ? createdDirectory : createdDirectory = subPath; 9578 if (chmod != null) 9579 this.chmodSync(subPath, chmod); 9580 if (utimes != null) { 9581 this.utimesSync(subPath, utimes[0], utimes[1]); 9582 } else { 9583 const parentStat = this.statSync(this.pathUtils.dirname(subPath)); 9584 this.utimesSync(subPath, parentStat.atime, parentStat.mtime); 9585 } 9586 } 9587 } 9588 return createdDirectory; 9589 } 9590 async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { 9591 return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); 9592 } 9593 copySync(destination, source, { baseFs = this, overwrite = true } = {}) { 9594 const stat = baseFs.lstatSync(source); 9595 const exists = this.existsSync(destination); 9596 if (stat.isDirectory()) { 9597 this.mkdirpSync(destination); 9598 const directoryListing = baseFs.readdirSync(source); 9599 for (const entry of directoryListing) { 9600 this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); 9601 } 9602 } else if (stat.isFile()) { 9603 if (!exists || overwrite) { 9604 if (exists) 9605 this.removeSync(destination); 9606 const content = baseFs.readFileSync(source); 9607 this.writeFileSync(destination, content); 9608 } 9609 } else if (stat.isSymbolicLink()) { 9610 if (!exists || overwrite) { 9611 if (exists) 9612 this.removeSync(destination); 9613 const target = baseFs.readlinkSync(source); 9614 this.symlinkSync(convertPath(this.pathUtils, target), destination); 9615 } 9616 } else { 9617 throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); 9618 } 9619 const mode = stat.mode & 511; 9620 this.chmodSync(destination, mode); 9621 } 9622 async changeFilePromise(p, content, opts = {}) { 9623 if (Buffer.isBuffer(content)) { 9624 return this.changeFileBufferPromise(p, content, opts); 9625 } else { 9626 return this.changeFileTextPromise(p, content, opts); 9627 } 9628 } 9629 async changeFileBufferPromise(p, content, { mode } = {}) { 9630 let current = Buffer.alloc(0); 9631 try { 9632 current = await this.readFilePromise(p); 9633 } catch (error) { 9634 } 9635 if (Buffer.compare(current, content) === 0) 9636 return; 9637 await this.writeFilePromise(p, content, { mode }); 9638 } 9639 async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { 9640 let current = ``; 9641 try { 9642 current = await this.readFilePromise(p, `utf8`); 9643 } catch (error) { 9644 } 9645 const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; 9646 if (current === normalizedContent) 9647 return; 9648 await this.writeFilePromise(p, normalizedContent, { mode }); 9649 } 9650 changeFileSync(p, content, opts = {}) { 9651 if (Buffer.isBuffer(content)) { 9652 return this.changeFileBufferSync(p, content, opts); 9653 } else { 9654 return this.changeFileTextSync(p, content, opts); 9655 } 9656 } 9657 changeFileBufferSync(p, content, { mode } = {}) { 9658 let current = Buffer.alloc(0); 9659 try { 9660 current = this.readFileSync(p); 9661 } catch (error) { 9662 } 9663 if (Buffer.compare(current, content) === 0) 9664 return; 9665 this.writeFileSync(p, content, { mode }); 9666 } 9667 changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { 9668 let current = ``; 9669 try { 9670 current = this.readFileSync(p, `utf8`); 9671 } catch (error) { 9672 } 9673 const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; 9674 if (current === normalizedContent) 9675 return; 9676 this.writeFileSync(p, normalizedContent, { mode }); 9677 } 9678 async movePromise(fromP, toP) { 9679 try { 9680 await this.renamePromise(fromP, toP); 9681 } catch (error) { 9682 if (error.code === `EXDEV`) { 9683 await this.copyPromise(toP, fromP); 9684 await this.removePromise(fromP); 9685 } else { 9686 throw error; 9687 } 9688 } 9689 } 9690 moveSync(fromP, toP) { 9691 try { 9692 this.renameSync(fromP, toP); 9693 } catch (error) { 9694 if (error.code === `EXDEV`) { 9695 this.copySync(toP, fromP); 9696 this.removeSync(fromP); 9697 } else { 9698 throw error; 9699 } 9700 } 9701 } 9702 async lockPromise(affectedPath, callback) { 9703 const lockPath = `${affectedPath}.flock`; 9704 const interval = 1e3 / 60; 9705 const startTime = Date.now(); 9706 let fd = null; 9707 const isAlive = async () => { 9708 let pid; 9709 try { 9710 [pid] = await this.readJsonPromise(lockPath); 9711 } catch (error) { 9712 return Date.now() - startTime < 500; 9713 } 9714 try { 9715 process.kill(pid, 0); 9716 return true; 9717 } catch (error) { 9718 return false; 9719 } 9720 }; 9721 while (fd === null) { 9722 try { 9723 fd = await this.openPromise(lockPath, `wx`); 9724 } catch (error) { 9725 if (error.code === `EEXIST`) { 9726 if (!await isAlive()) { 9727 try { 9728 await this.unlinkPromise(lockPath); 9729 continue; 9730 } catch (error2) { 9731 } 9732 } 9733 if (Date.now() - startTime < 60 * 1e3) { 9734 await new Promise((resolve) => setTimeout(resolve, interval)); 9735 } else { 9736 throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); 9737 } 9738 } else { 9739 throw error; 9740 } 9741 } 9742 } 9743 await this.writePromise(fd, JSON.stringify([process.pid])); 9744 try { 9745 return await callback(); 9746 } finally { 9747 try { 9748 await this.closePromise(fd); 9749 await this.unlinkPromise(lockPath); 9750 } catch (error) { 9751 } 9752 } 9753 } 9754 async readJsonPromise(p) { 9755 const content = await this.readFilePromise(p, `utf8`); 9756 try { 9757 return JSON.parse(content); 9758 } catch (error) { 9759 error.message += ` (in ${p})`; 9760 throw error; 9761 } 9762 } 9763 readJsonSync(p) { 9764 const content = this.readFileSync(p, `utf8`); 9765 try { 9766 return JSON.parse(content); 9767 } catch (error) { 9768 error.message += ` (in ${p})`; 9769 throw error; 9770 } 9771 } 9772 async writeJsonPromise(p, data) { 9773 return await this.writeFilePromise(p, `${JSON.stringify(data, null, 2)} 9774 `); 9775 } 9776 writeJsonSync(p, data) { 9777 return this.writeFileSync(p, `${JSON.stringify(data, null, 2)} 9778 `); 9779 } 9780 async preserveTimePromise(p, cb) { 9781 const stat = await this.lstatPromise(p); 9782 const result = await cb(); 9783 if (typeof result !== `undefined`) 9784 p = result; 9785 if (this.lutimesPromise) { 9786 await this.lutimesPromise(p, stat.atime, stat.mtime); 9787 } else if (!stat.isSymbolicLink()) { 9788 await this.utimesPromise(p, stat.atime, stat.mtime); 9789 } 9790 } 9791 async preserveTimeSync(p, cb) { 9792 const stat = this.lstatSync(p); 9793 const result = cb(); 9794 if (typeof result !== `undefined`) 9795 p = result; 9796 if (this.lutimesSync) { 9797 this.lutimesSync(p, stat.atime, stat.mtime); 9798 } else if (!stat.isSymbolicLink()) { 9799 this.utimesSync(p, stat.atime, stat.mtime); 9800 } 9801 } 9802 } 9803 class BasePortableFakeFS extends FakeFS { 9804 constructor() { 9805 super(ppath); 9806 } 9807 } 9808 function getEndOfLine(content) { 9809 const matches = content.match(/\r?\n/g); 9810 if (matches === null) 9811 return os.EOL; 9812 const crlf = matches.filter((nl) => nl === `\r 9813 `).length; 9814 const lf = matches.length - crlf; 9815 return crlf > lf ? `\r 9816 ` : ` 9817 `; 9818 } 9819 function normalizeLineEndings(originalContent, newContent) { 9820 return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); 9821 } 9822 9823 class NodeFS extends BasePortableFakeFS { 9824 constructor(realFs = fs__default.default) { 9825 super(); 9826 this.realFs = realFs; 9827 if (typeof this.realFs.lutimes !== `undefined`) { 9828 this.lutimesPromise = this.lutimesPromiseImpl; 9829 this.lutimesSync = this.lutimesSyncImpl; 9830 } 9831 } 9832 getExtractHint() { 9833 return false; 9834 } 9835 getRealPath() { 9836 return PortablePath.root; 9837 } 9838 resolve(p) { 9839 return ppath.resolve(p); 9840 } 9841 async openPromise(p, flags, mode) { 9842 return await new Promise((resolve, reject) => { 9843 this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); 9844 }); 9845 } 9846 openSync(p, flags, mode) { 9847 return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); 9848 } 9849 async opendirPromise(p, opts) { 9850 return await new Promise((resolve, reject) => { 9851 if (typeof opts !== `undefined`) { 9852 this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); 9853 } else { 9854 this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); 9855 } 9856 }).then((dir) => { 9857 return Object.defineProperty(dir, `path`, { value: p, configurable: true, writable: true }); 9858 }); 9859 } 9860 opendirSync(p, opts) { 9861 const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); 9862 return Object.defineProperty(dir, `path`, { value: p, configurable: true, writable: true }); 9863 } 9864 async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { 9865 return await new Promise((resolve, reject) => { 9866 this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { 9867 if (error) { 9868 reject(error); 9869 } else { 9870 resolve(bytesRead); 9871 } 9872 }); 9873 }); 9874 } 9875 readSync(fd, buffer, offset, length, position) { 9876 return this.realFs.readSync(fd, buffer, offset, length, position); 9877 } 9878 async writePromise(fd, buffer, offset, length, position) { 9879 return await new Promise((resolve, reject) => { 9880 if (typeof buffer === `string`) { 9881 return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); 9882 } else { 9883 return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); 9884 } 9885 }); 9886 } 9887 writeSync(fd, buffer, offset, length, position) { 9888 if (typeof buffer === `string`) { 9889 return this.realFs.writeSync(fd, buffer, offset); 9890 } else { 9891 return this.realFs.writeSync(fd, buffer, offset, length, position); 9892 } 9893 } 9894 async closePromise(fd) { 9895 await new Promise((resolve, reject) => { 9896 this.realFs.close(fd, this.makeCallback(resolve, reject)); 9897 }); 9898 } 9899 closeSync(fd) { 9900 this.realFs.closeSync(fd); 9901 } 9902 createReadStream(p, opts) { 9903 const realPath = p !== null ? npath.fromPortablePath(p) : p; 9904 return this.realFs.createReadStream(realPath, opts); 9905 } 9906 createWriteStream(p, opts) { 9907 const realPath = p !== null ? npath.fromPortablePath(p) : p; 9908 return this.realFs.createWriteStream(realPath, opts); 9909 } 9910 async realpathPromise(p) { 9911 return await new Promise((resolve, reject) => { 9912 this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); 9913 }).then((path) => { 9914 return npath.toPortablePath(path); 9915 }); 9916 } 9917 realpathSync(p) { 9918 return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); 9919 } 9920 async existsPromise(p) { 9921 return await new Promise((resolve) => { 9922 this.realFs.exists(npath.fromPortablePath(p), resolve); 9923 }); 9924 } 9925 accessSync(p, mode) { 9926 return this.realFs.accessSync(npath.fromPortablePath(p), mode); 9927 } 9928 async accessPromise(p, mode) { 9929 return await new Promise((resolve, reject) => { 9930 this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); 9931 }); 9932 } 9933 existsSync(p) { 9934 return this.realFs.existsSync(npath.fromPortablePath(p)); 9935 } 9936 async statPromise(p, opts) { 9937 return await new Promise((resolve, reject) => { 9938 if (opts) { 9939 this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); 9940 } else { 9941 this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); 9942 } 9943 }); 9944 } 9945 statSync(p, opts) { 9946 if (opts) { 9947 return this.realFs.statSync(npath.fromPortablePath(p), opts); 9948 } else { 9949 return this.realFs.statSync(npath.fromPortablePath(p)); 9950 } 9951 } 9952 async fstatPromise(fd, opts) { 9953 return await new Promise((resolve, reject) => { 9954 if (opts) { 9955 this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); 9956 } else { 9957 this.realFs.fstat(fd, this.makeCallback(resolve, reject)); 9958 } 9959 }); 9960 } 9961 fstatSync(fd, opts) { 9962 if (opts) { 9963 return this.realFs.fstatSync(fd, opts); 9964 } else { 9965 return this.realFs.fstatSync(fd); 9966 } 9967 } 9968 async lstatPromise(p, opts) { 9969 return await new Promise((resolve, reject) => { 9970 if (opts) { 9971 this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); 9972 } else { 9973 this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); 9974 } 9975 }); 9976 } 9977 lstatSync(p, opts) { 9978 if (opts) { 9979 return this.realFs.lstatSync(npath.fromPortablePath(p), opts); 9980 } else { 9981 return this.realFs.lstatSync(npath.fromPortablePath(p)); 9982 } 9983 } 9984 async fchmodPromise(fd, mask) { 9985 return await new Promise((resolve, reject) => { 9986 this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); 9987 }); 9988 } 9989 fchmodSync(fd, mask) { 9990 return this.realFs.fchmodSync(fd, mask); 9991 } 9992 async chmodPromise(p, mask) { 9993 return await new Promise((resolve, reject) => { 9994 this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); 9995 }); 9996 } 9997 chmodSync(p, mask) { 9998 return this.realFs.chmodSync(npath.fromPortablePath(p), mask); 9999 } 10000 async fchownPromise(fd, uid, gid) { 10001 return await new Promise((resolve, reject) => { 10002 this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); 10003 }); 10004 } 10005 fchownSync(fd, uid, gid) { 10006 return this.realFs.fchownSync(fd, uid, gid); 10007 } 10008 async chownPromise(p, uid, gid) { 10009 return await new Promise((resolve, reject) => { 10010 this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); 10011 }); 10012 } 10013 chownSync(p, uid, gid) { 10014 return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); 10015 } 10016 async renamePromise(oldP, newP) { 10017 return await new Promise((resolve, reject) => { 10018 this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); 10019 }); 10020 } 10021 renameSync(oldP, newP) { 10022 return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); 10023 } 10024 async copyFilePromise(sourceP, destP, flags = 0) { 10025 return await new Promise((resolve, reject) => { 10026 this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); 10027 }); 10028 } 10029 copyFileSync(sourceP, destP, flags = 0) { 10030 return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); 10031 } 10032 async appendFilePromise(p, content, opts) { 10033 return await new Promise((resolve, reject) => { 10034 const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; 10035 if (opts) { 10036 this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); 10037 } else { 10038 this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); 10039 } 10040 }); 10041 } 10042 appendFileSync(p, content, opts) { 10043 const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; 10044 if (opts) { 10045 this.realFs.appendFileSync(fsNativePath, content, opts); 10046 } else { 10047 this.realFs.appendFileSync(fsNativePath, content); 10048 } 10049 } 10050 async writeFilePromise(p, content, opts) { 10051 return await new Promise((resolve, reject) => { 10052 const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; 10053 if (opts) { 10054 this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); 10055 } else { 10056 this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); 10057 } 10058 }); 10059 } 10060 writeFileSync(p, content, opts) { 10061 const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; 10062 if (opts) { 10063 this.realFs.writeFileSync(fsNativePath, content, opts); 10064 } else { 10065 this.realFs.writeFileSync(fsNativePath, content); 10066 } 10067 } 10068 async unlinkPromise(p) { 10069 return await new Promise((resolve, reject) => { 10070 this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); 10071 }); 10072 } 10073 unlinkSync(p) { 10074 return this.realFs.unlinkSync(npath.fromPortablePath(p)); 10075 } 10076 async utimesPromise(p, atime, mtime) { 10077 return await new Promise((resolve, reject) => { 10078 this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); 10079 }); 10080 } 10081 utimesSync(p, atime, mtime) { 10082 this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); 10083 } 10084 async lutimesPromiseImpl(p, atime, mtime) { 10085 const lutimes = this.realFs.lutimes; 10086 if (typeof lutimes === `undefined`) 10087 throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`); 10088 return await new Promise((resolve, reject) => { 10089 lutimes.call(this.realFs, npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); 10090 }); 10091 } 10092 lutimesSyncImpl(p, atime, mtime) { 10093 const lutimesSync = this.realFs.lutimesSync; 10094 if (typeof lutimesSync === `undefined`) 10095 throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`); 10096 lutimesSync.call(this.realFs, npath.fromPortablePath(p), atime, mtime); 10097 } 10098 async mkdirPromise(p, opts) { 10099 return await new Promise((resolve, reject) => { 10100 this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); 10101 }); 10102 } 10103 mkdirSync(p, opts) { 10104 return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); 10105 } 10106 async rmdirPromise(p, opts) { 10107 return await new Promise((resolve, reject) => { 10108 if (opts) { 10109 this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); 10110 } else { 10111 this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); 10112 } 10113 }); 10114 } 10115 rmdirSync(p, opts) { 10116 return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); 10117 } 10118 async linkPromise(existingP, newP) { 10119 return await new Promise((resolve, reject) => { 10120 this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); 10121 }); 10122 } 10123 linkSync(existingP, newP) { 10124 return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); 10125 } 10126 async symlinkPromise(target, p, type) { 10127 return await new Promise((resolve, reject) => { 10128 this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); 10129 }); 10130 } 10131 symlinkSync(target, p, type) { 10132 return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); 10133 } 10134 async readFilePromise(p, encoding) { 10135 return await new Promise((resolve, reject) => { 10136 const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; 10137 this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); 10138 }); 10139 } 10140 readFileSync(p, encoding) { 10141 const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; 10142 return this.realFs.readFileSync(fsNativePath, encoding); 10143 } 10144 async readdirPromise(p, opts) { 10145 return await new Promise((resolve, reject) => { 10146 if (opts == null ? void 0 : opts.withFileTypes) { 10147 this.realFs.readdir(npath.fromPortablePath(p), { withFileTypes: true }, this.makeCallback(resolve, reject)); 10148 } else { 10149 this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback((value) => resolve(value), reject)); 10150 } 10151 }); 10152 } 10153 readdirSync(p, opts) { 10154 if (opts == null ? void 0 : opts.withFileTypes) { 10155 return this.realFs.readdirSync(npath.fromPortablePath(p), { withFileTypes: true }); 10156 } else { 10157 return this.realFs.readdirSync(npath.fromPortablePath(p)); 10158 } 10159 } 10160 async readlinkPromise(p) { 10161 return await new Promise((resolve, reject) => { 10162 this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); 10163 }).then((path) => { 10164 return npath.toPortablePath(path); 10165 }); 10166 } 10167 readlinkSync(p) { 10168 return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); 10169 } 10170 async truncatePromise(p, len) { 10171 return await new Promise((resolve, reject) => { 10172 this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); 10173 }); 10174 } 10175 truncateSync(p, len) { 10176 return this.realFs.truncateSync(npath.fromPortablePath(p), len); 10177 } 10178 async ftruncatePromise(fd, len) { 10179 return await new Promise((resolve, reject) => { 10180 this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); 10181 }); 10182 } 10183 ftruncateSync(fd, len) { 10184 return this.realFs.ftruncateSync(fd, len); 10185 } 10186 watch(p, a, b) { 10187 return this.realFs.watch( 10188 npath.fromPortablePath(p), 10189 a, 10190 b 10191 ); 10192 } 10193 watchFile(p, a, b) { 10194 return this.realFs.watchFile( 10195 npath.fromPortablePath(p), 10196 a, 10197 b 10198 ); 10199 } 10200 unwatchFile(p, cb) { 10201 return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); 10202 } 10203 makeCallback(resolve, reject) { 10204 return (err, result) => { 10205 if (err) { 10206 reject(err); 10207 } else { 10208 resolve(result); 10209 } 10210 }; 10211 } 10212 } 10213 10214 function assertStatus(current, expected) { 10215 if (current !== expected) { 10216 throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`); 10217 } 10218 } 10219 class CustomStatWatcher extends events.EventEmitter { 10220 constructor(fakeFs, path, { bigint = false } = {}) { 10221 super(); 10222 this.status = "ready" /* Ready */; 10223 this.changeListeners = /* @__PURE__ */ new Map(); 10224 this.startTimeout = null; 10225 this.fakeFs = fakeFs; 10226 this.path = path; 10227 this.bigint = bigint; 10228 this.lastStats = this.stat(); 10229 } 10230 static create(fakeFs, path, opts) { 10231 const statWatcher = new CustomStatWatcher(fakeFs, path, opts); 10232 statWatcher.start(); 10233 return statWatcher; 10234 } 10235 start() { 10236 assertStatus(this.status, "ready" /* Ready */); 10237 this.status = "running" /* Running */; 10238 this.startTimeout = setTimeout(() => { 10239 this.startTimeout = null; 10240 if (!this.fakeFs.existsSync(this.path)) { 10241 this.emit("change" /* Change */, this.lastStats, this.lastStats); 10242 } 10243 }, 3); 10244 } 10245 stop() { 10246 assertStatus(this.status, "running" /* Running */); 10247 this.status = "stopped" /* Stopped */; 10248 if (this.startTimeout !== null) { 10249 clearTimeout(this.startTimeout); 10250 this.startTimeout = null; 10251 } 10252 this.emit("stop" /* Stop */); 10253 } 10254 stat() { 10255 try { 10256 return this.fakeFs.statSync(this.path, { bigint: this.bigint }); 10257 } catch (error) { 10258 const statInstance = this.bigint ? new BigIntStatsEntry() : new StatEntry(); 10259 return clearStats(statInstance); 10260 } 10261 } 10262 makeInterval(opts) { 10263 const interval = setInterval(() => { 10264 const currentStats = this.stat(); 10265 const previousStats = this.lastStats; 10266 if (areStatsEqual(currentStats, previousStats)) 10267 return; 10268 this.lastStats = currentStats; 10269 this.emit("change" /* Change */, currentStats, previousStats); 10270 }, opts.interval); 10271 return opts.persistent ? interval : interval.unref(); 10272 } 10273 registerChangeListener(listener, opts) { 10274 this.addListener("change" /* Change */, listener); 10275 this.changeListeners.set(listener, this.makeInterval(opts)); 10276 } 10277 unregisterChangeListener(listener) { 10278 this.removeListener("change" /* Change */, listener); 10279 const interval = this.changeListeners.get(listener); 10280 if (typeof interval !== `undefined`) 10281 clearInterval(interval); 10282 this.changeListeners.delete(listener); 10283 } 10284 unregisterAllChangeListeners() { 10285 for (const listener of this.changeListeners.keys()) { 10286 this.unregisterChangeListener(listener); 10287 } 10288 } 10289 hasChangeListeners() { 10290 return this.changeListeners.size > 0; 10291 } 10292 ref() { 10293 for (const interval of this.changeListeners.values()) 10294 interval.ref(); 10295 return this; 10296 } 10297 unref() { 10298 for (const interval of this.changeListeners.values()) 10299 interval.unref(); 10300 return this; 10301 } 10302 } 10303 10304 const statWatchersByFakeFS = /* @__PURE__ */ new WeakMap(); 10305 function watchFile(fakeFs, path, a, b) { 10306 let bigint; 10307 let persistent; 10308 let interval; 10309 let listener; 10310 switch (typeof a) { 10311 case `function`: 10312 { 10313 bigint = false; 10314 persistent = true; 10315 interval = 5007; 10316 listener = a; 10317 } 10318 break; 10319 default: 10320 { 10321 ({ 10322 bigint = false, 10323 persistent = true, 10324 interval = 5007 10325 } = a); 10326 listener = b; 10327 } 10328 break; 10329 } 10330 let statWatchers = statWatchersByFakeFS.get(fakeFs); 10331 if (typeof statWatchers === `undefined`) 10332 statWatchersByFakeFS.set(fakeFs, statWatchers = /* @__PURE__ */ new Map()); 10333 let statWatcher = statWatchers.get(path); 10334 if (typeof statWatcher === `undefined`) { 10335 statWatcher = CustomStatWatcher.create(fakeFs, path, { bigint }); 10336 statWatchers.set(path, statWatcher); 10337 } 10338 statWatcher.registerChangeListener(listener, { persistent, interval }); 10339 return statWatcher; 10340 } 10341 function unwatchFile(fakeFs, path, cb) { 10342 const statWatchers = statWatchersByFakeFS.get(fakeFs); 10343 if (typeof statWatchers === `undefined`) 10344 return; 10345 const statWatcher = statWatchers.get(path); 10346 if (typeof statWatcher === `undefined`) 10347 return; 10348 if (typeof cb === `undefined`) 10349 statWatcher.unregisterAllChangeListeners(); 10350 else 10351 statWatcher.unregisterChangeListener(cb); 10352 if (!statWatcher.hasChangeListeners()) { 10353 statWatcher.stop(); 10354 statWatchers.delete(path); 10355 } 10356 } 10357 function unwatchAllFiles(fakeFs) { 10358 const statWatchers = statWatchersByFakeFS.get(fakeFs); 10359 if (typeof statWatchers === `undefined`) 10360 return; 10361 for (const path of statWatchers.keys()) { 10362 unwatchFile(fakeFs, path); 10363 } 10364 } 10365 10366 const DEFAULT_COMPRESSION_LEVEL = `mixed`; 10367 function toUnixTimestamp(time) { 10368 if (typeof time === `string` && String(+time) === time) 10369 return +time; 10370 if (Number.isFinite(time)) { 10371 if (time < 0) { 10372 return Date.now() / 1e3; 10373 } else { 10374 return time; 10375 } 10376 } 10377 if (nodeUtils.types.isDate(time)) 10378 return time.getTime() / 1e3; 10379 throw new Error(`Invalid time`); 10380 } 10381 function makeEmptyArchive() { 10382 return Buffer.from([ 10383 80, 10384 75, 10385 5, 10386 6, 10387 0, 10388 0, 10389 0, 10390 0, 10391 0, 10392 0, 10393 0, 10394 0, 10395 0, 10396 0, 10397 0, 10398 0, 10399 0, 10400 0, 10401 0, 10402 0, 10403 0, 10404 0 10405 ]); 10406 } 10407 class ZipFS extends BasePortableFakeFS { 10408 constructor(source, opts) { 10409 super(); 10410 this.lzSource = null; 10411 this.listings = /* @__PURE__ */ new Map(); 10412 this.entries = /* @__PURE__ */ new Map(); 10413 this.fileSources = /* @__PURE__ */ new Map(); 10414 this.fds = /* @__PURE__ */ new Map(); 10415 this.nextFd = 0; 10416 this.ready = false; 10417 this.readOnly = false; 10418 this.libzip = opts.libzip; 10419 const pathOptions = opts; 10420 this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL; 10421 source != null ? source : source = makeEmptyArchive(); 10422 if (typeof source === `string`) { 10423 const { baseFs = new NodeFS() } = pathOptions; 10424 this.baseFs = baseFs; 10425 this.path = source; 10426 } else { 10427 this.path = null; 10428 this.baseFs = null; 10429 } 10430 if (opts.stats) { 10431 this.stats = opts.stats; 10432 } else { 10433 if (typeof source === `string`) { 10434 try { 10435 this.stats = this.baseFs.statSync(source); 10436 } catch (error) { 10437 if (error.code === `ENOENT` && pathOptions.create) { 10438 this.stats = makeDefaultStats(); 10439 } else { 10440 throw error; 10441 } 10442 } 10443 } else { 10444 this.stats = makeDefaultStats(); 10445 } 10446 } 10447 const errPtr = this.libzip.malloc(4); 10448 try { 10449 let flags = 0; 10450 if (typeof source === `string` && pathOptions.create) 10451 flags |= this.libzip.ZIP_CREATE | this.libzip.ZIP_TRUNCATE; 10452 if (opts.readOnly) { 10453 flags |= this.libzip.ZIP_RDONLY; 10454 this.readOnly = true; 10455 } 10456 if (typeof source === `string`) { 10457 this.zip = this.libzip.open(npath.fromPortablePath(source), flags, errPtr); 10458 } else { 10459 const lzSource = this.allocateUnattachedSource(source); 10460 try { 10461 this.zip = this.libzip.openFromSource(lzSource, flags, errPtr); 10462 this.lzSource = lzSource; 10463 } catch (error) { 10464 this.libzip.source.free(lzSource); 10465 throw error; 10466 } 10467 } 10468 if (this.zip === 0) { 10469 const error = this.libzip.struct.errorS(); 10470 this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`)); 10471 throw this.makeLibzipError(error); 10472 } 10473 } finally { 10474 this.libzip.free(errPtr); 10475 } 10476 this.listings.set(PortablePath.root, /* @__PURE__ */ new Set()); 10477 const entryCount = this.libzip.getNumEntries(this.zip, 0); 10478 for (let t = 0; t < entryCount; ++t) { 10479 const raw = this.libzip.getName(this.zip, t, 0); 10480 if (ppath.isAbsolute(raw)) 10481 continue; 10482 const p = ppath.resolve(PortablePath.root, raw); 10483 this.registerEntry(p, t); 10484 if (raw.endsWith(`/`)) { 10485 this.registerListing(p); 10486 } 10487 } 10488 this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); 10489 if (this.symlinkCount === -1) 10490 throw this.makeLibzipError(this.libzip.getError(this.zip)); 10491 this.ready = true; 10492 } 10493 makeLibzipError(error) { 10494 const errorCode = this.libzip.struct.errorCodeZip(error); 10495 const strerror = this.libzip.error.strerror(error); 10496 const libzipError = new LibzipError(strerror, this.libzip.errors[errorCode]); 10497 if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) 10498 throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`); 10499 return libzipError; 10500 } 10501 getExtractHint(hints) { 10502 for (const fileName of this.entries.keys()) { 10503 const ext = this.pathUtils.extname(fileName); 10504 if (hints.relevantExtensions.has(ext)) { 10505 return true; 10506 } 10507 } 10508 return false; 10509 } 10510 getAllFiles() { 10511 return Array.from(this.entries.keys()); 10512 } 10513 getRealPath() { 10514 if (!this.path) 10515 throw new Error(`ZipFS don't have real paths when loaded from a buffer`); 10516 return this.path; 10517 } 10518 getBufferAndClose() { 10519 this.prepareClose(); 10520 if (!this.lzSource) 10521 throw new Error(`ZipFS was not created from a Buffer`); 10522 try { 10523 this.libzip.source.keep(this.lzSource); 10524 if (this.libzip.close(this.zip) === -1) 10525 throw this.makeLibzipError(this.libzip.getError(this.zip)); 10526 if (this.libzip.source.open(this.lzSource) === -1) 10527 throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); 10528 if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) 10529 throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); 10530 const size = this.libzip.source.tell(this.lzSource); 10531 if (size === -1) 10532 throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); 10533 if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) 10534 throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); 10535 const buffer = this.libzip.malloc(size); 10536 if (!buffer) 10537 throw new Error(`Couldn't allocate enough memory`); 10538 try { 10539 const rc = this.libzip.source.read(this.lzSource, buffer, size); 10540 if (rc === -1) 10541 throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); 10542 else if (rc < size) 10543 throw new Error(`Incomplete read`); 10544 else if (rc > size) 10545 throw new Error(`Overread`); 10546 const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); 10547 return Buffer.from(memory); 10548 } finally { 10549 this.libzip.free(buffer); 10550 } 10551 } finally { 10552 this.libzip.source.close(this.lzSource); 10553 this.libzip.source.free(this.lzSource); 10554 this.ready = false; 10555 } 10556 } 10557 prepareClose() { 10558 if (!this.ready) 10559 throw EBUSY(`archive closed, close`); 10560 unwatchAllFiles(this); 10561 } 10562 saveAndClose() { 10563 if (!this.path || !this.baseFs) 10564 throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); 10565 this.prepareClose(); 10566 if (this.readOnly) { 10567 this.discardAndClose(); 10568 return; 10569 } 10570 const newMode = this.baseFs.existsSync(this.path) || this.stats.mode === DEFAULT_MODE ? void 0 : this.stats.mode; 10571 if (this.entries.size === 0) { 10572 this.discardAndClose(); 10573 this.baseFs.writeFileSync(this.path, makeEmptyArchive(), { mode: newMode }); 10574 } else { 10575 const rc = this.libzip.close(this.zip); 10576 if (rc === -1) 10577 throw this.makeLibzipError(this.libzip.getError(this.zip)); 10578 if (typeof newMode !== `undefined`) { 10579 this.baseFs.chmodSync(this.path, newMode); 10580 } 10581 } 10582 this.ready = false; 10583 } 10584 discardAndClose() { 10585 this.prepareClose(); 10586 this.libzip.discard(this.zip); 10587 this.ready = false; 10588 } 10589 resolve(p) { 10590 return ppath.resolve(PortablePath.root, p); 10591 } 10592 async openPromise(p, flags, mode) { 10593 return this.openSync(p, flags, mode); 10594 } 10595 openSync(p, flags, mode) { 10596 const fd = this.nextFd++; 10597 this.fds.set(fd, { cursor: 0, p }); 10598 return fd; 10599 } 10600 hasOpenFileHandles() { 10601 return !!this.fds.size; 10602 } 10603 async opendirPromise(p, opts) { 10604 return this.opendirSync(p, opts); 10605 } 10606 opendirSync(p, opts = {}) { 10607 const resolvedP = this.resolveFilename(`opendir '${p}'`, p); 10608 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) 10609 throw ENOENT(`opendir '${p}'`); 10610 const directoryListing = this.listings.get(resolvedP); 10611 if (!directoryListing) 10612 throw ENOTDIR(`opendir '${p}'`); 10613 const entries = [...directoryListing]; 10614 const fd = this.openSync(resolvedP, `r`); 10615 const onClose = () => { 10616 this.closeSync(fd); 10617 }; 10618 return opendir(this, resolvedP, entries, { onClose }); 10619 } 10620 async readPromise(fd, buffer, offset, length, position) { 10621 return this.readSync(fd, buffer, offset, length, position); 10622 } 10623 readSync(fd, buffer, offset = 0, length = buffer.byteLength, position = -1) { 10624 const entry = this.fds.get(fd); 10625 if (typeof entry === `undefined`) 10626 throw EBADF(`read`); 10627 const realPosition = position === -1 || position === null ? entry.cursor : position; 10628 const source = this.readFileSync(entry.p); 10629 source.copy(buffer, offset, realPosition, realPosition + length); 10630 const bytesRead = Math.max(0, Math.min(source.length - realPosition, length)); 10631 if (position === -1 || position === null) 10632 entry.cursor += bytesRead; 10633 return bytesRead; 10634 } 10635 async writePromise(fd, buffer, offset, length, position) { 10636 if (typeof buffer === `string`) { 10637 return this.writeSync(fd, buffer, position); 10638 } else { 10639 return this.writeSync(fd, buffer, offset, length, position); 10640 } 10641 } 10642 writeSync(fd, buffer, offset, length, position) { 10643 const entry = this.fds.get(fd); 10644 if (typeof entry === `undefined`) 10645 throw EBADF(`read`); 10646 throw new Error(`Unimplemented`); 10647 } 10648 async closePromise(fd) { 10649 return this.closeSync(fd); 10650 } 10651 closeSync(fd) { 10652 const entry = this.fds.get(fd); 10653 if (typeof entry === `undefined`) 10654 throw EBADF(`read`); 10655 this.fds.delete(fd); 10656 } 10657 createReadStream(p, { encoding } = {}) { 10658 if (p === null) 10659 throw new Error(`Unimplemented`); 10660 const fd = this.openSync(p, `r`); 10661 const stream$1 = Object.assign( 10662 new stream.PassThrough({ 10663 emitClose: true, 10664 autoDestroy: true, 10665 destroy: (error, callback) => { 10666 clearImmediate(immediate); 10667 this.closeSync(fd); 10668 callback(error); 10669 } 10670 }), 10671 { 10672 close() { 10673 stream$1.destroy(); 10674 }, 10675 bytesRead: 0, 10676 path: p 10677 } 10678 ); 10679 const immediate = setImmediate(async () => { 10680 try { 10681 const data = await this.readFilePromise(p, encoding); 10682 stream$1.bytesRead = data.length; 10683 stream$1.end(data); 10684 } catch (error) { 10685 stream$1.destroy(error); 10686 } 10687 }); 10688 return stream$1; 10689 } 10690 createWriteStream(p, { encoding } = {}) { 10691 if (this.readOnly) 10692 throw EROFS(`open '${p}'`); 10693 if (p === null) 10694 throw new Error(`Unimplemented`); 10695 const chunks = []; 10696 const fd = this.openSync(p, `w`); 10697 const stream$1 = Object.assign( 10698 new stream.PassThrough({ 10699 autoDestroy: true, 10700 emitClose: true, 10701 destroy: (error, callback) => { 10702 try { 10703 if (error) { 10704 callback(error); 10705 } else { 10706 this.writeFileSync(p, Buffer.concat(chunks), encoding); 10707 callback(null); 10708 } 10709 } catch (err) { 10710 callback(err); 10711 } finally { 10712 this.closeSync(fd); 10713 } 10714 } 10715 }), 10716 { 10717 bytesWritten: 0, 10718 path: p, 10719 close() { 10720 stream$1.destroy(); 10721 } 10722 } 10723 ); 10724 stream$1.on(`data`, (chunk) => { 10725 const chunkBuffer = Buffer.from(chunk); 10726 stream$1.bytesWritten += chunkBuffer.length; 10727 chunks.push(chunkBuffer); 10728 }); 10729 return stream$1; 10730 } 10731 async realpathPromise(p) { 10732 return this.realpathSync(p); 10733 } 10734 realpathSync(p) { 10735 const resolvedP = this.resolveFilename(`lstat '${p}'`, p); 10736 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) 10737 throw ENOENT(`lstat '${p}'`); 10738 return resolvedP; 10739 } 10740 async existsPromise(p) { 10741 return this.existsSync(p); 10742 } 10743 existsSync(p) { 10744 if (!this.ready) 10745 throw EBUSY(`archive closed, existsSync '${p}'`); 10746 if (this.symlinkCount === 0) { 10747 const resolvedP2 = ppath.resolve(PortablePath.root, p); 10748 return this.entries.has(resolvedP2) || this.listings.has(resolvedP2); 10749 } 10750 let resolvedP; 10751 try { 10752 resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, false); 10753 } catch (error) { 10754 return false; 10755 } 10756 if (resolvedP === void 0) 10757 return false; 10758 return this.entries.has(resolvedP) || this.listings.has(resolvedP); 10759 } 10760 async accessPromise(p, mode) { 10761 return this.accessSync(p, mode); 10762 } 10763 accessSync(p, mode = fs.constants.F_OK) { 10764 const resolvedP = this.resolveFilename(`access '${p}'`, p); 10765 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) 10766 throw ENOENT(`access '${p}'`); 10767 if (this.readOnly && mode & fs.constants.W_OK) { 10768 throw EROFS(`access '${p}'`); 10769 } 10770 } 10771 async statPromise(p, opts = { bigint: false }) { 10772 if (opts.bigint) 10773 return this.statSync(p, { bigint: true }); 10774 return this.statSync(p); 10775 } 10776 statSync(p, opts = { bigint: false, throwIfNoEntry: true }) { 10777 const resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, opts.throwIfNoEntry); 10778 if (resolvedP === void 0) 10779 return void 0; 10780 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { 10781 if (opts.throwIfNoEntry === false) 10782 return void 0; 10783 throw ENOENT(`stat '${p}'`); 10784 } 10785 if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) 10786 throw ENOTDIR(`stat '${p}'`); 10787 return this.statImpl(`stat '${p}'`, resolvedP, opts); 10788 } 10789 async fstatPromise(fd, opts) { 10790 return this.fstatSync(fd, opts); 10791 } 10792 fstatSync(fd, opts) { 10793 const entry = this.fds.get(fd); 10794 if (typeof entry === `undefined`) 10795 throw EBADF(`fstatSync`); 10796 const { p } = entry; 10797 const resolvedP = this.resolveFilename(`stat '${p}'`, p); 10798 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) 10799 throw ENOENT(`stat '${p}'`); 10800 if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) 10801 throw ENOTDIR(`stat '${p}'`); 10802 return this.statImpl(`fstat '${p}'`, resolvedP, opts); 10803 } 10804 async lstatPromise(p, opts = { bigint: false }) { 10805 if (opts.bigint) 10806 return this.lstatSync(p, { bigint: true }); 10807 return this.lstatSync(p); 10808 } 10809 lstatSync(p, opts = { bigint: false, throwIfNoEntry: true }) { 10810 const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false, opts.throwIfNoEntry); 10811 if (resolvedP === void 0) 10812 return void 0; 10813 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { 10814 if (opts.throwIfNoEntry === false) 10815 return void 0; 10816 throw ENOENT(`lstat '${p}'`); 10817 } 10818 if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) 10819 throw ENOTDIR(`lstat '${p}'`); 10820 return this.statImpl(`lstat '${p}'`, resolvedP, opts); 10821 } 10822 statImpl(reason, p, opts = {}) { 10823 const entry = this.entries.get(p); 10824 if (typeof entry !== `undefined`) { 10825 const stat = this.libzip.struct.statS(); 10826 const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat); 10827 if (rc === -1) 10828 throw this.makeLibzipError(this.libzip.getError(this.zip)); 10829 const uid = this.stats.uid; 10830 const gid = this.stats.gid; 10831 const size = this.libzip.struct.statSize(stat) >>> 0; 10832 const blksize = 512; 10833 const blocks = Math.ceil(size / blksize); 10834 const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1e3; 10835 const atimeMs = mtimeMs; 10836 const birthtimeMs = mtimeMs; 10837 const ctimeMs = mtimeMs; 10838 const atime = new Date(atimeMs); 10839 const birthtime = new Date(birthtimeMs); 10840 const ctime = new Date(ctimeMs); 10841 const mtime = new Date(mtimeMs); 10842 const type = this.listings.has(p) ? S_IFDIR : this.isSymbolicLink(entry) ? S_IFLNK : S_IFREG; 10843 const defaultMode = type === S_IFDIR ? 493 : 420; 10844 const mode = type | this.getUnixMode(entry, defaultMode) & 511; 10845 const crc = this.libzip.struct.statCrc(stat); 10846 const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); 10847 return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; 10848 } 10849 if (this.listings.has(p)) { 10850 const uid = this.stats.uid; 10851 const gid = this.stats.gid; 10852 const size = 0; 10853 const blksize = 512; 10854 const blocks = 0; 10855 const atimeMs = this.stats.mtimeMs; 10856 const birthtimeMs = this.stats.mtimeMs; 10857 const ctimeMs = this.stats.mtimeMs; 10858 const mtimeMs = this.stats.mtimeMs; 10859 const atime = new Date(atimeMs); 10860 const birthtime = new Date(birthtimeMs); 10861 const ctime = new Date(ctimeMs); 10862 const mtime = new Date(mtimeMs); 10863 const mode = S_IFDIR | 493; 10864 const crc = 0; 10865 const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); 10866 return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; 10867 } 10868 throw new Error(`Unreachable`); 10869 } 10870 getUnixMode(index, defaultMode) { 10871 const rc = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); 10872 if (rc === -1) 10873 throw this.makeLibzipError(this.libzip.getError(this.zip)); 10874 const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; 10875 if (opsys !== this.libzip.ZIP_OPSYS_UNIX) 10876 return defaultMode; 10877 return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; 10878 } 10879 registerListing(p) { 10880 const existingListing = this.listings.get(p); 10881 if (existingListing) 10882 return existingListing; 10883 const parentListing = this.registerListing(ppath.dirname(p)); 10884 parentListing.add(ppath.basename(p)); 10885 const newListing = /* @__PURE__ */ new Set(); 10886 this.listings.set(p, newListing); 10887 return newListing; 10888 } 10889 registerEntry(p, index) { 10890 const parentListing = this.registerListing(ppath.dirname(p)); 10891 parentListing.add(ppath.basename(p)); 10892 this.entries.set(p, index); 10893 } 10894 unregisterListing(p) { 10895 this.listings.delete(p); 10896 const parentListing = this.listings.get(ppath.dirname(p)); 10897 parentListing == null ? void 0 : parentListing.delete(ppath.basename(p)); 10898 } 10899 unregisterEntry(p) { 10900 this.unregisterListing(p); 10901 const entry = this.entries.get(p); 10902 this.entries.delete(p); 10903 if (typeof entry === `undefined`) 10904 return; 10905 this.fileSources.delete(entry); 10906 if (this.isSymbolicLink(entry)) { 10907 this.symlinkCount--; 10908 } 10909 } 10910 deleteEntry(p, index) { 10911 this.unregisterEntry(p); 10912 const rc = this.libzip.delete(this.zip, index); 10913 if (rc === -1) { 10914 throw this.makeLibzipError(this.libzip.getError(this.zip)); 10915 } 10916 } 10917 resolveFilename(reason, p, resolveLastComponent = true, throwIfNoEntry = true) { 10918 if (!this.ready) 10919 throw EBUSY(`archive closed, ${reason}`); 10920 let resolvedP = ppath.resolve(PortablePath.root, p); 10921 if (resolvedP === `/`) 10922 return PortablePath.root; 10923 const fileIndex = this.entries.get(resolvedP); 10924 if (resolveLastComponent && fileIndex !== void 0) { 10925 if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { 10926 const target = this.getFileSource(fileIndex).toString(); 10927 return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true, throwIfNoEntry); 10928 } else { 10929 return resolvedP; 10930 } 10931 } 10932 while (true) { 10933 const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true, throwIfNoEntry); 10934 if (parentP === void 0) 10935 return parentP; 10936 const isDir = this.listings.has(parentP); 10937 const doesExist = this.entries.has(parentP); 10938 if (!isDir && !doesExist) { 10939 if (throwIfNoEntry === false) 10940 return void 0; 10941 throw ENOENT(reason); 10942 } 10943 if (!isDir) 10944 throw ENOTDIR(reason); 10945 resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)); 10946 if (!resolveLastComponent || this.symlinkCount === 0) 10947 break; 10948 const index = this.libzip.name.locate(this.zip, resolvedP.slice(1)); 10949 if (index === -1) 10950 break; 10951 if (this.isSymbolicLink(index)) { 10952 const target = this.getFileSource(index).toString(); 10953 resolvedP = ppath.resolve(ppath.dirname(resolvedP), target); 10954 } else { 10955 break; 10956 } 10957 } 10958 return resolvedP; 10959 } 10960 allocateBuffer(content) { 10961 if (!Buffer.isBuffer(content)) 10962 content = Buffer.from(content); 10963 const buffer = this.libzip.malloc(content.byteLength); 10964 if (!buffer) 10965 throw new Error(`Couldn't allocate enough memory`); 10966 const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength); 10967 heap.set(content); 10968 return { buffer, byteLength: content.byteLength }; 10969 } 10970 allocateUnattachedSource(content) { 10971 const error = this.libzip.struct.errorS(); 10972 const { buffer, byteLength } = this.allocateBuffer(content); 10973 const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, true, error); 10974 if (source === 0) { 10975 this.libzip.free(error); 10976 throw this.makeLibzipError(error); 10977 } 10978 return source; 10979 } 10980 allocateSource(content) { 10981 const { buffer, byteLength } = this.allocateBuffer(content); 10982 const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, true); 10983 if (source === 0) { 10984 this.libzip.free(buffer); 10985 throw this.makeLibzipError(this.libzip.getError(this.zip)); 10986 } 10987 return source; 10988 } 10989 setFileSource(p, content) { 10990 const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); 10991 const target = ppath.relative(PortablePath.root, p); 10992 const lzSource = this.allocateSource(content); 10993 try { 10994 const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE); 10995 if (newIndex === -1) 10996 throw this.makeLibzipError(this.libzip.getError(this.zip)); 10997 if (this.level !== `mixed`) { 10998 const method = this.level === 0 ? this.libzip.ZIP_CM_STORE : this.libzip.ZIP_CM_DEFLATE; 10999 const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, method, this.level); 11000 if (rc === -1) { 11001 throw this.makeLibzipError(this.libzip.getError(this.zip)); 11002 } 11003 } 11004 this.fileSources.set(newIndex, buffer); 11005 return newIndex; 11006 } catch (error) { 11007 this.libzip.source.free(lzSource); 11008 throw error; 11009 } 11010 } 11011 isSymbolicLink(index) { 11012 if (this.symlinkCount === 0) 11013 return false; 11014 const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); 11015 if (attrs === -1) 11016 throw this.makeLibzipError(this.libzip.getError(this.zip)); 11017 const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; 11018 if (opsys !== this.libzip.ZIP_OPSYS_UNIX) 11019 return false; 11020 const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; 11021 return (attributes & S_IFMT) === S_IFLNK; 11022 } 11023 getFileSource(index, opts = { asyncDecompress: false }) { 11024 const cachedFileSource = this.fileSources.get(index); 11025 if (typeof cachedFileSource !== `undefined`) 11026 return cachedFileSource; 11027 const stat = this.libzip.struct.statS(); 11028 const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat); 11029 if (rc === -1) 11030 throw this.makeLibzipError(this.libzip.getError(this.zip)); 11031 const size = this.libzip.struct.statCompSize(stat); 11032 const compressionMethod = this.libzip.struct.statCompMethod(stat); 11033 const buffer = this.libzip.malloc(size); 11034 try { 11035 const file = this.libzip.fopenIndex(this.zip, index, 0, this.libzip.ZIP_FL_COMPRESSED); 11036 if (file === 0) 11037 throw this.makeLibzipError(this.libzip.getError(this.zip)); 11038 try { 11039 const rc2 = this.libzip.fread(file, buffer, size, 0); 11040 if (rc2 === -1) 11041 throw this.makeLibzipError(this.libzip.file.getError(file)); 11042 else if (rc2 < size) 11043 throw new Error(`Incomplete read`); 11044 else if (rc2 > size) 11045 throw new Error(`Overread`); 11046 const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); 11047 const data = Buffer.from(memory); 11048 if (compressionMethod === 0) { 11049 this.fileSources.set(index, data); 11050 return data; 11051 } else if (opts.asyncDecompress) { 11052 return new Promise((resolve, reject) => { 11053 zlib__default.default.inflateRaw(data, (error, result) => { 11054 if (error) { 11055 reject(error); 11056 } else { 11057 this.fileSources.set(index, result); 11058 resolve(result); 11059 } 11060 }); 11061 }); 11062 } else { 11063 const decompressedData = zlib__default.default.inflateRawSync(data); 11064 this.fileSources.set(index, decompressedData); 11065 return decompressedData; 11066 } 11067 } finally { 11068 this.libzip.fclose(file); 11069 } 11070 } finally { 11071 this.libzip.free(buffer); 11072 } 11073 } 11074 async fchmodPromise(fd, mask) { 11075 return this.chmodPromise(this.fdToPath(fd, `fchmod`), mask); 11076 } 11077 fchmodSync(fd, mask) { 11078 return this.chmodSync(this.fdToPath(fd, `fchmodSync`), mask); 11079 } 11080 async chmodPromise(p, mask) { 11081 return this.chmodSync(p, mask); 11082 } 11083 chmodSync(p, mask) { 11084 if (this.readOnly) 11085 throw EROFS(`chmod '${p}'`); 11086 mask &= 493; 11087 const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false); 11088 const entry = this.entries.get(resolvedP); 11089 if (typeof entry === `undefined`) 11090 throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`); 11091 const oldMod = this.getUnixMode(entry, S_IFREG | 0); 11092 const newMod = oldMod & ~511 | mask; 11093 const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16); 11094 if (rc === -1) { 11095 throw this.makeLibzipError(this.libzip.getError(this.zip)); 11096 } 11097 } 11098 async fchownPromise(fd, uid, gid) { 11099 return this.chownPromise(this.fdToPath(fd, `fchown`), uid, gid); 11100 } 11101 fchownSync(fd, uid, gid) { 11102 return this.chownSync(this.fdToPath(fd, `fchownSync`), uid, gid); 11103 } 11104 async chownPromise(p, uid, gid) { 11105 return this.chownSync(p, uid, gid); 11106 } 11107 chownSync(p, uid, gid) { 11108 throw new Error(`Unimplemented`); 11109 } 11110 async renamePromise(oldP, newP) { 11111 return this.renameSync(oldP, newP); 11112 } 11113 renameSync(oldP, newP) { 11114 throw new Error(`Unimplemented`); 11115 } 11116 async copyFilePromise(sourceP, destP, flags) { 11117 const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); 11118 const source = await this.getFileSource(indexSource, { asyncDecompress: true }); 11119 const newIndex = this.setFileSource(resolvedDestP, source); 11120 if (newIndex !== indexDest) { 11121 this.registerEntry(resolvedDestP, newIndex); 11122 } 11123 } 11124 copyFileSync(sourceP, destP, flags = 0) { 11125 const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); 11126 const source = this.getFileSource(indexSource); 11127 const newIndex = this.setFileSource(resolvedDestP, source); 11128 if (newIndex !== indexDest) { 11129 this.registerEntry(resolvedDestP, newIndex); 11130 } 11131 } 11132 prepareCopyFile(sourceP, destP, flags = 0) { 11133 if (this.readOnly) 11134 throw EROFS(`copyfile '${sourceP} -> '${destP}'`); 11135 if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) 11136 throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`); 11137 const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP); 11138 const indexSource = this.entries.get(resolvedSourceP); 11139 if (typeof indexSource === `undefined`) 11140 throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`); 11141 const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP); 11142 const indexDest = this.entries.get(resolvedDestP); 11143 if ((flags & (fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) 11144 throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`); 11145 return { 11146 indexSource, 11147 resolvedDestP, 11148 indexDest 11149 }; 11150 } 11151 async appendFilePromise(p, content, opts) { 11152 if (this.readOnly) 11153 throw EROFS(`open '${p}'`); 11154 if (typeof opts === `undefined`) 11155 opts = { flag: `a` }; 11156 else if (typeof opts === `string`) 11157 opts = { flag: `a`, encoding: opts }; 11158 else if (typeof opts.flag === `undefined`) 11159 opts = { flag: `a`, ...opts }; 11160 return this.writeFilePromise(p, content, opts); 11161 } 11162 appendFileSync(p, content, opts = {}) { 11163 if (this.readOnly) 11164 throw EROFS(`open '${p}'`); 11165 if (typeof opts === `undefined`) 11166 opts = { flag: `a` }; 11167 else if (typeof opts === `string`) 11168 opts = { flag: `a`, encoding: opts }; 11169 else if (typeof opts.flag === `undefined`) 11170 opts = { flag: `a`, ...opts }; 11171 return this.writeFileSync(p, content, opts); 11172 } 11173 fdToPath(fd, reason) { 11174 var _a; 11175 const path = (_a = this.fds.get(fd)) == null ? void 0 : _a.p; 11176 if (typeof path === `undefined`) 11177 throw EBADF(reason); 11178 return path; 11179 } 11180 async writeFilePromise(p, content, opts) { 11181 const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); 11182 if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) 11183 content = Buffer.concat([await this.getFileSource(index, { asyncDecompress: true }), Buffer.from(content)]); 11184 if (encoding !== null) 11185 content = content.toString(encoding); 11186 const newIndex = this.setFileSource(resolvedP, content); 11187 if (newIndex !== index) 11188 this.registerEntry(resolvedP, newIndex); 11189 if (mode !== null) { 11190 await this.chmodPromise(resolvedP, mode); 11191 } 11192 } 11193 writeFileSync(p, content, opts) { 11194 const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); 11195 if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) 11196 content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]); 11197 if (encoding !== null) 11198 content = content.toString(encoding); 11199 const newIndex = this.setFileSource(resolvedP, content); 11200 if (newIndex !== index) 11201 this.registerEntry(resolvedP, newIndex); 11202 if (mode !== null) { 11203 this.chmodSync(resolvedP, mode); 11204 } 11205 } 11206 prepareWriteFile(p, opts) { 11207 if (typeof p === `number`) 11208 p = this.fdToPath(p, `read`); 11209 if (this.readOnly) 11210 throw EROFS(`open '${p}'`); 11211 const resolvedP = this.resolveFilename(`open '${p}'`, p); 11212 if (this.listings.has(resolvedP)) 11213 throw EISDIR(`open '${p}'`); 11214 let encoding = null, mode = null; 11215 if (typeof opts === `string`) { 11216 encoding = opts; 11217 } else if (typeof opts === `object`) { 11218 ({ 11219 encoding = null, 11220 mode = null 11221 } = opts); 11222 } 11223 const index = this.entries.get(resolvedP); 11224 return { 11225 encoding, 11226 mode, 11227 resolvedP, 11228 index 11229 }; 11230 } 11231 async unlinkPromise(p) { 11232 return this.unlinkSync(p); 11233 } 11234 unlinkSync(p) { 11235 if (this.readOnly) 11236 throw EROFS(`unlink '${p}'`); 11237 const resolvedP = this.resolveFilename(`unlink '${p}'`, p); 11238 if (this.listings.has(resolvedP)) 11239 throw EISDIR(`unlink '${p}'`); 11240 const index = this.entries.get(resolvedP); 11241 if (typeof index === `undefined`) 11242 throw EINVAL(`unlink '${p}'`); 11243 this.deleteEntry(resolvedP, index); 11244 } 11245 async utimesPromise(p, atime, mtime) { 11246 return this.utimesSync(p, atime, mtime); 11247 } 11248 utimesSync(p, atime, mtime) { 11249 if (this.readOnly) 11250 throw EROFS(`utimes '${p}'`); 11251 const resolvedP = this.resolveFilename(`utimes '${p}'`, p); 11252 this.utimesImpl(resolvedP, mtime); 11253 } 11254 async lutimesPromise(p, atime, mtime) { 11255 return this.lutimesSync(p, atime, mtime); 11256 } 11257 lutimesSync(p, atime, mtime) { 11258 if (this.readOnly) 11259 throw EROFS(`lutimes '${p}'`); 11260 const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false); 11261 this.utimesImpl(resolvedP, mtime); 11262 } 11263 utimesImpl(resolvedP, mtime) { 11264 if (this.listings.has(resolvedP)) { 11265 if (!this.entries.has(resolvedP)) 11266 this.hydrateDirectory(resolvedP); 11267 } 11268 const entry = this.entries.get(resolvedP); 11269 if (entry === void 0) 11270 throw new Error(`Unreachable`); 11271 const rc = this.libzip.file.setMtime(this.zip, entry, 0, toUnixTimestamp(mtime), 0); 11272 if (rc === -1) { 11273 throw this.makeLibzipError(this.libzip.getError(this.zip)); 11274 } 11275 } 11276 async mkdirPromise(p, opts) { 11277 return this.mkdirSync(p, opts); 11278 } 11279 mkdirSync(p, { mode = 493, recursive = false } = {}) { 11280 if (recursive) 11281 return this.mkdirpSync(p, { chmod: mode }); 11282 if (this.readOnly) 11283 throw EROFS(`mkdir '${p}'`); 11284 const resolvedP = this.resolveFilename(`mkdir '${p}'`, p); 11285 if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) 11286 throw EEXIST(`mkdir '${p}'`); 11287 this.hydrateDirectory(resolvedP); 11288 this.chmodSync(resolvedP, mode); 11289 return void 0; 11290 } 11291 async rmdirPromise(p, opts) { 11292 return this.rmdirSync(p, opts); 11293 } 11294 rmdirSync(p, { recursive = false } = {}) { 11295 if (this.readOnly) 11296 throw EROFS(`rmdir '${p}'`); 11297 if (recursive) { 11298 this.removeSync(p); 11299 return; 11300 } 11301 const resolvedP = this.resolveFilename(`rmdir '${p}'`, p); 11302 const directoryListing = this.listings.get(resolvedP); 11303 if (!directoryListing) 11304 throw ENOTDIR(`rmdir '${p}'`); 11305 if (directoryListing.size > 0) 11306 throw ENOTEMPTY(`rmdir '${p}'`); 11307 const index = this.entries.get(resolvedP); 11308 if (typeof index === `undefined`) 11309 throw EINVAL(`rmdir '${p}'`); 11310 this.deleteEntry(p, index); 11311 } 11312 hydrateDirectory(resolvedP) { 11313 const index = this.libzip.dir.add(this.zip, ppath.relative(PortablePath.root, resolvedP)); 11314 if (index === -1) 11315 throw this.makeLibzipError(this.libzip.getError(this.zip)); 11316 this.registerListing(resolvedP); 11317 this.registerEntry(resolvedP, index); 11318 return index; 11319 } 11320 async linkPromise(existingP, newP) { 11321 return this.linkSync(existingP, newP); 11322 } 11323 linkSync(existingP, newP) { 11324 throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`); 11325 } 11326 async symlinkPromise(target, p) { 11327 return this.symlinkSync(target, p); 11328 } 11329 symlinkSync(target, p) { 11330 if (this.readOnly) 11331 throw EROFS(`symlink '${target}' -> '${p}'`); 11332 const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p); 11333 if (this.listings.has(resolvedP)) 11334 throw EISDIR(`symlink '${target}' -> '${p}'`); 11335 if (this.entries.has(resolvedP)) 11336 throw EEXIST(`symlink '${target}' -> '${p}'`); 11337 const index = this.setFileSource(resolvedP, target); 11338 this.registerEntry(resolvedP, index); 11339 const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (S_IFLNK | 511) << 16); 11340 if (rc === -1) 11341 throw this.makeLibzipError(this.libzip.getError(this.zip)); 11342 this.symlinkCount += 1; 11343 } 11344 async readFilePromise(p, encoding) { 11345 if (typeof encoding === `object`) 11346 encoding = encoding ? encoding.encoding : void 0; 11347 const data = await this.readFileBuffer(p, { asyncDecompress: true }); 11348 return encoding ? data.toString(encoding) : data; 11349 } 11350 readFileSync(p, encoding) { 11351 if (typeof encoding === `object`) 11352 encoding = encoding ? encoding.encoding : void 0; 11353 const data = this.readFileBuffer(p); 11354 return encoding ? data.toString(encoding) : data; 11355 } 11356 readFileBuffer(p, opts = { asyncDecompress: false }) { 11357 if (typeof p === `number`) 11358 p = this.fdToPath(p, `read`); 11359 const resolvedP = this.resolveFilename(`open '${p}'`, p); 11360 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) 11361 throw ENOENT(`open '${p}'`); 11362 if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) 11363 throw ENOTDIR(`open '${p}'`); 11364 if (this.listings.has(resolvedP)) 11365 throw EISDIR(`read`); 11366 const entry = this.entries.get(resolvedP); 11367 if (entry === void 0) 11368 throw new Error(`Unreachable`); 11369 return this.getFileSource(entry, opts); 11370 } 11371 async readdirPromise(p, opts) { 11372 return this.readdirSync(p, opts); 11373 } 11374 readdirSync(p, opts) { 11375 const resolvedP = this.resolveFilename(`scandir '${p}'`, p); 11376 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) 11377 throw ENOENT(`scandir '${p}'`); 11378 const directoryListing = this.listings.get(resolvedP); 11379 if (!directoryListing) 11380 throw ENOTDIR(`scandir '${p}'`); 11381 const entries = [...directoryListing]; 11382 if (!(opts == null ? void 0 : opts.withFileTypes)) 11383 return entries; 11384 return entries.map((name) => { 11385 return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { 11386 name 11387 }); 11388 }); 11389 } 11390 async readlinkPromise(p) { 11391 const entry = this.prepareReadlink(p); 11392 return (await this.getFileSource(entry, { asyncDecompress: true })).toString(); 11393 } 11394 readlinkSync(p) { 11395 const entry = this.prepareReadlink(p); 11396 return this.getFileSource(entry).toString(); 11397 } 11398 prepareReadlink(p) { 11399 const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false); 11400 if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) 11401 throw ENOENT(`readlink '${p}'`); 11402 if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) 11403 throw ENOTDIR(`open '${p}'`); 11404 if (this.listings.has(resolvedP)) 11405 throw EINVAL(`readlink '${p}'`); 11406 const entry = this.entries.get(resolvedP); 11407 if (entry === void 0) 11408 throw new Error(`Unreachable`); 11409 if (!this.isSymbolicLink(entry)) 11410 throw EINVAL(`readlink '${p}'`); 11411 return entry; 11412 } 11413 async truncatePromise(p, len = 0) { 11414 const resolvedP = this.resolveFilename(`open '${p}'`, p); 11415 const index = this.entries.get(resolvedP); 11416 if (typeof index === `undefined`) 11417 throw EINVAL(`open '${p}'`); 11418 const source = await this.getFileSource(index, { asyncDecompress: true }); 11419 const truncated = Buffer.alloc(len, 0); 11420 source.copy(truncated); 11421 return await this.writeFilePromise(p, truncated); 11422 } 11423 truncateSync(p, len = 0) { 11424 const resolvedP = this.resolveFilename(`open '${p}'`, p); 11425 const index = this.entries.get(resolvedP); 11426 if (typeof index === `undefined`) 11427 throw EINVAL(`open '${p}'`); 11428 const source = this.getFileSource(index); 11429 const truncated = Buffer.alloc(len, 0); 11430 source.copy(truncated); 11431 return this.writeFileSync(p, truncated); 11432 } 11433 async ftruncatePromise(fd, len) { 11434 return this.truncatePromise(this.fdToPath(fd, `ftruncate`), len); 11435 } 11436 ftruncateSync(fd, len) { 11437 return this.truncateSync(this.fdToPath(fd, `ftruncateSync`), len); 11438 } 11439 watch(p, a, b) { 11440 let persistent; 11441 switch (typeof a) { 11442 case `function`: 11443 case `string`: 11444 case `undefined`: 11445 { 11446 persistent = true; 11447 } 11448 break; 11449 default: 11450 { 11451 ({ persistent = true } = a); 11452 } 11453 break; 11454 } 11455 if (!persistent) 11456 return { on: () => { 11457 }, close: () => { 11458 } }; 11459 const interval = setInterval(() => { 11460 }, 24 * 60 * 60 * 1e3); 11461 return { on: () => { 11462 }, close: () => { 11463 clearInterval(interval); 11464 } }; 11465 } 11466 watchFile(p, a, b) { 11467 const resolvedP = ppath.resolve(PortablePath.root, p); 11468 return watchFile(this, resolvedP, a, b); 11469 } 11470 unwatchFile(p, cb) { 11471 const resolvedP = ppath.resolve(PortablePath.root, p); 11472 return unwatchFile(this, resolvedP, cb); 11473 } 11474 } 11475 11476 class ProxiedFS extends FakeFS { 11477 getExtractHint(hints) { 11478 return this.baseFs.getExtractHint(hints); 11479 } 11480 resolve(path) { 11481 return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); 11482 } 11483 getRealPath() { 11484 return this.mapFromBase(this.baseFs.getRealPath()); 11485 } 11486 async openPromise(p, flags, mode) { 11487 return this.baseFs.openPromise(this.mapToBase(p), flags, mode); 11488 } 11489 openSync(p, flags, mode) { 11490 return this.baseFs.openSync(this.mapToBase(p), flags, mode); 11491 } 11492 async opendirPromise(p, opts) { 11493 return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); 11494 } 11495 opendirSync(p, opts) { 11496 return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); 11497 } 11498 async readPromise(fd, buffer, offset, length, position) { 11499 return await this.baseFs.readPromise(fd, buffer, offset, length, position); 11500 } 11501 readSync(fd, buffer, offset, length, position) { 11502 return this.baseFs.readSync(fd, buffer, offset, length, position); 11503 } 11504 async writePromise(fd, buffer, offset, length, position) { 11505 if (typeof buffer === `string`) { 11506 return await this.baseFs.writePromise(fd, buffer, offset); 11507 } else { 11508 return await this.baseFs.writePromise(fd, buffer, offset, length, position); 11509 } 11510 } 11511 writeSync(fd, buffer, offset, length, position) { 11512 if (typeof buffer === `string`) { 11513 return this.baseFs.writeSync(fd, buffer, offset); 11514 } else { 11515 return this.baseFs.writeSync(fd, buffer, offset, length, position); 11516 } 11517 } 11518 async closePromise(fd) { 11519 return this.baseFs.closePromise(fd); 11520 } 11521 closeSync(fd) { 11522 this.baseFs.closeSync(fd); 11523 } 11524 createReadStream(p, opts) { 11525 return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); 11526 } 11527 createWriteStream(p, opts) { 11528 return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); 11529 } 11530 async realpathPromise(p) { 11531 return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); 11532 } 11533 realpathSync(p) { 11534 return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); 11535 } 11536 async existsPromise(p) { 11537 return this.baseFs.existsPromise(this.mapToBase(p)); 11538 } 11539 existsSync(p) { 11540 return this.baseFs.existsSync(this.mapToBase(p)); 11541 } 11542 accessSync(p, mode) { 11543 return this.baseFs.accessSync(this.mapToBase(p), mode); 11544 } 11545 async accessPromise(p, mode) { 11546 return this.baseFs.accessPromise(this.mapToBase(p), mode); 11547 } 11548 async statPromise(p, opts) { 11549 return this.baseFs.statPromise(this.mapToBase(p), opts); 11550 } 11551 statSync(p, opts) { 11552 return this.baseFs.statSync(this.mapToBase(p), opts); 11553 } 11554 async fstatPromise(fd, opts) { 11555 return this.baseFs.fstatPromise(fd, opts); 11556 } 11557 fstatSync(fd, opts) { 11558 return this.baseFs.fstatSync(fd, opts); 11559 } 11560 lstatPromise(p, opts) { 11561 return this.baseFs.lstatPromise(this.mapToBase(p), opts); 11562 } 11563 lstatSync(p, opts) { 11564 return this.baseFs.lstatSync(this.mapToBase(p), opts); 11565 } 11566 async fchmodPromise(fd, mask) { 11567 return this.baseFs.fchmodPromise(fd, mask); 11568 } 11569 fchmodSync(fd, mask) { 11570 return this.baseFs.fchmodSync(fd, mask); 11571 } 11572 async chmodPromise(p, mask) { 11573 return this.baseFs.chmodPromise(this.mapToBase(p), mask); 11574 } 11575 chmodSync(p, mask) { 11576 return this.baseFs.chmodSync(this.mapToBase(p), mask); 11577 } 11578 async fchownPromise(fd, uid, gid) { 11579 return this.baseFs.fchownPromise(fd, uid, gid); 11580 } 11581 fchownSync(fd, uid, gid) { 11582 return this.baseFs.fchownSync(fd, uid, gid); 11583 } 11584 async chownPromise(p, uid, gid) { 11585 return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); 11586 } 11587 chownSync(p, uid, gid) { 11588 return this.baseFs.chownSync(this.mapToBase(p), uid, gid); 11589 } 11590 async renamePromise(oldP, newP) { 11591 return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); 11592 } 11593 renameSync(oldP, newP) { 11594 return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); 11595 } 11596 async copyFilePromise(sourceP, destP, flags = 0) { 11597 return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); 11598 } 11599 copyFileSync(sourceP, destP, flags = 0) { 11600 return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); 11601 } 11602 async appendFilePromise(p, content, opts) { 11603 return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); 11604 } 11605 appendFileSync(p, content, opts) { 11606 return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); 11607 } 11608 async writeFilePromise(p, content, opts) { 11609 return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); 11610 } 11611 writeFileSync(p, content, opts) { 11612 return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); 11613 } 11614 async unlinkPromise(p) { 11615 return this.baseFs.unlinkPromise(this.mapToBase(p)); 11616 } 11617 unlinkSync(p) { 11618 return this.baseFs.unlinkSync(this.mapToBase(p)); 11619 } 11620 async utimesPromise(p, atime, mtime) { 11621 return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); 11622 } 11623 utimesSync(p, atime, mtime) { 11624 return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); 11625 } 11626 async mkdirPromise(p, opts) { 11627 return this.baseFs.mkdirPromise(this.mapToBase(p), opts); 11628 } 11629 mkdirSync(p, opts) { 11630 return this.baseFs.mkdirSync(this.mapToBase(p), opts); 11631 } 11632 async rmdirPromise(p, opts) { 11633 return this.baseFs.rmdirPromise(this.mapToBase(p), opts); 11634 } 11635 rmdirSync(p, opts) { 11636 return this.baseFs.rmdirSync(this.mapToBase(p), opts); 11637 } 11638 async linkPromise(existingP, newP) { 11639 return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); 11640 } 11641 linkSync(existingP, newP) { 11642 return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); 11643 } 11644 async symlinkPromise(target, p, type) { 11645 const mappedP = this.mapToBase(p); 11646 if (this.pathUtils.isAbsolute(target)) 11647 return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); 11648 const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); 11649 const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); 11650 return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); 11651 } 11652 symlinkSync(target, p, type) { 11653 const mappedP = this.mapToBase(p); 11654 if (this.pathUtils.isAbsolute(target)) 11655 return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); 11656 const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); 11657 const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); 11658 return this.baseFs.symlinkSync(mappedTarget, mappedP, type); 11659 } 11660 async readFilePromise(p, encoding) { 11661 if (encoding === `utf8`) { 11662 return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); 11663 } else { 11664 return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); 11665 } 11666 } 11667 readFileSync(p, encoding) { 11668 if (encoding === `utf8`) { 11669 return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); 11670 } else { 11671 return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); 11672 } 11673 } 11674 async readdirPromise(p, opts) { 11675 return this.baseFs.readdirPromise(this.mapToBase(p), opts); 11676 } 11677 readdirSync(p, opts) { 11678 return this.baseFs.readdirSync(this.mapToBase(p), opts); 11679 } 11680 async readlinkPromise(p) { 11681 return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); 11682 } 11683 readlinkSync(p) { 11684 return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); 11685 } 11686 async truncatePromise(p, len) { 11687 return this.baseFs.truncatePromise(this.mapToBase(p), len); 11688 } 11689 truncateSync(p, len) { 11690 return this.baseFs.truncateSync(this.mapToBase(p), len); 11691 } 11692 async ftruncatePromise(fd, len) { 11693 return this.baseFs.ftruncatePromise(fd, len); 11694 } 11695 ftruncateSync(fd, len) { 11696 return this.baseFs.ftruncateSync(fd, len); 11697 } 11698 watch(p, a, b) { 11699 return this.baseFs.watch( 11700 this.mapToBase(p), 11701 a, 11702 b 11703 ); 11704 } 11705 watchFile(p, a, b) { 11706 return this.baseFs.watchFile( 11707 this.mapToBase(p), 11708 a, 11709 b 11710 ); 11711 } 11712 unwatchFile(p, cb) { 11713 return this.baseFs.unwatchFile(this.mapToBase(p), cb); 11714 } 11715 fsMapToBase(p) { 11716 if (typeof p === `number`) { 11717 return p; 11718 } else { 11719 return this.mapToBase(p); 11720 } 11721 } 11722 } 11723 11724 class PosixFS extends ProxiedFS { 11725 constructor(baseFs) { 11726 super(npath); 11727 this.baseFs = baseFs; 11728 } 11729 mapFromBase(path) { 11730 return npath.fromPortablePath(path); 11731 } 11732 mapToBase(path) { 11733 return npath.toPortablePath(path); 11734 } 11735 } 11736 11737 const NUMBER_REGEXP = /^[0-9]+$/; 11738 const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; 11739 const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; 11740 class VirtualFS extends ProxiedFS { 11741 constructor({ baseFs = new NodeFS() } = {}) { 11742 super(ppath); 11743 this.baseFs = baseFs; 11744 } 11745 static makeVirtualPath(base, component, to) { 11746 if (ppath.basename(base) !== `__virtual__`) 11747 throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); 11748 if (!ppath.basename(component).match(VALID_COMPONENT)) 11749 throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); 11750 const target = ppath.relative(ppath.dirname(base), to); 11751 const segments = target.split(`/`); 11752 let depth = 0; 11753 while (depth < segments.length && segments[depth] === `..`) 11754 depth += 1; 11755 const finalSegments = segments.slice(depth); 11756 const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); 11757 return fullVirtualPath; 11758 } 11759 static resolveVirtual(p) { 11760 const match = p.match(VIRTUAL_REGEXP); 11761 if (!match || !match[3] && match[5]) 11762 return p; 11763 const target = ppath.dirname(match[1]); 11764 if (!match[3] || !match[4]) 11765 return target; 11766 const isnum = NUMBER_REGEXP.test(match[4]); 11767 if (!isnum) 11768 return p; 11769 const depth = Number(match[4]); 11770 const backstep = `../`.repeat(depth); 11771 const subpath = match[5] || `.`; 11772 return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); 11773 } 11774 getExtractHint(hints) { 11775 return this.baseFs.getExtractHint(hints); 11776 } 11777 getRealPath() { 11778 return this.baseFs.getRealPath(); 11779 } 11780 realpathSync(p) { 11781 const match = p.match(VIRTUAL_REGEXP); 11782 if (!match) 11783 return this.baseFs.realpathSync(p); 11784 if (!match[5]) 11785 return p; 11786 const realpath = this.baseFs.realpathSync(this.mapToBase(p)); 11787 return VirtualFS.makeVirtualPath(match[1], match[3], realpath); 11788 } 11789 async realpathPromise(p) { 11790 const match = p.match(VIRTUAL_REGEXP); 11791 if (!match) 11792 return await this.baseFs.realpathPromise(p); 11793 if (!match[5]) 11794 return p; 11795 const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); 11796 return VirtualFS.makeVirtualPath(match[1], match[3], realpath); 11797 } 11798 mapToBase(p) { 11799 if (p === ``) 11800 return p; 11801 if (this.pathUtils.isAbsolute(p)) 11802 return VirtualFS.resolveVirtual(p); 11803 const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); 11804 const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); 11805 return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; 11806 } 11807 mapFromBase(p) { 11808 return p; 11809 } 11810 } 11811 11812 const ZIP_MASK = 4278190080; 11813 const ZIP_MAGIC = 704643072; 11814 const getArchivePart = (path, extension) => { 11815 let idx = path.indexOf(extension); 11816 if (idx <= 0) 11817 return null; 11818 let nextCharIdx = idx; 11819 while (idx >= 0) { 11820 nextCharIdx = idx + extension.length; 11821 if (path[nextCharIdx] === ppath.sep) 11822 break; 11823 if (path[idx - 1] === ppath.sep) 11824 return null; 11825 idx = path.indexOf(extension, nextCharIdx); 11826 } 11827 if (path.length > nextCharIdx && path[nextCharIdx] !== ppath.sep) 11828 return null; 11829 return path.slice(0, nextCharIdx); 11830 }; 11831 class ZipOpenFS extends BasePortableFakeFS { 11832 constructor({ libzip, baseFs = new NodeFS(), filter = null, maxOpenFiles = Infinity, readOnlyArchives = false, useCache = true, maxAge = 5e3, fileExtensions = null }) { 11833 super(); 11834 this.fdMap = /* @__PURE__ */ new Map(); 11835 this.nextFd = 3; 11836 this.isZip = /* @__PURE__ */ new Set(); 11837 this.notZip = /* @__PURE__ */ new Set(); 11838 this.realPaths = /* @__PURE__ */ new Map(); 11839 this.limitOpenFilesTimeout = null; 11840 this.libzipFactory = typeof libzip !== `function` ? () => libzip : libzip; 11841 this.baseFs = baseFs; 11842 this.zipInstances = useCache ? /* @__PURE__ */ new Map() : null; 11843 this.filter = filter; 11844 this.maxOpenFiles = maxOpenFiles; 11845 this.readOnlyArchives = readOnlyArchives; 11846 this.maxAge = maxAge; 11847 this.fileExtensions = fileExtensions; 11848 } 11849 static async openPromise(fn, opts) { 11850 const zipOpenFs = new ZipOpenFS(opts); 11851 try { 11852 return await fn(zipOpenFs); 11853 } finally { 11854 zipOpenFs.saveAndClose(); 11855 } 11856 } 11857 get libzip() { 11858 if (typeof this.libzipInstance === `undefined`) 11859 this.libzipInstance = this.libzipFactory(); 11860 return this.libzipInstance; 11861 } 11862 getExtractHint(hints) { 11863 return this.baseFs.getExtractHint(hints); 11864 } 11865 getRealPath() { 11866 return this.baseFs.getRealPath(); 11867 } 11868 saveAndClose() { 11869 unwatchAllFiles(this); 11870 if (this.zipInstances) { 11871 for (const [path, { zipFs }] of this.zipInstances.entries()) { 11872 zipFs.saveAndClose(); 11873 this.zipInstances.delete(path); 11874 } 11875 } 11876 } 11877 discardAndClose() { 11878 unwatchAllFiles(this); 11879 if (this.zipInstances) { 11880 for (const [path, { zipFs }] of this.zipInstances.entries()) { 11881 zipFs.discardAndClose(); 11882 this.zipInstances.delete(path); 11883 } 11884 } 11885 } 11886 resolve(p) { 11887 return this.baseFs.resolve(p); 11888 } 11889 remapFd(zipFs, fd) { 11890 const remappedFd = this.nextFd++ | ZIP_MAGIC; 11891 this.fdMap.set(remappedFd, [zipFs, fd]); 11892 return remappedFd; 11893 } 11894 async openPromise(p, flags, mode) { 11895 return await this.makeCallPromise(p, async () => { 11896 return await this.baseFs.openPromise(p, flags, mode); 11897 }, async (zipFs, { subPath }) => { 11898 return this.remapFd(zipFs, await zipFs.openPromise(subPath, flags, mode)); 11899 }); 11900 } 11901 openSync(p, flags, mode) { 11902 return this.makeCallSync(p, () => { 11903 return this.baseFs.openSync(p, flags, mode); 11904 }, (zipFs, { subPath }) => { 11905 return this.remapFd(zipFs, zipFs.openSync(subPath, flags, mode)); 11906 }); 11907 } 11908 async opendirPromise(p, opts) { 11909 return await this.makeCallPromise(p, async () => { 11910 return await this.baseFs.opendirPromise(p, opts); 11911 }, async (zipFs, { subPath }) => { 11912 return await zipFs.opendirPromise(subPath, opts); 11913 }, { 11914 requireSubpath: false 11915 }); 11916 } 11917 opendirSync(p, opts) { 11918 return this.makeCallSync(p, () => { 11919 return this.baseFs.opendirSync(p, opts); 11920 }, (zipFs, { subPath }) => { 11921 return zipFs.opendirSync(subPath, opts); 11922 }, { 11923 requireSubpath: false 11924 }); 11925 } 11926 async readPromise(fd, buffer, offset, length, position) { 11927 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 11928 return await this.baseFs.readPromise(fd, buffer, offset, length, position); 11929 const entry = this.fdMap.get(fd); 11930 if (typeof entry === `undefined`) 11931 throw EBADF(`read`); 11932 const [zipFs, realFd] = entry; 11933 return await zipFs.readPromise(realFd, buffer, offset, length, position); 11934 } 11935 readSync(fd, buffer, offset, length, position) { 11936 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 11937 return this.baseFs.readSync(fd, buffer, offset, length, position); 11938 const entry = this.fdMap.get(fd); 11939 if (typeof entry === `undefined`) 11940 throw EBADF(`readSync`); 11941 const [zipFs, realFd] = entry; 11942 return zipFs.readSync(realFd, buffer, offset, length, position); 11943 } 11944 async writePromise(fd, buffer, offset, length, position) { 11945 if ((fd & ZIP_MASK) !== ZIP_MAGIC) { 11946 if (typeof buffer === `string`) { 11947 return await this.baseFs.writePromise(fd, buffer, offset); 11948 } else { 11949 return await this.baseFs.writePromise(fd, buffer, offset, length, position); 11950 } 11951 } 11952 const entry = this.fdMap.get(fd); 11953 if (typeof entry === `undefined`) 11954 throw EBADF(`write`); 11955 const [zipFs, realFd] = entry; 11956 if (typeof buffer === `string`) { 11957 return await zipFs.writePromise(realFd, buffer, offset); 11958 } else { 11959 return await zipFs.writePromise(realFd, buffer, offset, length, position); 11960 } 11961 } 11962 writeSync(fd, buffer, offset, length, position) { 11963 if ((fd & ZIP_MASK) !== ZIP_MAGIC) { 11964 if (typeof buffer === `string`) { 11965 return this.baseFs.writeSync(fd, buffer, offset); 11966 } else { 11967 return this.baseFs.writeSync(fd, buffer, offset, length, position); 11968 } 11969 } 11970 const entry = this.fdMap.get(fd); 11971 if (typeof entry === `undefined`) 11972 throw EBADF(`writeSync`); 11973 const [zipFs, realFd] = entry; 11974 if (typeof buffer === `string`) { 11975 return zipFs.writeSync(realFd, buffer, offset); 11976 } else { 11977 return zipFs.writeSync(realFd, buffer, offset, length, position); 11978 } 11979 } 11980 async closePromise(fd) { 11981 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 11982 return await this.baseFs.closePromise(fd); 11983 const entry = this.fdMap.get(fd); 11984 if (typeof entry === `undefined`) 11985 throw EBADF(`close`); 11986 this.fdMap.delete(fd); 11987 const [zipFs, realFd] = entry; 11988 return await zipFs.closePromise(realFd); 11989 } 11990 closeSync(fd) { 11991 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 11992 return this.baseFs.closeSync(fd); 11993 const entry = this.fdMap.get(fd); 11994 if (typeof entry === `undefined`) 11995 throw EBADF(`closeSync`); 11996 this.fdMap.delete(fd); 11997 const [zipFs, realFd] = entry; 11998 return zipFs.closeSync(realFd); 11999 } 12000 createReadStream(p, opts) { 12001 if (p === null) 12002 return this.baseFs.createReadStream(p, opts); 12003 return this.makeCallSync(p, () => { 12004 return this.baseFs.createReadStream(p, opts); 12005 }, (zipFs, { archivePath, subPath }) => { 12006 const stream = zipFs.createReadStream(subPath, opts); 12007 stream.path = npath.fromPortablePath(this.pathUtils.join(archivePath, subPath)); 12008 return stream; 12009 }); 12010 } 12011 createWriteStream(p, opts) { 12012 if (p === null) 12013 return this.baseFs.createWriteStream(p, opts); 12014 return this.makeCallSync(p, () => { 12015 return this.baseFs.createWriteStream(p, opts); 12016 }, (zipFs, { subPath }) => { 12017 return zipFs.createWriteStream(subPath, opts); 12018 }); 12019 } 12020 async realpathPromise(p) { 12021 return await this.makeCallPromise(p, async () => { 12022 return await this.baseFs.realpathPromise(p); 12023 }, async (zipFs, { archivePath, subPath }) => { 12024 let realArchivePath = this.realPaths.get(archivePath); 12025 if (typeof realArchivePath === `undefined`) { 12026 realArchivePath = await this.baseFs.realpathPromise(archivePath); 12027 this.realPaths.set(archivePath, realArchivePath); 12028 } 12029 return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await zipFs.realpathPromise(subPath))); 12030 }); 12031 } 12032 realpathSync(p) { 12033 return this.makeCallSync(p, () => { 12034 return this.baseFs.realpathSync(p); 12035 }, (zipFs, { archivePath, subPath }) => { 12036 let realArchivePath = this.realPaths.get(archivePath); 12037 if (typeof realArchivePath === `undefined`) { 12038 realArchivePath = this.baseFs.realpathSync(archivePath); 12039 this.realPaths.set(archivePath, realArchivePath); 12040 } 12041 return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, zipFs.realpathSync(subPath))); 12042 }); 12043 } 12044 async existsPromise(p) { 12045 return await this.makeCallPromise(p, async () => { 12046 return await this.baseFs.existsPromise(p); 12047 }, async (zipFs, { subPath }) => { 12048 return await zipFs.existsPromise(subPath); 12049 }); 12050 } 12051 existsSync(p) { 12052 return this.makeCallSync(p, () => { 12053 return this.baseFs.existsSync(p); 12054 }, (zipFs, { subPath }) => { 12055 return zipFs.existsSync(subPath); 12056 }); 12057 } 12058 async accessPromise(p, mode) { 12059 return await this.makeCallPromise(p, async () => { 12060 return await this.baseFs.accessPromise(p, mode); 12061 }, async (zipFs, { subPath }) => { 12062 return await zipFs.accessPromise(subPath, mode); 12063 }); 12064 } 12065 accessSync(p, mode) { 12066 return this.makeCallSync(p, () => { 12067 return this.baseFs.accessSync(p, mode); 12068 }, (zipFs, { subPath }) => { 12069 return zipFs.accessSync(subPath, mode); 12070 }); 12071 } 12072 async statPromise(p, opts) { 12073 return await this.makeCallPromise(p, async () => { 12074 return await this.baseFs.statPromise(p, opts); 12075 }, async (zipFs, { subPath }) => { 12076 return await zipFs.statPromise(subPath, opts); 12077 }); 12078 } 12079 statSync(p, opts) { 12080 return this.makeCallSync(p, () => { 12081 return this.baseFs.statSync(p, opts); 12082 }, (zipFs, { subPath }) => { 12083 return zipFs.statSync(subPath, opts); 12084 }); 12085 } 12086 async fstatPromise(fd, opts) { 12087 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 12088 return this.baseFs.fstatPromise(fd, opts); 12089 const entry = this.fdMap.get(fd); 12090 if (typeof entry === `undefined`) 12091 throw EBADF(`fstat`); 12092 const [zipFs, realFd] = entry; 12093 return zipFs.fstatPromise(realFd, opts); 12094 } 12095 fstatSync(fd, opts) { 12096 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 12097 return this.baseFs.fstatSync(fd, opts); 12098 const entry = this.fdMap.get(fd); 12099 if (typeof entry === `undefined`) 12100 throw EBADF(`fstatSync`); 12101 const [zipFs, realFd] = entry; 12102 return zipFs.fstatSync(realFd, opts); 12103 } 12104 async lstatPromise(p, opts) { 12105 return await this.makeCallPromise(p, async () => { 12106 return await this.baseFs.lstatPromise(p, opts); 12107 }, async (zipFs, { subPath }) => { 12108 return await zipFs.lstatPromise(subPath, opts); 12109 }); 12110 } 12111 lstatSync(p, opts) { 12112 return this.makeCallSync(p, () => { 12113 return this.baseFs.lstatSync(p, opts); 12114 }, (zipFs, { subPath }) => { 12115 return zipFs.lstatSync(subPath, opts); 12116 }); 12117 } 12118 async fchmodPromise(fd, mask) { 12119 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 12120 return this.baseFs.fchmodPromise(fd, mask); 12121 const entry = this.fdMap.get(fd); 12122 if (typeof entry === `undefined`) 12123 throw EBADF(`fchmod`); 12124 const [zipFs, realFd] = entry; 12125 return zipFs.fchmodPromise(realFd, mask); 12126 } 12127 fchmodSync(fd, mask) { 12128 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 12129 return this.baseFs.fchmodSync(fd, mask); 12130 const entry = this.fdMap.get(fd); 12131 if (typeof entry === `undefined`) 12132 throw EBADF(`fchmodSync`); 12133 const [zipFs, realFd] = entry; 12134 return zipFs.fchmodSync(realFd, mask); 12135 } 12136 async chmodPromise(p, mask) { 12137 return await this.makeCallPromise(p, async () => { 12138 return await this.baseFs.chmodPromise(p, mask); 12139 }, async (zipFs, { subPath }) => { 12140 return await zipFs.chmodPromise(subPath, mask); 12141 }); 12142 } 12143 chmodSync(p, mask) { 12144 return this.makeCallSync(p, () => { 12145 return this.baseFs.chmodSync(p, mask); 12146 }, (zipFs, { subPath }) => { 12147 return zipFs.chmodSync(subPath, mask); 12148 }); 12149 } 12150 async fchownPromise(fd, uid, gid) { 12151 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 12152 return this.baseFs.fchownPromise(fd, uid, gid); 12153 const entry = this.fdMap.get(fd); 12154 if (typeof entry === `undefined`) 12155 throw EBADF(`fchown`); 12156 const [zipFs, realFd] = entry; 12157 return zipFs.fchownPromise(realFd, uid, gid); 12158 } 12159 fchownSync(fd, uid, gid) { 12160 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 12161 return this.baseFs.fchownSync(fd, uid, gid); 12162 const entry = this.fdMap.get(fd); 12163 if (typeof entry === `undefined`) 12164 throw EBADF(`fchownSync`); 12165 const [zipFs, realFd] = entry; 12166 return zipFs.fchownSync(realFd, uid, gid); 12167 } 12168 async chownPromise(p, uid, gid) { 12169 return await this.makeCallPromise(p, async () => { 12170 return await this.baseFs.chownPromise(p, uid, gid); 12171 }, async (zipFs, { subPath }) => { 12172 return await zipFs.chownPromise(subPath, uid, gid); 12173 }); 12174 } 12175 chownSync(p, uid, gid) { 12176 return this.makeCallSync(p, () => { 12177 return this.baseFs.chownSync(p, uid, gid); 12178 }, (zipFs, { subPath }) => { 12179 return zipFs.chownSync(subPath, uid, gid); 12180 }); 12181 } 12182 async renamePromise(oldP, newP) { 12183 return await this.makeCallPromise(oldP, async () => { 12184 return await this.makeCallPromise(newP, async () => { 12185 return await this.baseFs.renamePromise(oldP, newP); 12186 }, async () => { 12187 throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); 12188 }); 12189 }, async (zipFsO, { subPath: subPathO }) => { 12190 return await this.makeCallPromise(newP, async () => { 12191 throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); 12192 }, async (zipFsN, { subPath: subPathN }) => { 12193 if (zipFsO !== zipFsN) { 12194 throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); 12195 } else { 12196 return await zipFsO.renamePromise(subPathO, subPathN); 12197 } 12198 }); 12199 }); 12200 } 12201 renameSync(oldP, newP) { 12202 return this.makeCallSync(oldP, () => { 12203 return this.makeCallSync(newP, () => { 12204 return this.baseFs.renameSync(oldP, newP); 12205 }, () => { 12206 throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); 12207 }); 12208 }, (zipFsO, { subPath: subPathO }) => { 12209 return this.makeCallSync(newP, () => { 12210 throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); 12211 }, (zipFsN, { subPath: subPathN }) => { 12212 if (zipFsO !== zipFsN) { 12213 throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); 12214 } else { 12215 return zipFsO.renameSync(subPathO, subPathN); 12216 } 12217 }); 12218 }); 12219 } 12220 async copyFilePromise(sourceP, destP, flags = 0) { 12221 const fallback = async (sourceFs, sourceP2, destFs, destP2) => { 12222 if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) 12223 throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); 12224 if (flags & fs.constants.COPYFILE_EXCL && await this.existsPromise(sourceP2)) 12225 throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); 12226 let content; 12227 try { 12228 content = await sourceFs.readFilePromise(sourceP2); 12229 } catch (error) { 12230 throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); 12231 } 12232 await destFs.writeFilePromise(destP2, content); 12233 }; 12234 return await this.makeCallPromise(sourceP, async () => { 12235 return await this.makeCallPromise(destP, async () => { 12236 return await this.baseFs.copyFilePromise(sourceP, destP, flags); 12237 }, async (zipFsD, { subPath: subPathD }) => { 12238 return await fallback(this.baseFs, sourceP, zipFsD, subPathD); 12239 }); 12240 }, async (zipFsS, { subPath: subPathS }) => { 12241 return await this.makeCallPromise(destP, async () => { 12242 return await fallback(zipFsS, subPathS, this.baseFs, destP); 12243 }, async (zipFsD, { subPath: subPathD }) => { 12244 if (zipFsS !== zipFsD) { 12245 return await fallback(zipFsS, subPathS, zipFsD, subPathD); 12246 } else { 12247 return await zipFsS.copyFilePromise(subPathS, subPathD, flags); 12248 } 12249 }); 12250 }); 12251 } 12252 copyFileSync(sourceP, destP, flags = 0) { 12253 const fallback = (sourceFs, sourceP2, destFs, destP2) => { 12254 if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) 12255 throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); 12256 if (flags & fs.constants.COPYFILE_EXCL && this.existsSync(sourceP2)) 12257 throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); 12258 let content; 12259 try { 12260 content = sourceFs.readFileSync(sourceP2); 12261 } catch (error) { 12262 throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); 12263 } 12264 destFs.writeFileSync(destP2, content); 12265 }; 12266 return this.makeCallSync(sourceP, () => { 12267 return this.makeCallSync(destP, () => { 12268 return this.baseFs.copyFileSync(sourceP, destP, flags); 12269 }, (zipFsD, { subPath: subPathD }) => { 12270 return fallback(this.baseFs, sourceP, zipFsD, subPathD); 12271 }); 12272 }, (zipFsS, { subPath: subPathS }) => { 12273 return this.makeCallSync(destP, () => { 12274 return fallback(zipFsS, subPathS, this.baseFs, destP); 12275 }, (zipFsD, { subPath: subPathD }) => { 12276 if (zipFsS !== zipFsD) { 12277 return fallback(zipFsS, subPathS, zipFsD, subPathD); 12278 } else { 12279 return zipFsS.copyFileSync(subPathS, subPathD, flags); 12280 } 12281 }); 12282 }); 12283 } 12284 async appendFilePromise(p, content, opts) { 12285 return await this.makeCallPromise(p, async () => { 12286 return await this.baseFs.appendFilePromise(p, content, opts); 12287 }, async (zipFs, { subPath }) => { 12288 return await zipFs.appendFilePromise(subPath, content, opts); 12289 }); 12290 } 12291 appendFileSync(p, content, opts) { 12292 return this.makeCallSync(p, () => { 12293 return this.baseFs.appendFileSync(p, content, opts); 12294 }, (zipFs, { subPath }) => { 12295 return zipFs.appendFileSync(subPath, content, opts); 12296 }); 12297 } 12298 async writeFilePromise(p, content, opts) { 12299 return await this.makeCallPromise(p, async () => { 12300 return await this.baseFs.writeFilePromise(p, content, opts); 12301 }, async (zipFs, { subPath }) => { 12302 return await zipFs.writeFilePromise(subPath, content, opts); 12303 }); 12304 } 12305 writeFileSync(p, content, opts) { 12306 return this.makeCallSync(p, () => { 12307 return this.baseFs.writeFileSync(p, content, opts); 12308 }, (zipFs, { subPath }) => { 12309 return zipFs.writeFileSync(subPath, content, opts); 12310 }); 12311 } 12312 async unlinkPromise(p) { 12313 return await this.makeCallPromise(p, async () => { 12314 return await this.baseFs.unlinkPromise(p); 12315 }, async (zipFs, { subPath }) => { 12316 return await zipFs.unlinkPromise(subPath); 12317 }); 12318 } 12319 unlinkSync(p) { 12320 return this.makeCallSync(p, () => { 12321 return this.baseFs.unlinkSync(p); 12322 }, (zipFs, { subPath }) => { 12323 return zipFs.unlinkSync(subPath); 12324 }); 12325 } 12326 async utimesPromise(p, atime, mtime) { 12327 return await this.makeCallPromise(p, async () => { 12328 return await this.baseFs.utimesPromise(p, atime, mtime); 12329 }, async (zipFs, { subPath }) => { 12330 return await zipFs.utimesPromise(subPath, atime, mtime); 12331 }); 12332 } 12333 utimesSync(p, atime, mtime) { 12334 return this.makeCallSync(p, () => { 12335 return this.baseFs.utimesSync(p, atime, mtime); 12336 }, (zipFs, { subPath }) => { 12337 return zipFs.utimesSync(subPath, atime, mtime); 12338 }); 12339 } 12340 async mkdirPromise(p, opts) { 12341 return await this.makeCallPromise(p, async () => { 12342 return await this.baseFs.mkdirPromise(p, opts); 12343 }, async (zipFs, { subPath }) => { 12344 return await zipFs.mkdirPromise(subPath, opts); 12345 }); 12346 } 12347 mkdirSync(p, opts) { 12348 return this.makeCallSync(p, () => { 12349 return this.baseFs.mkdirSync(p, opts); 12350 }, (zipFs, { subPath }) => { 12351 return zipFs.mkdirSync(subPath, opts); 12352 }); 12353 } 12354 async rmdirPromise(p, opts) { 12355 return await this.makeCallPromise(p, async () => { 12356 return await this.baseFs.rmdirPromise(p, opts); 12357 }, async (zipFs, { subPath }) => { 12358 return await zipFs.rmdirPromise(subPath, opts); 12359 }); 12360 } 12361 rmdirSync(p, opts) { 12362 return this.makeCallSync(p, () => { 12363 return this.baseFs.rmdirSync(p, opts); 12364 }, (zipFs, { subPath }) => { 12365 return zipFs.rmdirSync(subPath, opts); 12366 }); 12367 } 12368 async linkPromise(existingP, newP) { 12369 return await this.makeCallPromise(newP, async () => { 12370 return await this.baseFs.linkPromise(existingP, newP); 12371 }, async (zipFs, { subPath }) => { 12372 return await zipFs.linkPromise(existingP, subPath); 12373 }); 12374 } 12375 linkSync(existingP, newP) { 12376 return this.makeCallSync(newP, () => { 12377 return this.baseFs.linkSync(existingP, newP); 12378 }, (zipFs, { subPath }) => { 12379 return zipFs.linkSync(existingP, subPath); 12380 }); 12381 } 12382 async symlinkPromise(target, p, type) { 12383 return await this.makeCallPromise(p, async () => { 12384 return await this.baseFs.symlinkPromise(target, p, type); 12385 }, async (zipFs, { subPath }) => { 12386 return await zipFs.symlinkPromise(target, subPath); 12387 }); 12388 } 12389 symlinkSync(target, p, type) { 12390 return this.makeCallSync(p, () => { 12391 return this.baseFs.symlinkSync(target, p, type); 12392 }, (zipFs, { subPath }) => { 12393 return zipFs.symlinkSync(target, subPath); 12394 }); 12395 } 12396 async readFilePromise(p, encoding) { 12397 return this.makeCallPromise(p, async () => { 12398 switch (encoding) { 12399 case `utf8`: 12400 return await this.baseFs.readFilePromise(p, encoding); 12401 default: 12402 return await this.baseFs.readFilePromise(p, encoding); 12403 } 12404 }, async (zipFs, { subPath }) => { 12405 return await zipFs.readFilePromise(subPath, encoding); 12406 }); 12407 } 12408 readFileSync(p, encoding) { 12409 return this.makeCallSync(p, () => { 12410 switch (encoding) { 12411 case `utf8`: 12412 return this.baseFs.readFileSync(p, encoding); 12413 default: 12414 return this.baseFs.readFileSync(p, encoding); 12415 } 12416 }, (zipFs, { subPath }) => { 12417 return zipFs.readFileSync(subPath, encoding); 12418 }); 12419 } 12420 async readdirPromise(p, opts) { 12421 return await this.makeCallPromise(p, async () => { 12422 return await this.baseFs.readdirPromise(p, opts); 12423 }, async (zipFs, { subPath }) => { 12424 return await zipFs.readdirPromise(subPath, opts); 12425 }, { 12426 requireSubpath: false 12427 }); 12428 } 12429 readdirSync(p, opts) { 12430 return this.makeCallSync(p, () => { 12431 return this.baseFs.readdirSync(p, opts); 12432 }, (zipFs, { subPath }) => { 12433 return zipFs.readdirSync(subPath, opts); 12434 }, { 12435 requireSubpath: false 12436 }); 12437 } 12438 async readlinkPromise(p) { 12439 return await this.makeCallPromise(p, async () => { 12440 return await this.baseFs.readlinkPromise(p); 12441 }, async (zipFs, { subPath }) => { 12442 return await zipFs.readlinkPromise(subPath); 12443 }); 12444 } 12445 readlinkSync(p) { 12446 return this.makeCallSync(p, () => { 12447 return this.baseFs.readlinkSync(p); 12448 }, (zipFs, { subPath }) => { 12449 return zipFs.readlinkSync(subPath); 12450 }); 12451 } 12452 async truncatePromise(p, len) { 12453 return await this.makeCallPromise(p, async () => { 12454 return await this.baseFs.truncatePromise(p, len); 12455 }, async (zipFs, { subPath }) => { 12456 return await zipFs.truncatePromise(subPath, len); 12457 }); 12458 } 12459 truncateSync(p, len) { 12460 return this.makeCallSync(p, () => { 12461 return this.baseFs.truncateSync(p, len); 12462 }, (zipFs, { subPath }) => { 12463 return zipFs.truncateSync(subPath, len); 12464 }); 12465 } 12466 async ftruncatePromise(fd, len) { 12467 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 12468 return this.baseFs.ftruncatePromise(fd, len); 12469 const entry = this.fdMap.get(fd); 12470 if (typeof entry === `undefined`) 12471 throw EBADF(`ftruncate`); 12472 const [zipFs, realFd] = entry; 12473 return zipFs.ftruncatePromise(realFd, len); 12474 } 12475 ftruncateSync(fd, len) { 12476 if ((fd & ZIP_MASK) !== ZIP_MAGIC) 12477 return this.baseFs.ftruncateSync(fd, len); 12478 const entry = this.fdMap.get(fd); 12479 if (typeof entry === `undefined`) 12480 throw EBADF(`ftruncateSync`); 12481 const [zipFs, realFd] = entry; 12482 return zipFs.ftruncateSync(realFd, len); 12483 } 12484 watch(p, a, b) { 12485 return this.makeCallSync(p, () => { 12486 return this.baseFs.watch( 12487 p, 12488 a, 12489 b 12490 ); 12491 }, (zipFs, { subPath }) => { 12492 return zipFs.watch( 12493 subPath, 12494 a, 12495 b 12496 ); 12497 }); 12498 } 12499 watchFile(p, a, b) { 12500 return this.makeCallSync(p, () => { 12501 return this.baseFs.watchFile( 12502 p, 12503 a, 12504 b 12505 ); 12506 }, () => { 12507 return watchFile(this, p, a, b); 12508 }); 12509 } 12510 unwatchFile(p, cb) { 12511 return this.makeCallSync(p, () => { 12512 return this.baseFs.unwatchFile(p, cb); 12513 }, () => { 12514 return unwatchFile(this, p, cb); 12515 }); 12516 } 12517 async makeCallPromise(p, discard, accept, { requireSubpath = true } = {}) { 12518 if (typeof p !== `string`) 12519 return await discard(); 12520 const normalizedP = this.resolve(p); 12521 const zipInfo = this.findZip(normalizedP); 12522 if (!zipInfo) 12523 return await discard(); 12524 if (requireSubpath && zipInfo.subPath === `/`) 12525 return await discard(); 12526 return await this.getZipPromise(zipInfo.archivePath, async (zipFs) => await accept(zipFs, zipInfo)); 12527 } 12528 makeCallSync(p, discard, accept, { requireSubpath = true } = {}) { 12529 if (typeof p !== `string`) 12530 return discard(); 12531 const normalizedP = this.resolve(p); 12532 const zipInfo = this.findZip(normalizedP); 12533 if (!zipInfo) 12534 return discard(); 12535 if (requireSubpath && zipInfo.subPath === `/`) 12536 return discard(); 12537 return this.getZipSync(zipInfo.archivePath, (zipFs) => accept(zipFs, zipInfo)); 12538 } 12539 findZip(p) { 12540 if (this.filter && !this.filter.test(p)) 12541 return null; 12542 let filePath = ``; 12543 while (true) { 12544 const pathPartWithArchive = p.substring(filePath.length); 12545 let archivePart; 12546 if (!this.fileExtensions) { 12547 archivePart = getArchivePart(pathPartWithArchive, `.zip`); 12548 } else { 12549 for (const ext of this.fileExtensions) { 12550 archivePart = getArchivePart(pathPartWithArchive, ext); 12551 if (archivePart) { 12552 break; 12553 } 12554 } 12555 } 12556 if (!archivePart) 12557 return null; 12558 filePath = this.pathUtils.join(filePath, archivePart); 12559 if (this.isZip.has(filePath) === false) { 12560 if (this.notZip.has(filePath)) 12561 continue; 12562 try { 12563 if (!this.baseFs.lstatSync(filePath).isFile()) { 12564 this.notZip.add(filePath); 12565 continue; 12566 } 12567 } catch { 12568 return null; 12569 } 12570 this.isZip.add(filePath); 12571 } 12572 return { 12573 archivePath: filePath, 12574 subPath: this.pathUtils.join(PortablePath.root, p.substring(filePath.length)) 12575 }; 12576 } 12577 } 12578 limitOpenFiles(max) { 12579 if (this.zipInstances === null) 12580 return; 12581 const now = Date.now(); 12582 let nextExpiresAt = now + this.maxAge; 12583 let closeCount = max === null ? 0 : this.zipInstances.size - max; 12584 for (const [path, { zipFs, expiresAt, refCount }] of this.zipInstances.entries()) { 12585 if (refCount !== 0 || zipFs.hasOpenFileHandles()) { 12586 continue; 12587 } else if (now >= expiresAt) { 12588 zipFs.saveAndClose(); 12589 this.zipInstances.delete(path); 12590 closeCount -= 1; 12591 continue; 12592 } else if (max === null || closeCount <= 0) { 12593 nextExpiresAt = expiresAt; 12594 break; 12595 } 12596 zipFs.saveAndClose(); 12597 this.zipInstances.delete(path); 12598 closeCount -= 1; 12599 } 12600 if (this.limitOpenFilesTimeout === null && (max === null && this.zipInstances.size > 0 || max !== null)) { 12601 this.limitOpenFilesTimeout = setTimeout(() => { 12602 this.limitOpenFilesTimeout = null; 12603 this.limitOpenFiles(null); 12604 }, nextExpiresAt - now).unref(); 12605 } 12606 } 12607 async getZipPromise(p, accept) { 12608 const getZipOptions = async () => ({ 12609 baseFs: this.baseFs, 12610 libzip: this.libzip, 12611 readOnly: this.readOnlyArchives, 12612 stats: await this.baseFs.statPromise(p) 12613 }); 12614 if (this.zipInstances) { 12615 let cachedZipFs = this.zipInstances.get(p); 12616 if (!cachedZipFs) { 12617 const zipOptions = await getZipOptions(); 12618 cachedZipFs = this.zipInstances.get(p); 12619 if (!cachedZipFs) { 12620 cachedZipFs = { 12621 zipFs: new ZipFS(p, zipOptions), 12622 expiresAt: 0, 12623 refCount: 0 12624 }; 12625 } 12626 } 12627 this.zipInstances.delete(p); 12628 this.limitOpenFiles(this.maxOpenFiles - 1); 12629 this.zipInstances.set(p, cachedZipFs); 12630 cachedZipFs.expiresAt = Date.now() + this.maxAge; 12631 cachedZipFs.refCount += 1; 12632 try { 12633 return await accept(cachedZipFs.zipFs); 12634 } finally { 12635 cachedZipFs.refCount -= 1; 12636 } 12637 } else { 12638 const zipFs = new ZipFS(p, await getZipOptions()); 12639 try { 12640 return await accept(zipFs); 12641 } finally { 12642 zipFs.saveAndClose(); 12643 } 12644 } 12645 } 12646 getZipSync(p, accept) { 12647 const getZipOptions = () => ({ 12648 baseFs: this.baseFs, 12649 libzip: this.libzip, 12650 readOnly: this.readOnlyArchives, 12651 stats: this.baseFs.statSync(p) 12652 }); 12653 if (this.zipInstances) { 12654 let cachedZipFs = this.zipInstances.get(p); 12655 if (!cachedZipFs) { 12656 cachedZipFs = { 12657 zipFs: new ZipFS(p, getZipOptions()), 12658 expiresAt: 0, 12659 refCount: 0 12660 }; 12661 } 12662 this.zipInstances.delete(p); 12663 this.limitOpenFiles(this.maxOpenFiles - 1); 12664 this.zipInstances.set(p, cachedZipFs); 12665 cachedZipFs.expiresAt = Date.now() + this.maxAge; 12666 return accept(cachedZipFs.zipFs); 12667 } else { 12668 const zipFs = new ZipFS(p, getZipOptions()); 12669 try { 12670 return accept(zipFs); 12671 } finally { 12672 zipFs.saveAndClose(); 12673 } 12674 } 12675 } 12676 } 12677 12678 class NodePathFS extends ProxiedFS { 12679 constructor(baseFs) { 12680 super(npath); 12681 this.baseFs = baseFs; 12682 } 12683 mapFromBase(path) { 12684 return path; 12685 } 12686 mapToBase(path) { 12687 if (typeof path === `string`) 12688 return path; 12689 if (path instanceof url.URL) 12690 return url.fileURLToPath(path); 12691 if (Buffer.isBuffer(path)) { 12692 const str = path.toString(); 12693 if (Buffer.byteLength(str) !== path.byteLength) 12694 throw new Error(`Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942`); 12695 return str; 12696 } 12697 throw new Error(`Unsupported path type: ${nodeUtils.inspect(path)}`); 12698 } 12699 } 12700 12701 var _a, _b, _c, _d; 12702 const kBaseFs = Symbol(`kBaseFs`); 12703 const kFd = Symbol(`kFd`); 12704 const kClosePromise = Symbol(`kClosePromise`); 12705 const kCloseResolve = Symbol(`kCloseResolve`); 12706 const kCloseReject = Symbol(`kCloseReject`); 12707 const kRefs = Symbol(`kRefs`); 12708 const kRef = Symbol(`kRef`); 12709 const kUnref = Symbol(`kUnref`); 12710 class FileHandle { 12711 constructor(fd, baseFs) { 12712 this[_a] = 1; 12713 this[_b] = void 0; 12714 this[_c] = void 0; 12715 this[_d] = void 0; 12716 this[kBaseFs] = baseFs; 12717 this[kFd] = fd; 12718 } 12719 get fd() { 12720 return this[kFd]; 12721 } 12722 async appendFile(data, options) { 12723 var _a2; 12724 try { 12725 this[kRef](this.appendFile); 12726 const encoding = (_a2 = typeof options === `string` ? options : options == null ? void 0 : options.encoding) != null ? _a2 : void 0; 12727 return await this[kBaseFs].appendFilePromise(this.fd, data, encoding ? { encoding } : void 0); 12728 } finally { 12729 this[kUnref](); 12730 } 12731 } 12732 async chown(uid, gid) { 12733 try { 12734 this[kRef](this.chown); 12735 return await this[kBaseFs].fchownPromise(this.fd, uid, gid); 12736 } finally { 12737 this[kUnref](); 12738 } 12739 } 12740 async chmod(mode) { 12741 try { 12742 this[kRef](this.chmod); 12743 return await this[kBaseFs].fchmodPromise(this.fd, mode); 12744 } finally { 12745 this[kUnref](); 12746 } 12747 } 12748 createReadStream(options) { 12749 return this[kBaseFs].createReadStream(null, { ...options, fd: this.fd }); 12750 } 12751 createWriteStream(options) { 12752 return this[kBaseFs].createWriteStream(null, { ...options, fd: this.fd }); 12753 } 12754 datasync() { 12755 throw new Error(`Method not implemented.`); 12756 } 12757 sync() { 12758 throw new Error(`Method not implemented.`); 12759 } 12760 async read(bufferOrOptions, offset, length, position) { 12761 var _a2, _b2, _c2; 12762 try { 12763 this[kRef](this.read); 12764 let buffer; 12765 if (!Buffer.isBuffer(bufferOrOptions)) { 12766 bufferOrOptions != null ? bufferOrOptions : bufferOrOptions = {}; 12767 buffer = (_a2 = bufferOrOptions.buffer) != null ? _a2 : Buffer.alloc(16384); 12768 offset = bufferOrOptions.offset || 0; 12769 length = (_b2 = bufferOrOptions.length) != null ? _b2 : buffer.byteLength; 12770 position = (_c2 = bufferOrOptions.position) != null ? _c2 : null; 12771 } else { 12772 buffer = bufferOrOptions; 12773 } 12774 offset != null ? offset : offset = 0; 12775 length != null ? length : length = 0; 12776 if (length === 0) { 12777 return { 12778 bytesRead: length, 12779 buffer 12780 }; 12781 } 12782 const bytesRead = await this[kBaseFs].readPromise(this.fd, buffer, offset, length, position); 12783 return { 12784 bytesRead, 12785 buffer 12786 }; 12787 } finally { 12788 this[kUnref](); 12789 } 12790 } 12791 async readFile(options) { 12792 var _a2; 12793 try { 12794 this[kRef](this.readFile); 12795 const encoding = (_a2 = typeof options === `string` ? options : options == null ? void 0 : options.encoding) != null ? _a2 : void 0; 12796 return await this[kBaseFs].readFilePromise(this.fd, encoding); 12797 } finally { 12798 this[kUnref](); 12799 } 12800 } 12801 readLines(options) { 12802 return readline.createInterface({ 12803 input: this.createReadStream(options), 12804 crlfDelay: Infinity 12805 }); 12806 } 12807 async stat(opts) { 12808 try { 12809 this[kRef](this.stat); 12810 return await this[kBaseFs].fstatPromise(this.fd, opts); 12811 } finally { 12812 this[kUnref](); 12813 } 12814 } 12815 async truncate(len) { 12816 try { 12817 this[kRef](this.truncate); 12818 return await this[kBaseFs].ftruncatePromise(this.fd, len); 12819 } finally { 12820 this[kUnref](); 12821 } 12822 } 12823 utimes(atime, mtime) { 12824 throw new Error(`Method not implemented.`); 12825 } 12826 async writeFile(data, options) { 12827 var _a2; 12828 try { 12829 this[kRef](this.writeFile); 12830 const encoding = (_a2 = typeof options === `string` ? options : options == null ? void 0 : options.encoding) != null ? _a2 : void 0; 12831 await this[kBaseFs].writeFilePromise(this.fd, data, encoding); 12832 } finally { 12833 this[kUnref](); 12834 } 12835 } 12836 async write(...args) { 12837 try { 12838 this[kRef](this.write); 12839 if (ArrayBuffer.isView(args[0])) { 12840 const [buffer, offset, length, position] = args; 12841 const bytesWritten = await this[kBaseFs].writePromise(this.fd, buffer, offset != null ? offset : void 0, length != null ? length : void 0, position != null ? position : void 0); 12842 return { bytesWritten, buffer }; 12843 } else { 12844 const [data, position, encoding] = args; 12845 const bytesWritten = await this[kBaseFs].writePromise(this.fd, data, position, encoding); 12846 return { bytesWritten, buffer: data }; 12847 } 12848 } finally { 12849 this[kUnref](); 12850 } 12851 } 12852 async writev(buffers, position) { 12853 try { 12854 this[kRef](this.writev); 12855 let bytesWritten = 0; 12856 if (typeof position !== `undefined`) { 12857 for (const buffer of buffers) { 12858 const writeResult = await this.write(buffer, void 0, void 0, position); 12859 bytesWritten += writeResult.bytesWritten; 12860 position += writeResult.bytesWritten; 12861 } 12862 } else { 12863 for (const buffer of buffers) { 12864 const writeResult = await this.write(buffer); 12865 bytesWritten += writeResult.bytesWritten; 12866 } 12867 } 12868 return { 12869 buffers, 12870 bytesWritten 12871 }; 12872 } finally { 12873 this[kUnref](); 12874 } 12875 } 12876 readv(buffers, position) { 12877 throw new Error(`Method not implemented.`); 12878 } 12879 close() { 12880 if (this[kFd] === -1) 12881 return Promise.resolve(); 12882 if (this[kClosePromise]) 12883 return this[kClosePromise]; 12884 this[kRefs]--; 12885 if (this[kRefs] === 0) { 12886 const fd = this[kFd]; 12887 this[kFd] = -1; 12888 this[kClosePromise] = this[kBaseFs].closePromise(fd).finally(() => { 12889 this[kClosePromise] = void 0; 12890 }); 12891 } else { 12892 this[kClosePromise] = new Promise((resolve, reject) => { 12893 this[kCloseResolve] = resolve; 12894 this[kCloseReject] = reject; 12895 }).finally(() => { 12896 this[kClosePromise] = void 0; 12897 this[kCloseReject] = void 0; 12898 this[kCloseResolve] = void 0; 12899 }); 12900 } 12901 return this[kClosePromise]; 12902 } 12903 [(_a = kRefs, _b = kClosePromise, _c = kCloseResolve, _d = kCloseReject, kRef)](caller) { 12904 if (this[kFd] === -1) { 12905 const err = new Error(`file closed`); 12906 err.code = `EBADF`; 12907 err.syscall = caller.name; 12908 throw err; 12909 } 12910 this[kRefs]++; 12911 } 12912 [kUnref]() { 12913 this[kRefs]--; 12914 if (this[kRefs] === 0) { 12915 const fd = this[kFd]; 12916 this[kFd] = -1; 12917 this[kBaseFs].closePromise(fd).then(this[kCloseResolve], this[kCloseReject]); 12918 } 12919 } 12920 } 12921 12922 const SYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ 12923 `accessSync`, 12924 `appendFileSync`, 12925 `createReadStream`, 12926 `createWriteStream`, 12927 `chmodSync`, 12928 `fchmodSync`, 12929 `chownSync`, 12930 `fchownSync`, 12931 `closeSync`, 12932 `copyFileSync`, 12933 `linkSync`, 12934 `lstatSync`, 12935 `fstatSync`, 12936 `lutimesSync`, 12937 `mkdirSync`, 12938 `openSync`, 12939 `opendirSync`, 12940 `readlinkSync`, 12941 `readFileSync`, 12942 `readdirSync`, 12943 `readlinkSync`, 12944 `realpathSync`, 12945 `renameSync`, 12946 `rmdirSync`, 12947 `statSync`, 12948 `symlinkSync`, 12949 `truncateSync`, 12950 `ftruncateSync`, 12951 `unlinkSync`, 12952 `unwatchFile`, 12953 `utimesSync`, 12954 `watch`, 12955 `watchFile`, 12956 `writeFileSync`, 12957 `writeSync` 12958 ]); 12959 const ASYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ 12960 `accessPromise`, 12961 `appendFilePromise`, 12962 `fchmodPromise`, 12963 `chmodPromise`, 12964 `fchownPromise`, 12965 `chownPromise`, 12966 `closePromise`, 12967 `copyFilePromise`, 12968 `linkPromise`, 12969 `fstatPromise`, 12970 `lstatPromise`, 12971 `lutimesPromise`, 12972 `mkdirPromise`, 12973 `openPromise`, 12974 `opendirPromise`, 12975 `readdirPromise`, 12976 `realpathPromise`, 12977 `readFilePromise`, 12978 `readdirPromise`, 12979 `readlinkPromise`, 12980 `renamePromise`, 12981 `rmdirPromise`, 12982 `statPromise`, 12983 `symlinkPromise`, 12984 `truncatePromise`, 12985 `ftruncatePromise`, 12986 `unlinkPromise`, 12987 `utimesPromise`, 12988 `writeFilePromise`, 12989 `writeSync` 12990 ]); 12991 function patchFs(patchedFs, fakeFs) { 12992 fakeFs = new NodePathFS(fakeFs); 12993 const setupFn = (target, name, replacement) => { 12994 const orig = target[name]; 12995 target[name] = replacement; 12996 if (typeof (orig == null ? void 0 : orig[nodeUtils.promisify.custom]) !== `undefined`) { 12997 replacement[nodeUtils.promisify.custom] = orig[nodeUtils.promisify.custom]; 12998 } 12999 }; 13000 { 13001 setupFn(patchedFs, `exists`, (p, ...args) => { 13002 const hasCallback = typeof args[args.length - 1] === `function`; 13003 const callback = hasCallback ? args.pop() : () => { 13004 }; 13005 process.nextTick(() => { 13006 fakeFs.existsPromise(p).then((exists) => { 13007 callback(exists); 13008 }, () => { 13009 callback(false); 13010 }); 13011 }); 13012 }); 13013 setupFn(patchedFs, `read`, (...args) => { 13014 let [fd, buffer, offset, length, position, callback] = args; 13015 if (args.length <= 3) { 13016 let options = {}; 13017 if (args.length < 3) { 13018 callback = args[1]; 13019 } else { 13020 options = args[1]; 13021 callback = args[2]; 13022 } 13023 ({ 13024 buffer = Buffer.alloc(16384), 13025 offset = 0, 13026 length = buffer.byteLength, 13027 position 13028 } = options); 13029 } 13030 if (offset == null) 13031 offset = 0; 13032 length |= 0; 13033 if (length === 0) { 13034 process.nextTick(() => { 13035 callback(null, 0, buffer); 13036 }); 13037 return; 13038 } 13039 if (position == null) 13040 position = -1; 13041 process.nextTick(() => { 13042 fakeFs.readPromise(fd, buffer, offset, length, position).then((bytesRead) => { 13043 callback(null, bytesRead, buffer); 13044 }, (error) => { 13045 callback(error, 0, buffer); 13046 }); 13047 }); 13048 }); 13049 for (const fnName of ASYNC_IMPLEMENTATIONS) { 13050 const origName = fnName.replace(/Promise$/, ``); 13051 if (typeof patchedFs[origName] === `undefined`) 13052 continue; 13053 const fakeImpl = fakeFs[fnName]; 13054 if (typeof fakeImpl === `undefined`) 13055 continue; 13056 const wrapper = (...args) => { 13057 const hasCallback = typeof args[args.length - 1] === `function`; 13058 const callback = hasCallback ? args.pop() : () => { 13059 }; 13060 process.nextTick(() => { 13061 fakeImpl.apply(fakeFs, args).then((result) => { 13062 callback(null, result); 13063 }, (error) => { 13064 callback(error); 13065 }); 13066 }); 13067 }; 13068 setupFn(patchedFs, origName, wrapper); 13069 } 13070 patchedFs.realpath.native = patchedFs.realpath; 13071 } 13072 { 13073 setupFn(patchedFs, `existsSync`, (p) => { 13074 try { 13075 return fakeFs.existsSync(p); 13076 } catch (error) { 13077 return false; 13078 } 13079 }); 13080 setupFn(patchedFs, `readSync`, (...args) => { 13081 let [fd, buffer, offset, length, position] = args; 13082 if (args.length <= 3) { 13083 const options = args[2] || {}; 13084 ({ offset = 0, length = buffer.byteLength, position } = options); 13085 } 13086 if (offset == null) 13087 offset = 0; 13088 length |= 0; 13089 if (length === 0) 13090 return 0; 13091 if (position == null) 13092 position = -1; 13093 return fakeFs.readSync(fd, buffer, offset, length, position); 13094 }); 13095 for (const fnName of SYNC_IMPLEMENTATIONS) { 13096 const origName = fnName; 13097 if (typeof patchedFs[origName] === `undefined`) 13098 continue; 13099 const fakeImpl = fakeFs[fnName]; 13100 if (typeof fakeImpl === `undefined`) 13101 continue; 13102 setupFn(patchedFs, origName, fakeImpl.bind(fakeFs)); 13103 } 13104 patchedFs.realpathSync.native = patchedFs.realpathSync; 13105 } 13106 { 13107 const origEmitWarning = process.emitWarning; 13108 process.emitWarning = () => { 13109 }; 13110 let patchedFsPromises; 13111 try { 13112 patchedFsPromises = patchedFs.promises; 13113 } finally { 13114 process.emitWarning = origEmitWarning; 13115 } 13116 if (typeof patchedFsPromises !== `undefined`) { 13117 for (const fnName of ASYNC_IMPLEMENTATIONS) { 13118 const origName = fnName.replace(/Promise$/, ``); 13119 if (typeof patchedFsPromises[origName] === `undefined`) 13120 continue; 13121 const fakeImpl = fakeFs[fnName]; 13122 if (typeof fakeImpl === `undefined`) 13123 continue; 13124 if (fnName === `open`) 13125 continue; 13126 setupFn(patchedFsPromises, origName, (pathLike, ...args) => { 13127 if (pathLike instanceof FileHandle) { 13128 return pathLike[origName].apply(pathLike, args); 13129 } else { 13130 return fakeImpl.call(fakeFs, pathLike, ...args); 13131 } 13132 }); 13133 } 13134 setupFn(patchedFsPromises, `open`, async (...args) => { 13135 const fd = await fakeFs.openPromise(...args); 13136 return new FileHandle(fd, fakeFs); 13137 }); 13138 } 13139 } 13140 { 13141 patchedFs.read[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { 13142 const res = fakeFs.readPromise(fd, buffer, ...args); 13143 return { bytesRead: await res, buffer }; 13144 }; 13145 patchedFs.write[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { 13146 const res = fakeFs.writePromise(fd, buffer, ...args); 13147 return { bytesWritten: await res, buffer }; 13148 }; 13149 } 13150 } 13151 13152 var libzipSync = {exports: {}}; 13153 13154 (function (module, exports) { 13155 var frozenFs = Object.assign({}, fs__default.default); 13156 var createModule = function() { 13157 var _scriptDir = void 0; 13158 if (typeof __filename !== "undefined") 13159 _scriptDir = _scriptDir || __filename; 13160 return function(createModule2) { 13161 createModule2 = createModule2 || {}; 13162 var Module = typeof createModule2 !== "undefined" ? createModule2 : {}; 13163 var readyPromiseResolve, readyPromiseReject; 13164 Module["ready"] = new Promise(function(resolve, reject) { 13165 readyPromiseResolve = resolve; 13166 readyPromiseReject = reject; 13167 }); 13168 var moduleOverrides = {}; 13169 var key; 13170 for (key in Module) { 13171 if (Module.hasOwnProperty(key)) { 13172 moduleOverrides[key] = Module[key]; 13173 } 13174 } 13175 var scriptDirectory = ""; 13176 function locateFile(path) { 13177 if (Module["locateFile"]) { 13178 return Module["locateFile"](path, scriptDirectory); 13179 } 13180 return scriptDirectory + path; 13181 } 13182 var read_, readBinary; 13183 var nodeFS; 13184 var nodePath; 13185 { 13186 { 13187 scriptDirectory = __dirname + "/"; 13188 } 13189 read_ = function shell_read(filename, binary) { 13190 var ret = tryParseAsDataURI(filename); 13191 if (ret) { 13192 return binary ? ret : ret.toString(); 13193 } 13194 if (!nodeFS) 13195 nodeFS = frozenFs; 13196 if (!nodePath) 13197 nodePath = path__default.default; 13198 filename = nodePath["normalize"](filename); 13199 return nodeFS["readFileSync"](filename, binary ? null : "utf8"); 13200 }; 13201 readBinary = function readBinary2(filename) { 13202 var ret = read_(filename, true); 13203 if (!ret.buffer) { 13204 ret = new Uint8Array(ret); 13205 } 13206 assert(ret.buffer); 13207 return ret; 13208 }; 13209 if (process["argv"].length > 1) { 13210 process["argv"][1].replace(/\\/g, "/"); 13211 } 13212 process["argv"].slice(2); 13213 Module["inspect"] = function() { 13214 return "[Emscripten Module object]"; 13215 }; 13216 } 13217 var out = Module["print"] || console.log.bind(console); 13218 var err = Module["printErr"] || console.warn.bind(console); 13219 for (key in moduleOverrides) { 13220 if (moduleOverrides.hasOwnProperty(key)) { 13221 Module[key] = moduleOverrides[key]; 13222 } 13223 } 13224 moduleOverrides = null; 13225 if (Module["arguments"]) 13226 ; 13227 if (Module["thisProgram"]) 13228 ; 13229 if (Module["quit"]) 13230 ; 13231 var STACK_ALIGN = 16; 13232 function alignMemory(size, factor) { 13233 if (!factor) 13234 factor = STACK_ALIGN; 13235 return Math.ceil(size / factor) * factor; 13236 } 13237 var wasmBinary; 13238 if (Module["wasmBinary"]) 13239 wasmBinary = Module["wasmBinary"]; 13240 Module["noExitRuntime"] || true; 13241 if (typeof WebAssembly !== "object") { 13242 abort("no native wasm support detected"); 13243 } 13244 function getValue(ptr, type, noSafe) { 13245 type = type || "i8"; 13246 if (type.charAt(type.length - 1) === "*") 13247 type = "i32"; 13248 switch (type) { 13249 case "i1": 13250 return HEAP8[ptr >> 0]; 13251 case "i8": 13252 return HEAP8[ptr >> 0]; 13253 case "i16": 13254 return HEAP16[ptr >> 1]; 13255 case "i32": 13256 return HEAP32[ptr >> 2]; 13257 case "i64": 13258 return HEAP32[ptr >> 2]; 13259 case "float": 13260 return HEAPF32[ptr >> 2]; 13261 case "double": 13262 return HEAPF64[ptr >> 3]; 13263 default: 13264 abort("invalid type for getValue: " + type); 13265 } 13266 return null; 13267 } 13268 var wasmMemory; 13269 var ABORT = false; 13270 function assert(condition, text) { 13271 if (!condition) { 13272 abort("Assertion failed: " + text); 13273 } 13274 } 13275 function getCFunc(ident) { 13276 var func = Module["_" + ident]; 13277 assert( 13278 func, 13279 "Cannot call unknown function " + ident + ", make sure it is exported" 13280 ); 13281 return func; 13282 } 13283 function ccall(ident, returnType, argTypes, args, opts) { 13284 var toC = { 13285 string: function(str) { 13286 var ret2 = 0; 13287 if (str !== null && str !== void 0 && str !== 0) { 13288 var len = (str.length << 2) + 1; 13289 ret2 = stackAlloc(len); 13290 stringToUTF8(str, ret2, len); 13291 } 13292 return ret2; 13293 }, 13294 array: function(arr) { 13295 var ret2 = stackAlloc(arr.length); 13296 writeArrayToMemory(arr, ret2); 13297 return ret2; 13298 } 13299 }; 13300 function convertReturnValue(ret2) { 13301 if (returnType === "string") 13302 return UTF8ToString(ret2); 13303 if (returnType === "boolean") 13304 return Boolean(ret2); 13305 return ret2; 13306 } 13307 var func = getCFunc(ident); 13308 var cArgs = []; 13309 var stack = 0; 13310 if (args) { 13311 for (var i = 0; i < args.length; i++) { 13312 var converter = toC[argTypes[i]]; 13313 if (converter) { 13314 if (stack === 0) 13315 stack = stackSave(); 13316 cArgs[i] = converter(args[i]); 13317 } else { 13318 cArgs[i] = args[i]; 13319 } 13320 } 13321 } 13322 var ret = func.apply(null, cArgs); 13323 ret = convertReturnValue(ret); 13324 if (stack !== 0) 13325 stackRestore(stack); 13326 return ret; 13327 } 13328 function cwrap(ident, returnType, argTypes, opts) { 13329 argTypes = argTypes || []; 13330 var numericArgs = argTypes.every(function(type) { 13331 return type === "number"; 13332 }); 13333 var numericRet = returnType !== "string"; 13334 if (numericRet && numericArgs && !opts) { 13335 return getCFunc(ident); 13336 } 13337 return function() { 13338 return ccall(ident, returnType, argTypes, arguments); 13339 }; 13340 } 13341 var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : void 0; 13342 function UTF8ArrayToString(heap, idx, maxBytesToRead) { 13343 var endIdx = idx + maxBytesToRead; 13344 var endPtr = idx; 13345 while (heap[endPtr] && !(endPtr >= endIdx)) 13346 ++endPtr; 13347 if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) { 13348 return UTF8Decoder.decode(heap.subarray(idx, endPtr)); 13349 } else { 13350 var str = ""; 13351 while (idx < endPtr) { 13352 var u0 = heap[idx++]; 13353 if (!(u0 & 128)) { 13354 str += String.fromCharCode(u0); 13355 continue; 13356 } 13357 var u1 = heap[idx++] & 63; 13358 if ((u0 & 224) == 192) { 13359 str += String.fromCharCode((u0 & 31) << 6 | u1); 13360 continue; 13361 } 13362 var u2 = heap[idx++] & 63; 13363 if ((u0 & 240) == 224) { 13364 u0 = (u0 & 15) << 12 | u1 << 6 | u2; 13365 } else { 13366 u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heap[idx++] & 63; 13367 } 13368 if (u0 < 65536) { 13369 str += String.fromCharCode(u0); 13370 } else { 13371 var ch = u0 - 65536; 13372 str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); 13373 } 13374 } 13375 } 13376 return str; 13377 } 13378 function UTF8ToString(ptr, maxBytesToRead) { 13379 return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; 13380 } 13381 function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { 13382 if (!(maxBytesToWrite > 0)) 13383 return 0; 13384 var startIdx = outIdx; 13385 var endIdx = outIdx + maxBytesToWrite - 1; 13386 for (var i = 0; i < str.length; ++i) { 13387 var u = str.charCodeAt(i); 13388 if (u >= 55296 && u <= 57343) { 13389 var u1 = str.charCodeAt(++i); 13390 u = 65536 + ((u & 1023) << 10) | u1 & 1023; 13391 } 13392 if (u <= 127) { 13393 if (outIdx >= endIdx) 13394 break; 13395 heap[outIdx++] = u; 13396 } else if (u <= 2047) { 13397 if (outIdx + 1 >= endIdx) 13398 break; 13399 heap[outIdx++] = 192 | u >> 6; 13400 heap[outIdx++] = 128 | u & 63; 13401 } else if (u <= 65535) { 13402 if (outIdx + 2 >= endIdx) 13403 break; 13404 heap[outIdx++] = 224 | u >> 12; 13405 heap[outIdx++] = 128 | u >> 6 & 63; 13406 heap[outIdx++] = 128 | u & 63; 13407 } else { 13408 if (outIdx + 3 >= endIdx) 13409 break; 13410 heap[outIdx++] = 240 | u >> 18; 13411 heap[outIdx++] = 128 | u >> 12 & 63; 13412 heap[outIdx++] = 128 | u >> 6 & 63; 13413 heap[outIdx++] = 128 | u & 63; 13414 } 13415 } 13416 heap[outIdx] = 0; 13417 return outIdx - startIdx; 13418 } 13419 function stringToUTF8(str, outPtr, maxBytesToWrite) { 13420 return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); 13421 } 13422 function lengthBytesUTF8(str) { 13423 var len = 0; 13424 for (var i = 0; i < str.length; ++i) { 13425 var u = str.charCodeAt(i); 13426 if (u >= 55296 && u <= 57343) 13427 u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; 13428 if (u <= 127) 13429 ++len; 13430 else if (u <= 2047) 13431 len += 2; 13432 else if (u <= 65535) 13433 len += 3; 13434 else 13435 len += 4; 13436 } 13437 return len; 13438 } 13439 function allocateUTF8(str) { 13440 var size = lengthBytesUTF8(str) + 1; 13441 var ret = _malloc(size); 13442 if (ret) 13443 stringToUTF8Array(str, HEAP8, ret, size); 13444 return ret; 13445 } 13446 function writeArrayToMemory(array, buffer2) { 13447 HEAP8.set(array, buffer2); 13448 } 13449 function alignUp(x, multiple) { 13450 if (x % multiple > 0) { 13451 x += multiple - x % multiple; 13452 } 13453 return x; 13454 } 13455 var buffer, HEAP8, HEAPU8, HEAP16, HEAP32, HEAPF32, HEAPF64; 13456 function updateGlobalBufferAndViews(buf) { 13457 buffer = buf; 13458 Module["HEAP8"] = HEAP8 = new Int8Array(buf); 13459 Module["HEAP16"] = HEAP16 = new Int16Array(buf); 13460 Module["HEAP32"] = HEAP32 = new Int32Array(buf); 13461 Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); 13462 Module["HEAPU16"] = new Uint16Array(buf); 13463 Module["HEAPU32"] = new Uint32Array(buf); 13464 Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); 13465 Module["HEAPF64"] = HEAPF64 = new Float64Array(buf); 13466 } 13467 Module["INITIAL_MEMORY"] || 16777216; 13468 var wasmTable; 13469 var __ATPRERUN__ = []; 13470 var __ATINIT__ = []; 13471 var __ATPOSTRUN__ = []; 13472 function preRun() { 13473 if (Module["preRun"]) { 13474 if (typeof Module["preRun"] == "function") 13475 Module["preRun"] = [Module["preRun"]]; 13476 while (Module["preRun"].length) { 13477 addOnPreRun(Module["preRun"].shift()); 13478 } 13479 } 13480 callRuntimeCallbacks(__ATPRERUN__); 13481 } 13482 function initRuntime() { 13483 if (!Module["noFSInit"] && !FS.init.initialized) 13484 FS.init(); 13485 callRuntimeCallbacks(__ATINIT__); 13486 } 13487 function postRun() { 13488 if (Module["postRun"]) { 13489 if (typeof Module["postRun"] == "function") 13490 Module["postRun"] = [Module["postRun"]]; 13491 while (Module["postRun"].length) { 13492 addOnPostRun(Module["postRun"].shift()); 13493 } 13494 } 13495 callRuntimeCallbacks(__ATPOSTRUN__); 13496 } 13497 function addOnPreRun(cb) { 13498 __ATPRERUN__.unshift(cb); 13499 } 13500 function addOnInit(cb) { 13501 __ATINIT__.unshift(cb); 13502 } 13503 function addOnPostRun(cb) { 13504 __ATPOSTRUN__.unshift(cb); 13505 } 13506 var runDependencies = 0; 13507 var dependenciesFulfilled = null; 13508 function addRunDependency(id) { 13509 runDependencies++; 13510 if (Module["monitorRunDependencies"]) { 13511 Module["monitorRunDependencies"](runDependencies); 13512 } 13513 } 13514 function removeRunDependency(id) { 13515 runDependencies--; 13516 if (Module["monitorRunDependencies"]) { 13517 Module["monitorRunDependencies"](runDependencies); 13518 } 13519 if (runDependencies == 0) { 13520 if (dependenciesFulfilled) { 13521 var callback = dependenciesFulfilled; 13522 dependenciesFulfilled = null; 13523 callback(); 13524 } 13525 } 13526 } 13527 Module["preloadedImages"] = {}; 13528 Module["preloadedAudios"] = {}; 13529 function abort(what) { 13530 if (Module["onAbort"]) { 13531 Module["onAbort"](what); 13532 } 13533 what += ""; 13534 err(what); 13535 ABORT = true; 13536 what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; 13537 var e = new WebAssembly.RuntimeError(what); 13538 readyPromiseReject(e); 13539 throw e; 13540 } 13541 var dataURIPrefix = "data:application/octet-stream;base64,"; 13542 function isDataURI(filename) { 13543 return filename.startsWith(dataURIPrefix); 13544 } 13545 var wasmBinaryFile = "data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8="; 13546 if (!isDataURI(wasmBinaryFile)) { 13547 wasmBinaryFile = locateFile(wasmBinaryFile); 13548 } 13549 function getBinary(file) { 13550 try { 13551 if (file == wasmBinaryFile && wasmBinary) { 13552 return new Uint8Array(wasmBinary); 13553 } 13554 var binary = tryParseAsDataURI(file); 13555 if (binary) { 13556 return binary; 13557 } 13558 if (readBinary) { 13559 return readBinary(file); 13560 } else { 13561 throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; 13562 } 13563 } catch (err2) { 13564 abort(err2); 13565 } 13566 } 13567 function instantiateSync(file, info) { 13568 var instance; 13569 var module2; 13570 var binary; 13571 try { 13572 binary = getBinary(file); 13573 module2 = new WebAssembly.Module(binary); 13574 instance = new WebAssembly.Instance(module2, info); 13575 } catch (e) { 13576 var str = e.toString(); 13577 err("failed to compile wasm module: " + str); 13578 if (str.includes("imported Memory") || str.includes("memory import")) { 13579 err( 13580 "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)." 13581 ); 13582 } 13583 throw e; 13584 } 13585 return [instance, module2]; 13586 } 13587 function createWasm() { 13588 var info = { a: asmLibraryArg }; 13589 function receiveInstance(instance, module2) { 13590 var exports3 = instance.exports; 13591 Module["asm"] = exports3; 13592 wasmMemory = Module["asm"]["u"]; 13593 updateGlobalBufferAndViews(wasmMemory.buffer); 13594 wasmTable = Module["asm"]["pa"]; 13595 addOnInit(Module["asm"]["v"]); 13596 removeRunDependency(); 13597 } 13598 addRunDependency(); 13599 if (Module["instantiateWasm"]) { 13600 try { 13601 var exports2 = Module["instantiateWasm"](info, receiveInstance); 13602 return exports2; 13603 } catch (e) { 13604 err("Module.instantiateWasm callback failed with error: " + e); 13605 return false; 13606 } 13607 } 13608 var result = instantiateSync(wasmBinaryFile, info); 13609 receiveInstance(result[0]); 13610 return Module["asm"]; 13611 } 13612 var tempDouble; 13613 var tempI64; 13614 function callRuntimeCallbacks(callbacks) { 13615 while (callbacks.length > 0) { 13616 var callback = callbacks.shift(); 13617 if (typeof callback == "function") { 13618 callback(Module); 13619 continue; 13620 } 13621 var func = callback.func; 13622 if (typeof func === "number") { 13623 if (callback.arg === void 0) { 13624 wasmTable.get(func)(); 13625 } else { 13626 wasmTable.get(func)(callback.arg); 13627 } 13628 } else { 13629 func(callback.arg === void 0 ? null : callback.arg); 13630 } 13631 } 13632 } 13633 function _gmtime_r(time, tmPtr) { 13634 var date = new Date(HEAP32[time >> 2] * 1e3); 13635 HEAP32[tmPtr >> 2] = date.getUTCSeconds(); 13636 HEAP32[tmPtr + 4 >> 2] = date.getUTCMinutes(); 13637 HEAP32[tmPtr + 8 >> 2] = date.getUTCHours(); 13638 HEAP32[tmPtr + 12 >> 2] = date.getUTCDate(); 13639 HEAP32[tmPtr + 16 >> 2] = date.getUTCMonth(); 13640 HEAP32[tmPtr + 20 >> 2] = date.getUTCFullYear() - 1900; 13641 HEAP32[tmPtr + 24 >> 2] = date.getUTCDay(); 13642 HEAP32[tmPtr + 36 >> 2] = 0; 13643 HEAP32[tmPtr + 32 >> 2] = 0; 13644 var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); 13645 var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; 13646 HEAP32[tmPtr + 28 >> 2] = yday; 13647 if (!_gmtime_r.GMTString) 13648 _gmtime_r.GMTString = allocateUTF8("GMT"); 13649 HEAP32[tmPtr + 40 >> 2] = _gmtime_r.GMTString; 13650 return tmPtr; 13651 } 13652 function ___gmtime_r(a0, a1) { 13653 return _gmtime_r(a0, a1); 13654 } 13655 var PATH = { 13656 splitPath: function(filename) { 13657 var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; 13658 return splitPathRe.exec(filename).slice(1); 13659 }, 13660 normalizeArray: function(parts, allowAboveRoot) { 13661 var up = 0; 13662 for (var i = parts.length - 1; i >= 0; i--) { 13663 var last = parts[i]; 13664 if (last === ".") { 13665 parts.splice(i, 1); 13666 } else if (last === "..") { 13667 parts.splice(i, 1); 13668 up++; 13669 } else if (up) { 13670 parts.splice(i, 1); 13671 up--; 13672 } 13673 } 13674 if (allowAboveRoot) { 13675 for (; up; up--) { 13676 parts.unshift(".."); 13677 } 13678 } 13679 return parts; 13680 }, 13681 normalize: function(path) { 13682 var isAbsolute = path.charAt(0) === "/", trailingSlash = path.substr(-1) === "/"; 13683 path = PATH.normalizeArray( 13684 path.split("/").filter(function(p) { 13685 return !!p; 13686 }), 13687 !isAbsolute 13688 ).join("/"); 13689 if (!path && !isAbsolute) { 13690 path = "."; 13691 } 13692 if (path && trailingSlash) { 13693 path += "/"; 13694 } 13695 return (isAbsolute ? "/" : "") + path; 13696 }, 13697 dirname: function(path) { 13698 var result = PATH.splitPath(path), root = result[0], dir = result[1]; 13699 if (!root && !dir) { 13700 return "."; 13701 } 13702 if (dir) { 13703 dir = dir.substr(0, dir.length - 1); 13704 } 13705 return root + dir; 13706 }, 13707 basename: function(path) { 13708 if (path === "/") 13709 return "/"; 13710 path = PATH.normalize(path); 13711 path = path.replace(/\/$/, ""); 13712 var lastSlash = path.lastIndexOf("/"); 13713 if (lastSlash === -1) 13714 return path; 13715 return path.substr(lastSlash + 1); 13716 }, 13717 extname: function(path) { 13718 return PATH.splitPath(path)[3]; 13719 }, 13720 join: function() { 13721 var paths = Array.prototype.slice.call(arguments, 0); 13722 return PATH.normalize(paths.join("/")); 13723 }, 13724 join2: function(l, r) { 13725 return PATH.normalize(l + "/" + r); 13726 } 13727 }; 13728 function getRandomDevice() { 13729 { 13730 try { 13731 var crypto_module = require("crypto"); 13732 return function() { 13733 return crypto_module["randomBytes"](1)[0]; 13734 }; 13735 } catch (e) { 13736 } 13737 } 13738 return function() { 13739 abort("randomDevice"); 13740 }; 13741 } 13742 var PATH_FS = { 13743 resolve: function() { 13744 var resolvedPath = "", resolvedAbsolute = false; 13745 for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { 13746 var path = i >= 0 ? arguments[i] : FS.cwd(); 13747 if (typeof path !== "string") { 13748 throw new TypeError("Arguments to path.resolve must be strings"); 13749 } else if (!path) { 13750 return ""; 13751 } 13752 resolvedPath = path + "/" + resolvedPath; 13753 resolvedAbsolute = path.charAt(0) === "/"; 13754 } 13755 resolvedPath = PATH.normalizeArray( 13756 resolvedPath.split("/").filter(function(p) { 13757 return !!p; 13758 }), 13759 !resolvedAbsolute 13760 ).join("/"); 13761 return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; 13762 }, 13763 relative: function(from, to) { 13764 from = PATH_FS.resolve(from).substr(1); 13765 to = PATH_FS.resolve(to).substr(1); 13766 function trim(arr) { 13767 var start = 0; 13768 for (; start < arr.length; start++) { 13769 if (arr[start] !== "") 13770 break; 13771 } 13772 var end = arr.length - 1; 13773 for (; end >= 0; end--) { 13774 if (arr[end] !== "") 13775 break; 13776 } 13777 if (start > end) 13778 return []; 13779 return arr.slice(start, end - start + 1); 13780 } 13781 var fromParts = trim(from.split("/")); 13782 var toParts = trim(to.split("/")); 13783 var length = Math.min(fromParts.length, toParts.length); 13784 var samePartsLength = length; 13785 for (var i = 0; i < length; i++) { 13786 if (fromParts[i] !== toParts[i]) { 13787 samePartsLength = i; 13788 break; 13789 } 13790 } 13791 var outputParts = []; 13792 for (var i = samePartsLength; i < fromParts.length; i++) { 13793 outputParts.push(".."); 13794 } 13795 outputParts = outputParts.concat(toParts.slice(samePartsLength)); 13796 return outputParts.join("/"); 13797 } 13798 }; 13799 var TTY = { 13800 ttys: [], 13801 init: function() { 13802 }, 13803 shutdown: function() { 13804 }, 13805 register: function(dev, ops) { 13806 TTY.ttys[dev] = { input: [], output: [], ops }; 13807 FS.registerDevice(dev, TTY.stream_ops); 13808 }, 13809 stream_ops: { 13810 open: function(stream) { 13811 var tty = TTY.ttys[stream.node.rdev]; 13812 if (!tty) { 13813 throw new FS.ErrnoError(43); 13814 } 13815 stream.tty = tty; 13816 stream.seekable = false; 13817 }, 13818 close: function(stream) { 13819 stream.tty.ops.flush(stream.tty); 13820 }, 13821 flush: function(stream) { 13822 stream.tty.ops.flush(stream.tty); 13823 }, 13824 read: function(stream, buffer2, offset, length, pos) { 13825 if (!stream.tty || !stream.tty.ops.get_char) { 13826 throw new FS.ErrnoError(60); 13827 } 13828 var bytesRead = 0; 13829 for (var i = 0; i < length; i++) { 13830 var result; 13831 try { 13832 result = stream.tty.ops.get_char(stream.tty); 13833 } catch (e) { 13834 throw new FS.ErrnoError(29); 13835 } 13836 if (result === void 0 && bytesRead === 0) { 13837 throw new FS.ErrnoError(6); 13838 } 13839 if (result === null || result === void 0) 13840 break; 13841 bytesRead++; 13842 buffer2[offset + i] = result; 13843 } 13844 if (bytesRead) { 13845 stream.node.timestamp = Date.now(); 13846 } 13847 return bytesRead; 13848 }, 13849 write: function(stream, buffer2, offset, length, pos) { 13850 if (!stream.tty || !stream.tty.ops.put_char) { 13851 throw new FS.ErrnoError(60); 13852 } 13853 try { 13854 for (var i = 0; i < length; i++) { 13855 stream.tty.ops.put_char(stream.tty, buffer2[offset + i]); 13856 } 13857 } catch (e) { 13858 throw new FS.ErrnoError(29); 13859 } 13860 if (length) { 13861 stream.node.timestamp = Date.now(); 13862 } 13863 return i; 13864 } 13865 }, 13866 default_tty_ops: { 13867 get_char: function(tty) { 13868 if (!tty.input.length) { 13869 var result = null; 13870 { 13871 var BUFSIZE = 256; 13872 var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE); 13873 var bytesRead = 0; 13874 try { 13875 bytesRead = nodeFS.readSync( 13876 process.stdin.fd, 13877 buf, 13878 0, 13879 BUFSIZE, 13880 null 13881 ); 13882 } catch (e) { 13883 if (e.toString().includes("EOF")) 13884 bytesRead = 0; 13885 else 13886 throw e; 13887 } 13888 if (bytesRead > 0) { 13889 result = buf.slice(0, bytesRead).toString("utf-8"); 13890 } else { 13891 result = null; 13892 } 13893 } 13894 if (!result) { 13895 return null; 13896 } 13897 tty.input = intArrayFromString(result, true); 13898 } 13899 return tty.input.shift(); 13900 }, 13901 put_char: function(tty, val) { 13902 if (val === null || val === 10) { 13903 out(UTF8ArrayToString(tty.output, 0)); 13904 tty.output = []; 13905 } else { 13906 if (val != 0) 13907 tty.output.push(val); 13908 } 13909 }, 13910 flush: function(tty) { 13911 if (tty.output && tty.output.length > 0) { 13912 out(UTF8ArrayToString(tty.output, 0)); 13913 tty.output = []; 13914 } 13915 } 13916 }, 13917 default_tty1_ops: { 13918 put_char: function(tty, val) { 13919 if (val === null || val === 10) { 13920 err(UTF8ArrayToString(tty.output, 0)); 13921 tty.output = []; 13922 } else { 13923 if (val != 0) 13924 tty.output.push(val); 13925 } 13926 }, 13927 flush: function(tty) { 13928 if (tty.output && tty.output.length > 0) { 13929 err(UTF8ArrayToString(tty.output, 0)); 13930 tty.output = []; 13931 } 13932 } 13933 } 13934 }; 13935 function mmapAlloc(size) { 13936 var alignedSize = alignMemory(size, 65536); 13937 var ptr = _malloc(alignedSize); 13938 while (size < alignedSize) 13939 HEAP8[ptr + size++] = 0; 13940 return ptr; 13941 } 13942 var MEMFS = { 13943 ops_table: null, 13944 mount: function(mount) { 13945 return MEMFS.createNode(null, "/", 16384 | 511, 0); 13946 }, 13947 createNode: function(parent, name, mode, dev) { 13948 if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { 13949 throw new FS.ErrnoError(63); 13950 } 13951 if (!MEMFS.ops_table) { 13952 MEMFS.ops_table = { 13953 dir: { 13954 node: { 13955 getattr: MEMFS.node_ops.getattr, 13956 setattr: MEMFS.node_ops.setattr, 13957 lookup: MEMFS.node_ops.lookup, 13958 mknod: MEMFS.node_ops.mknod, 13959 rename: MEMFS.node_ops.rename, 13960 unlink: MEMFS.node_ops.unlink, 13961 rmdir: MEMFS.node_ops.rmdir, 13962 readdir: MEMFS.node_ops.readdir, 13963 symlink: MEMFS.node_ops.symlink 13964 }, 13965 stream: { llseek: MEMFS.stream_ops.llseek } 13966 }, 13967 file: { 13968 node: { 13969 getattr: MEMFS.node_ops.getattr, 13970 setattr: MEMFS.node_ops.setattr 13971 }, 13972 stream: { 13973 llseek: MEMFS.stream_ops.llseek, 13974 read: MEMFS.stream_ops.read, 13975 write: MEMFS.stream_ops.write, 13976 allocate: MEMFS.stream_ops.allocate, 13977 mmap: MEMFS.stream_ops.mmap, 13978 msync: MEMFS.stream_ops.msync 13979 } 13980 }, 13981 link: { 13982 node: { 13983 getattr: MEMFS.node_ops.getattr, 13984 setattr: MEMFS.node_ops.setattr, 13985 readlink: MEMFS.node_ops.readlink 13986 }, 13987 stream: {} 13988 }, 13989 chrdev: { 13990 node: { 13991 getattr: MEMFS.node_ops.getattr, 13992 setattr: MEMFS.node_ops.setattr 13993 }, 13994 stream: FS.chrdev_stream_ops 13995 } 13996 }; 13997 } 13998 var node = FS.createNode(parent, name, mode, dev); 13999 if (FS.isDir(node.mode)) { 14000 node.node_ops = MEMFS.ops_table.dir.node; 14001 node.stream_ops = MEMFS.ops_table.dir.stream; 14002 node.contents = {}; 14003 } else if (FS.isFile(node.mode)) { 14004 node.node_ops = MEMFS.ops_table.file.node; 14005 node.stream_ops = MEMFS.ops_table.file.stream; 14006 node.usedBytes = 0; 14007 node.contents = null; 14008 } else if (FS.isLink(node.mode)) { 14009 node.node_ops = MEMFS.ops_table.link.node; 14010 node.stream_ops = MEMFS.ops_table.link.stream; 14011 } else if (FS.isChrdev(node.mode)) { 14012 node.node_ops = MEMFS.ops_table.chrdev.node; 14013 node.stream_ops = MEMFS.ops_table.chrdev.stream; 14014 } 14015 node.timestamp = Date.now(); 14016 if (parent) { 14017 parent.contents[name] = node; 14018 parent.timestamp = node.timestamp; 14019 } 14020 return node; 14021 }, 14022 getFileDataAsTypedArray: function(node) { 14023 if (!node.contents) 14024 return new Uint8Array(0); 14025 if (node.contents.subarray) 14026 return node.contents.subarray(0, node.usedBytes); 14027 return new Uint8Array(node.contents); 14028 }, 14029 expandFileStorage: function(node, newCapacity) { 14030 var prevCapacity = node.contents ? node.contents.length : 0; 14031 if (prevCapacity >= newCapacity) 14032 return; 14033 var CAPACITY_DOUBLING_MAX = 1024 * 1024; 14034 newCapacity = Math.max( 14035 newCapacity, 14036 prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0 14037 ); 14038 if (prevCapacity != 0) 14039 newCapacity = Math.max(newCapacity, 256); 14040 var oldContents = node.contents; 14041 node.contents = new Uint8Array(newCapacity); 14042 if (node.usedBytes > 0) 14043 node.contents.set(oldContents.subarray(0, node.usedBytes), 0); 14044 }, 14045 resizeFileStorage: function(node, newSize) { 14046 if (node.usedBytes == newSize) 14047 return; 14048 if (newSize == 0) { 14049 node.contents = null; 14050 node.usedBytes = 0; 14051 } else { 14052 var oldContents = node.contents; 14053 node.contents = new Uint8Array(newSize); 14054 if (oldContents) { 14055 node.contents.set( 14056 oldContents.subarray(0, Math.min(newSize, node.usedBytes)) 14057 ); 14058 } 14059 node.usedBytes = newSize; 14060 } 14061 }, 14062 node_ops: { 14063 getattr: function(node) { 14064 var attr = {}; 14065 attr.dev = FS.isChrdev(node.mode) ? node.id : 1; 14066 attr.ino = node.id; 14067 attr.mode = node.mode; 14068 attr.nlink = 1; 14069 attr.uid = 0; 14070 attr.gid = 0; 14071 attr.rdev = node.rdev; 14072 if (FS.isDir(node.mode)) { 14073 attr.size = 4096; 14074 } else if (FS.isFile(node.mode)) { 14075 attr.size = node.usedBytes; 14076 } else if (FS.isLink(node.mode)) { 14077 attr.size = node.link.length; 14078 } else { 14079 attr.size = 0; 14080 } 14081 attr.atime = new Date(node.timestamp); 14082 attr.mtime = new Date(node.timestamp); 14083 attr.ctime = new Date(node.timestamp); 14084 attr.blksize = 4096; 14085 attr.blocks = Math.ceil(attr.size / attr.blksize); 14086 return attr; 14087 }, 14088 setattr: function(node, attr) { 14089 if (attr.mode !== void 0) { 14090 node.mode = attr.mode; 14091 } 14092 if (attr.timestamp !== void 0) { 14093 node.timestamp = attr.timestamp; 14094 } 14095 if (attr.size !== void 0) { 14096 MEMFS.resizeFileStorage(node, attr.size); 14097 } 14098 }, 14099 lookup: function(parent, name) { 14100 throw FS.genericErrors[44]; 14101 }, 14102 mknod: function(parent, name, mode, dev) { 14103 return MEMFS.createNode(parent, name, mode, dev); 14104 }, 14105 rename: function(old_node, new_dir, new_name) { 14106 if (FS.isDir(old_node.mode)) { 14107 var new_node; 14108 try { 14109 new_node = FS.lookupNode(new_dir, new_name); 14110 } catch (e) { 14111 } 14112 if (new_node) { 14113 for (var i in new_node.contents) { 14114 throw new FS.ErrnoError(55); 14115 } 14116 } 14117 } 14118 delete old_node.parent.contents[old_node.name]; 14119 old_node.parent.timestamp = Date.now(); 14120 old_node.name = new_name; 14121 new_dir.contents[new_name] = old_node; 14122 new_dir.timestamp = old_node.parent.timestamp; 14123 old_node.parent = new_dir; 14124 }, 14125 unlink: function(parent, name) { 14126 delete parent.contents[name]; 14127 parent.timestamp = Date.now(); 14128 }, 14129 rmdir: function(parent, name) { 14130 var node = FS.lookupNode(parent, name); 14131 for (var i in node.contents) { 14132 throw new FS.ErrnoError(55); 14133 } 14134 delete parent.contents[name]; 14135 parent.timestamp = Date.now(); 14136 }, 14137 readdir: function(node) { 14138 var entries = [".", ".."]; 14139 for (var key2 in node.contents) { 14140 if (!node.contents.hasOwnProperty(key2)) { 14141 continue; 14142 } 14143 entries.push(key2); 14144 } 14145 return entries; 14146 }, 14147 symlink: function(parent, newname, oldpath) { 14148 var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); 14149 node.link = oldpath; 14150 return node; 14151 }, 14152 readlink: function(node) { 14153 if (!FS.isLink(node.mode)) { 14154 throw new FS.ErrnoError(28); 14155 } 14156 return node.link; 14157 } 14158 }, 14159 stream_ops: { 14160 read: function(stream, buffer2, offset, length, position) { 14161 var contents = stream.node.contents; 14162 if (position >= stream.node.usedBytes) 14163 return 0; 14164 var size = Math.min(stream.node.usedBytes - position, length); 14165 if (size > 8 && contents.subarray) { 14166 buffer2.set(contents.subarray(position, position + size), offset); 14167 } else { 14168 for (var i = 0; i < size; i++) 14169 buffer2[offset + i] = contents[position + i]; 14170 } 14171 return size; 14172 }, 14173 write: function(stream, buffer2, offset, length, position, canOwn) { 14174 if (buffer2.buffer === HEAP8.buffer) { 14175 canOwn = false; 14176 } 14177 if (!length) 14178 return 0; 14179 var node = stream.node; 14180 node.timestamp = Date.now(); 14181 if (buffer2.subarray && (!node.contents || node.contents.subarray)) { 14182 if (canOwn) { 14183 node.contents = buffer2.subarray(offset, offset + length); 14184 node.usedBytes = length; 14185 return length; 14186 } else if (node.usedBytes === 0 && position === 0) { 14187 node.contents = buffer2.slice(offset, offset + length); 14188 node.usedBytes = length; 14189 return length; 14190 } else if (position + length <= node.usedBytes) { 14191 node.contents.set( 14192 buffer2.subarray(offset, offset + length), 14193 position 14194 ); 14195 return length; 14196 } 14197 } 14198 MEMFS.expandFileStorage(node, position + length); 14199 if (node.contents.subarray && buffer2.subarray) { 14200 node.contents.set( 14201 buffer2.subarray(offset, offset + length), 14202 position 14203 ); 14204 } else { 14205 for (var i = 0; i < length; i++) { 14206 node.contents[position + i] = buffer2[offset + i]; 14207 } 14208 } 14209 node.usedBytes = Math.max(node.usedBytes, position + length); 14210 return length; 14211 }, 14212 llseek: function(stream, offset, whence) { 14213 var position = offset; 14214 if (whence === 1) { 14215 position += stream.position; 14216 } else if (whence === 2) { 14217 if (FS.isFile(stream.node.mode)) { 14218 position += stream.node.usedBytes; 14219 } 14220 } 14221 if (position < 0) { 14222 throw new FS.ErrnoError(28); 14223 } 14224 return position; 14225 }, 14226 allocate: function(stream, offset, length) { 14227 MEMFS.expandFileStorage(stream.node, offset + length); 14228 stream.node.usedBytes = Math.max( 14229 stream.node.usedBytes, 14230 offset + length 14231 ); 14232 }, 14233 mmap: function(stream, address, length, position, prot, flags) { 14234 if (address !== 0) { 14235 throw new FS.ErrnoError(28); 14236 } 14237 if (!FS.isFile(stream.node.mode)) { 14238 throw new FS.ErrnoError(43); 14239 } 14240 var ptr; 14241 var allocated; 14242 var contents = stream.node.contents; 14243 if (!(flags & 2) && contents.buffer === buffer) { 14244 allocated = false; 14245 ptr = contents.byteOffset; 14246 } else { 14247 if (position > 0 || position + length < contents.length) { 14248 if (contents.subarray) { 14249 contents = contents.subarray(position, position + length); 14250 } else { 14251 contents = Array.prototype.slice.call( 14252 contents, 14253 position, 14254 position + length 14255 ); 14256 } 14257 } 14258 allocated = true; 14259 ptr = mmapAlloc(length); 14260 if (!ptr) { 14261 throw new FS.ErrnoError(48); 14262 } 14263 HEAP8.set(contents, ptr); 14264 } 14265 return { ptr, allocated }; 14266 }, 14267 msync: function(stream, buffer2, offset, length, mmapFlags) { 14268 if (!FS.isFile(stream.node.mode)) { 14269 throw new FS.ErrnoError(43); 14270 } 14271 if (mmapFlags & 2) { 14272 return 0; 14273 } 14274 MEMFS.stream_ops.write( 14275 stream, 14276 buffer2, 14277 0, 14278 length, 14279 offset, 14280 false 14281 ); 14282 return 0; 14283 } 14284 } 14285 }; 14286 var ERRNO_CODES = { 14287 EPERM: 63, 14288 ENOENT: 44, 14289 ESRCH: 71, 14290 EINTR: 27, 14291 EIO: 29, 14292 ENXIO: 60, 14293 E2BIG: 1, 14294 ENOEXEC: 45, 14295 EBADF: 8, 14296 ECHILD: 12, 14297 EAGAIN: 6, 14298 EWOULDBLOCK: 6, 14299 ENOMEM: 48, 14300 EACCES: 2, 14301 EFAULT: 21, 14302 ENOTBLK: 105, 14303 EBUSY: 10, 14304 EEXIST: 20, 14305 EXDEV: 75, 14306 ENODEV: 43, 14307 ENOTDIR: 54, 14308 EISDIR: 31, 14309 EINVAL: 28, 14310 ENFILE: 41, 14311 EMFILE: 33, 14312 ENOTTY: 59, 14313 ETXTBSY: 74, 14314 EFBIG: 22, 14315 ENOSPC: 51, 14316 ESPIPE: 70, 14317 EROFS: 69, 14318 EMLINK: 34, 14319 EPIPE: 64, 14320 EDOM: 18, 14321 ERANGE: 68, 14322 ENOMSG: 49, 14323 EIDRM: 24, 14324 ECHRNG: 106, 14325 EL2NSYNC: 156, 14326 EL3HLT: 107, 14327 EL3RST: 108, 14328 ELNRNG: 109, 14329 EUNATCH: 110, 14330 ENOCSI: 111, 14331 EL2HLT: 112, 14332 EDEADLK: 16, 14333 ENOLCK: 46, 14334 EBADE: 113, 14335 EBADR: 114, 14336 EXFULL: 115, 14337 ENOANO: 104, 14338 EBADRQC: 103, 14339 EBADSLT: 102, 14340 EDEADLOCK: 16, 14341 EBFONT: 101, 14342 ENOSTR: 100, 14343 ENODATA: 116, 14344 ETIME: 117, 14345 ENOSR: 118, 14346 ENONET: 119, 14347 ENOPKG: 120, 14348 EREMOTE: 121, 14349 ENOLINK: 47, 14350 EADV: 122, 14351 ESRMNT: 123, 14352 ECOMM: 124, 14353 EPROTO: 65, 14354 EMULTIHOP: 36, 14355 EDOTDOT: 125, 14356 EBADMSG: 9, 14357 ENOTUNIQ: 126, 14358 EBADFD: 127, 14359 EREMCHG: 128, 14360 ELIBACC: 129, 14361 ELIBBAD: 130, 14362 ELIBSCN: 131, 14363 ELIBMAX: 132, 14364 ELIBEXEC: 133, 14365 ENOSYS: 52, 14366 ENOTEMPTY: 55, 14367 ENAMETOOLONG: 37, 14368 ELOOP: 32, 14369 EOPNOTSUPP: 138, 14370 EPFNOSUPPORT: 139, 14371 ECONNRESET: 15, 14372 ENOBUFS: 42, 14373 EAFNOSUPPORT: 5, 14374 EPROTOTYPE: 67, 14375 ENOTSOCK: 57, 14376 ENOPROTOOPT: 50, 14377 ESHUTDOWN: 140, 14378 ECONNREFUSED: 14, 14379 EADDRINUSE: 3, 14380 ECONNABORTED: 13, 14381 ENETUNREACH: 40, 14382 ENETDOWN: 38, 14383 ETIMEDOUT: 73, 14384 EHOSTDOWN: 142, 14385 EHOSTUNREACH: 23, 14386 EINPROGRESS: 26, 14387 EALREADY: 7, 14388 EDESTADDRREQ: 17, 14389 EMSGSIZE: 35, 14390 EPROTONOSUPPORT: 66, 14391 ESOCKTNOSUPPORT: 137, 14392 EADDRNOTAVAIL: 4, 14393 ENETRESET: 39, 14394 EISCONN: 30, 14395 ENOTCONN: 53, 14396 ETOOMANYREFS: 141, 14397 EUSERS: 136, 14398 EDQUOT: 19, 14399 ESTALE: 72, 14400 ENOTSUP: 138, 14401 ENOMEDIUM: 148, 14402 EILSEQ: 25, 14403 EOVERFLOW: 61, 14404 ECANCELED: 11, 14405 ENOTRECOVERABLE: 56, 14406 EOWNERDEAD: 62, 14407 ESTRPIPE: 135 14408 }; 14409 var NODEFS = { 14410 isWindows: false, 14411 staticInit: function() { 14412 NODEFS.isWindows = !!process.platform.match(/^win/); 14413 var flags = { fs: fs.constants }; 14414 if (flags["fs"]) { 14415 flags = flags["fs"]; 14416 } 14417 NODEFS.flagsForNodeMap = { 14418 1024: flags["O_APPEND"], 14419 64: flags["O_CREAT"], 14420 128: flags["O_EXCL"], 14421 256: flags["O_NOCTTY"], 14422 0: flags["O_RDONLY"], 14423 2: flags["O_RDWR"], 14424 4096: flags["O_SYNC"], 14425 512: flags["O_TRUNC"], 14426 1: flags["O_WRONLY"] 14427 }; 14428 }, 14429 bufferFrom: function(arrayBuffer) { 14430 return Buffer["alloc"] ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer); 14431 }, 14432 convertNodeCode: function(e) { 14433 var code = e.code; 14434 return ERRNO_CODES[code]; 14435 }, 14436 mount: function(mount) { 14437 return NODEFS.createNode(null, "/", NODEFS.getMode(mount.opts.root), 0); 14438 }, 14439 createNode: function(parent, name, mode, dev) { 14440 if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { 14441 throw new FS.ErrnoError(28); 14442 } 14443 var node = FS.createNode(parent, name, mode); 14444 node.node_ops = NODEFS.node_ops; 14445 node.stream_ops = NODEFS.stream_ops; 14446 return node; 14447 }, 14448 getMode: function(path) { 14449 var stat; 14450 try { 14451 stat = fs.lstatSync(path); 14452 if (NODEFS.isWindows) { 14453 stat.mode = stat.mode | (stat.mode & 292) >> 2; 14454 } 14455 } catch (e) { 14456 if (!e.code) 14457 throw e; 14458 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14459 } 14460 return stat.mode; 14461 }, 14462 realPath: function(node) { 14463 var parts = []; 14464 while (node.parent !== node) { 14465 parts.push(node.name); 14466 node = node.parent; 14467 } 14468 parts.push(node.mount.opts.root); 14469 parts.reverse(); 14470 return PATH.join.apply(null, parts); 14471 }, 14472 flagsForNode: function(flags) { 14473 flags &= ~2097152; 14474 flags &= ~2048; 14475 flags &= ~32768; 14476 flags &= ~524288; 14477 var newFlags = 0; 14478 for (var k in NODEFS.flagsForNodeMap) { 14479 if (flags & k) { 14480 newFlags |= NODEFS.flagsForNodeMap[k]; 14481 flags ^= k; 14482 } 14483 } 14484 if (!flags) { 14485 return newFlags; 14486 } else { 14487 throw new FS.ErrnoError(28); 14488 } 14489 }, 14490 node_ops: { 14491 getattr: function(node) { 14492 var path = NODEFS.realPath(node); 14493 var stat; 14494 try { 14495 stat = fs.lstatSync(path); 14496 } catch (e) { 14497 if (!e.code) 14498 throw e; 14499 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14500 } 14501 if (NODEFS.isWindows && !stat.blksize) { 14502 stat.blksize = 4096; 14503 } 14504 if (NODEFS.isWindows && !stat.blocks) { 14505 stat.blocks = (stat.size + stat.blksize - 1) / stat.blksize | 0; 14506 } 14507 return { 14508 dev: stat.dev, 14509 ino: stat.ino, 14510 mode: stat.mode, 14511 nlink: stat.nlink, 14512 uid: stat.uid, 14513 gid: stat.gid, 14514 rdev: stat.rdev, 14515 size: stat.size, 14516 atime: stat.atime, 14517 mtime: stat.mtime, 14518 ctime: stat.ctime, 14519 blksize: stat.blksize, 14520 blocks: stat.blocks 14521 }; 14522 }, 14523 setattr: function(node, attr) { 14524 var path = NODEFS.realPath(node); 14525 try { 14526 if (attr.mode !== void 0) { 14527 fs.chmodSync(path, attr.mode); 14528 node.mode = attr.mode; 14529 } 14530 if (attr.timestamp !== void 0) { 14531 var date = new Date(attr.timestamp); 14532 fs.utimesSync(path, date, date); 14533 } 14534 if (attr.size !== void 0) { 14535 fs.truncateSync(path, attr.size); 14536 } 14537 } catch (e) { 14538 if (!e.code) 14539 throw e; 14540 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14541 } 14542 }, 14543 lookup: function(parent, name) { 14544 var path = PATH.join2(NODEFS.realPath(parent), name); 14545 var mode = NODEFS.getMode(path); 14546 return NODEFS.createNode(parent, name, mode); 14547 }, 14548 mknod: function(parent, name, mode, dev) { 14549 var node = NODEFS.createNode(parent, name, mode, dev); 14550 var path = NODEFS.realPath(node); 14551 try { 14552 if (FS.isDir(node.mode)) { 14553 fs.mkdirSync(path, node.mode); 14554 } else { 14555 fs.writeFileSync(path, "", { mode: node.mode }); 14556 } 14557 } catch (e) { 14558 if (!e.code) 14559 throw e; 14560 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14561 } 14562 return node; 14563 }, 14564 rename: function(oldNode, newDir, newName) { 14565 var oldPath = NODEFS.realPath(oldNode); 14566 var newPath = PATH.join2(NODEFS.realPath(newDir), newName); 14567 try { 14568 fs.renameSync(oldPath, newPath); 14569 } catch (e) { 14570 if (!e.code) 14571 throw e; 14572 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14573 } 14574 oldNode.name = newName; 14575 }, 14576 unlink: function(parent, name) { 14577 var path = PATH.join2(NODEFS.realPath(parent), name); 14578 try { 14579 fs.unlinkSync(path); 14580 } catch (e) { 14581 if (!e.code) 14582 throw e; 14583 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14584 } 14585 }, 14586 rmdir: function(parent, name) { 14587 var path = PATH.join2(NODEFS.realPath(parent), name); 14588 try { 14589 fs.rmdirSync(path); 14590 } catch (e) { 14591 if (!e.code) 14592 throw e; 14593 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14594 } 14595 }, 14596 readdir: function(node) { 14597 var path = NODEFS.realPath(node); 14598 try { 14599 return fs.readdirSync(path); 14600 } catch (e) { 14601 if (!e.code) 14602 throw e; 14603 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14604 } 14605 }, 14606 symlink: function(parent, newName, oldPath) { 14607 var newPath = PATH.join2(NODEFS.realPath(parent), newName); 14608 try { 14609 fs.symlinkSync(oldPath, newPath); 14610 } catch (e) { 14611 if (!e.code) 14612 throw e; 14613 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14614 } 14615 }, 14616 readlink: function(node) { 14617 var path = NODEFS.realPath(node); 14618 try { 14619 path = fs.readlinkSync(path); 14620 path = NODEJS_PATH.relative( 14621 NODEJS_PATH.resolve(node.mount.opts.root), 14622 path 14623 ); 14624 return path; 14625 } catch (e) { 14626 if (!e.code) 14627 throw e; 14628 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14629 } 14630 } 14631 }, 14632 stream_ops: { 14633 open: function(stream) { 14634 var path = NODEFS.realPath(stream.node); 14635 try { 14636 if (FS.isFile(stream.node.mode)) { 14637 stream.nfd = fs.openSync(path, NODEFS.flagsForNode(stream.flags)); 14638 } 14639 } catch (e) { 14640 if (!e.code) 14641 throw e; 14642 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14643 } 14644 }, 14645 close: function(stream) { 14646 try { 14647 if (FS.isFile(stream.node.mode) && stream.nfd) { 14648 fs.closeSync(stream.nfd); 14649 } 14650 } catch (e) { 14651 if (!e.code) 14652 throw e; 14653 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14654 } 14655 }, 14656 read: function(stream, buffer2, offset, length, position) { 14657 if (length === 0) 14658 return 0; 14659 try { 14660 return fs.readSync( 14661 stream.nfd, 14662 NODEFS.bufferFrom(buffer2.buffer), 14663 offset, 14664 length, 14665 position 14666 ); 14667 } catch (e) { 14668 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14669 } 14670 }, 14671 write: function(stream, buffer2, offset, length, position) { 14672 try { 14673 return fs.writeSync( 14674 stream.nfd, 14675 NODEFS.bufferFrom(buffer2.buffer), 14676 offset, 14677 length, 14678 position 14679 ); 14680 } catch (e) { 14681 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14682 } 14683 }, 14684 llseek: function(stream, offset, whence) { 14685 var position = offset; 14686 if (whence === 1) { 14687 position += stream.position; 14688 } else if (whence === 2) { 14689 if (FS.isFile(stream.node.mode)) { 14690 try { 14691 var stat = fs.fstatSync(stream.nfd); 14692 position += stat.size; 14693 } catch (e) { 14694 throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); 14695 } 14696 } 14697 } 14698 if (position < 0) { 14699 throw new FS.ErrnoError(28); 14700 } 14701 return position; 14702 }, 14703 mmap: function(stream, address, length, position, prot, flags) { 14704 if (address !== 0) { 14705 throw new FS.ErrnoError(28); 14706 } 14707 if (!FS.isFile(stream.node.mode)) { 14708 throw new FS.ErrnoError(43); 14709 } 14710 var ptr = mmapAlloc(length); 14711 NODEFS.stream_ops.read(stream, HEAP8, ptr, length, position); 14712 return { ptr, allocated: true }; 14713 }, 14714 msync: function(stream, buffer2, offset, length, mmapFlags) { 14715 if (!FS.isFile(stream.node.mode)) { 14716 throw new FS.ErrnoError(43); 14717 } 14718 if (mmapFlags & 2) { 14719 return 0; 14720 } 14721 NODEFS.stream_ops.write( 14722 stream, 14723 buffer2, 14724 0, 14725 length, 14726 offset, 14727 false 14728 ); 14729 return 0; 14730 } 14731 } 14732 }; 14733 var NODERAWFS = { 14734 lookupPath: function(path) { 14735 return { path, node: { mode: NODEFS.getMode(path) } }; 14736 }, 14737 createStandardStreams: function() { 14738 FS.streams[0] = { 14739 fd: 0, 14740 nfd: 0, 14741 position: 0, 14742 path: "", 14743 flags: 0, 14744 tty: true, 14745 seekable: false 14746 }; 14747 for (var i = 1; i < 3; i++) { 14748 FS.streams[i] = { 14749 fd: i, 14750 nfd: i, 14751 position: 0, 14752 path: "", 14753 flags: 577, 14754 tty: true, 14755 seekable: false 14756 }; 14757 } 14758 }, 14759 cwd: function() { 14760 return process.cwd(); 14761 }, 14762 chdir: function() { 14763 process.chdir.apply(void 0, arguments); 14764 }, 14765 mknod: function(path, mode) { 14766 if (FS.isDir(path)) { 14767 fs.mkdirSync(path, mode); 14768 } else { 14769 fs.writeFileSync(path, "", { mode }); 14770 } 14771 }, 14772 mkdir: function() { 14773 fs.mkdirSync.apply(void 0, arguments); 14774 }, 14775 symlink: function() { 14776 fs.symlinkSync.apply(void 0, arguments); 14777 }, 14778 rename: function() { 14779 fs.renameSync.apply(void 0, arguments); 14780 }, 14781 rmdir: function() { 14782 fs.rmdirSync.apply(void 0, arguments); 14783 }, 14784 readdir: function() { 14785 fs.readdirSync.apply(void 0, arguments); 14786 }, 14787 unlink: function() { 14788 fs.unlinkSync.apply(void 0, arguments); 14789 }, 14790 readlink: function() { 14791 return fs.readlinkSync.apply(void 0, arguments); 14792 }, 14793 stat: function() { 14794 return fs.statSync.apply(void 0, arguments); 14795 }, 14796 lstat: function() { 14797 return fs.lstatSync.apply(void 0, arguments); 14798 }, 14799 chmod: function() { 14800 fs.chmodSync.apply(void 0, arguments); 14801 }, 14802 fchmod: function() { 14803 fs.fchmodSync.apply(void 0, arguments); 14804 }, 14805 chown: function() { 14806 fs.chownSync.apply(void 0, arguments); 14807 }, 14808 fchown: function() { 14809 fs.fchownSync.apply(void 0, arguments); 14810 }, 14811 truncate: function() { 14812 fs.truncateSync.apply(void 0, arguments); 14813 }, 14814 ftruncate: function(fd, len) { 14815 if (len < 0) { 14816 throw new FS.ErrnoError(28); 14817 } 14818 fs.ftruncateSync.apply(void 0, arguments); 14819 }, 14820 utime: function() { 14821 fs.utimesSync.apply(void 0, arguments); 14822 }, 14823 open: function(path, flags, mode, suggestFD) { 14824 if (typeof flags === "string") { 14825 flags = VFS.modeStringToFlags(flags); 14826 } 14827 var nfd = fs.openSync(path, NODEFS.flagsForNode(flags), mode); 14828 var fd = suggestFD != null ? suggestFD : FS.nextfd(nfd); 14829 var stream = { 14830 fd, 14831 nfd, 14832 position: 0, 14833 path, 14834 flags, 14835 seekable: true 14836 }; 14837 FS.streams[fd] = stream; 14838 return stream; 14839 }, 14840 close: function(stream) { 14841 if (!stream.stream_ops) { 14842 fs.closeSync(stream.nfd); 14843 } 14844 FS.closeStream(stream.fd); 14845 }, 14846 llseek: function(stream, offset, whence) { 14847 if (stream.stream_ops) { 14848 return VFS.llseek(stream, offset, whence); 14849 } 14850 var position = offset; 14851 if (whence === 1) { 14852 position += stream.position; 14853 } else if (whence === 2) { 14854 position += fs.fstatSync(stream.nfd).size; 14855 } else if (whence !== 0) { 14856 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 14857 } 14858 if (position < 0) { 14859 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 14860 } 14861 stream.position = position; 14862 return position; 14863 }, 14864 read: function(stream, buffer2, offset, length, position) { 14865 if (stream.stream_ops) { 14866 return VFS.read(stream, buffer2, offset, length, position); 14867 } 14868 var seeking = typeof position !== "undefined"; 14869 if (!seeking && stream.seekable) 14870 position = stream.position; 14871 var bytesRead = fs.readSync( 14872 stream.nfd, 14873 NODEFS.bufferFrom(buffer2.buffer), 14874 offset, 14875 length, 14876 position 14877 ); 14878 if (!seeking) 14879 stream.position += bytesRead; 14880 return bytesRead; 14881 }, 14882 write: function(stream, buffer2, offset, length, position) { 14883 if (stream.stream_ops) { 14884 return VFS.write(stream, buffer2, offset, length, position); 14885 } 14886 if (stream.flags & +"1024") { 14887 FS.llseek(stream, 0, +"2"); 14888 } 14889 var seeking = typeof position !== "undefined"; 14890 if (!seeking && stream.seekable) 14891 position = stream.position; 14892 var bytesWritten = fs.writeSync( 14893 stream.nfd, 14894 NODEFS.bufferFrom(buffer2.buffer), 14895 offset, 14896 length, 14897 position 14898 ); 14899 if (!seeking) 14900 stream.position += bytesWritten; 14901 return bytesWritten; 14902 }, 14903 allocate: function() { 14904 throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); 14905 }, 14906 mmap: function(stream, address, length, position, prot, flags) { 14907 if (stream.stream_ops) { 14908 return VFS.mmap(stream, address, length, position, prot, flags); 14909 } 14910 if (address !== 0) { 14911 throw new FS.ErrnoError(28); 14912 } 14913 var ptr = mmapAlloc(length); 14914 FS.read(stream, HEAP8, ptr, length, position); 14915 return { ptr, allocated: true }; 14916 }, 14917 msync: function(stream, buffer2, offset, length, mmapFlags) { 14918 if (stream.stream_ops) { 14919 return VFS.msync(stream, buffer2, offset, length, mmapFlags); 14920 } 14921 if (mmapFlags & 2) { 14922 return 0; 14923 } 14924 FS.write(stream, buffer2, 0, length, offset); 14925 return 0; 14926 }, 14927 munmap: function() { 14928 return 0; 14929 }, 14930 ioctl: function() { 14931 throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); 14932 } 14933 }; 14934 var FS = { 14935 root: null, 14936 mounts: [], 14937 devices: {}, 14938 streams: [], 14939 nextInode: 1, 14940 nameTable: null, 14941 currentPath: "/", 14942 initialized: false, 14943 ignorePermissions: true, 14944 trackingDelegate: {}, 14945 tracking: { openFlags: { READ: 1, WRITE: 2 } }, 14946 ErrnoError: null, 14947 genericErrors: {}, 14948 filesystems: null, 14949 syncFSRequests: 0, 14950 lookupPath: function(path, opts) { 14951 path = PATH_FS.resolve(FS.cwd(), path); 14952 opts = opts || {}; 14953 if (!path) 14954 return { path: "", node: null }; 14955 var defaults = { follow_mount: true, recurse_count: 0 }; 14956 for (var key2 in defaults) { 14957 if (opts[key2] === void 0) { 14958 opts[key2] = defaults[key2]; 14959 } 14960 } 14961 if (opts.recurse_count > 8) { 14962 throw new FS.ErrnoError(32); 14963 } 14964 var parts = PATH.normalizeArray( 14965 path.split("/").filter(function(p) { 14966 return !!p; 14967 }), 14968 false 14969 ); 14970 var current = FS.root; 14971 var current_path = "/"; 14972 for (var i = 0; i < parts.length; i++) { 14973 var islast = i === parts.length - 1; 14974 if (islast && opts.parent) { 14975 break; 14976 } 14977 current = FS.lookupNode(current, parts[i]); 14978 current_path = PATH.join2(current_path, parts[i]); 14979 if (FS.isMountpoint(current)) { 14980 if (!islast || islast && opts.follow_mount) { 14981 current = current.mounted.root; 14982 } 14983 } 14984 if (!islast || opts.follow) { 14985 var count = 0; 14986 while (FS.isLink(current.mode)) { 14987 var link = FS.readlink(current_path); 14988 current_path = PATH_FS.resolve(PATH.dirname(current_path), link); 14989 var lookup = FS.lookupPath(current_path, { 14990 recurse_count: opts.recurse_count 14991 }); 14992 current = lookup.node; 14993 if (count++ > 40) { 14994 throw new FS.ErrnoError(32); 14995 } 14996 } 14997 } 14998 } 14999 return { path: current_path, node: current }; 15000 }, 15001 getPath: function(node) { 15002 var path; 15003 while (true) { 15004 if (FS.isRoot(node)) { 15005 var mount = node.mount.mountpoint; 15006 if (!path) 15007 return mount; 15008 return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; 15009 } 15010 path = path ? node.name + "/" + path : node.name; 15011 node = node.parent; 15012 } 15013 }, 15014 hashName: function(parentid, name) { 15015 var hash = 0; 15016 for (var i = 0; i < name.length; i++) { 15017 hash = (hash << 5) - hash + name.charCodeAt(i) | 0; 15018 } 15019 return (parentid + hash >>> 0) % FS.nameTable.length; 15020 }, 15021 hashAddNode: function(node) { 15022 var hash = FS.hashName(node.parent.id, node.name); 15023 node.name_next = FS.nameTable[hash]; 15024 FS.nameTable[hash] = node; 15025 }, 15026 hashRemoveNode: function(node) { 15027 var hash = FS.hashName(node.parent.id, node.name); 15028 if (FS.nameTable[hash] === node) { 15029 FS.nameTable[hash] = node.name_next; 15030 } else { 15031 var current = FS.nameTable[hash]; 15032 while (current) { 15033 if (current.name_next === node) { 15034 current.name_next = node.name_next; 15035 break; 15036 } 15037 current = current.name_next; 15038 } 15039 } 15040 }, 15041 lookupNode: function(parent, name) { 15042 var errCode = FS.mayLookup(parent); 15043 if (errCode) { 15044 throw new FS.ErrnoError(errCode, parent); 15045 } 15046 var hash = FS.hashName(parent.id, name); 15047 for (var node = FS.nameTable[hash]; node; node = node.name_next) { 15048 var nodeName = node.name; 15049 if (node.parent.id === parent.id && nodeName === name) { 15050 return node; 15051 } 15052 } 15053 return FS.lookup(parent, name); 15054 }, 15055 createNode: function(parent, name, mode, rdev) { 15056 var node = new FS.FSNode(parent, name, mode, rdev); 15057 FS.hashAddNode(node); 15058 return node; 15059 }, 15060 destroyNode: function(node) { 15061 FS.hashRemoveNode(node); 15062 }, 15063 isRoot: function(node) { 15064 return node === node.parent; 15065 }, 15066 isMountpoint: function(node) { 15067 return !!node.mounted; 15068 }, 15069 isFile: function(mode) { 15070 return (mode & 61440) === 32768; 15071 }, 15072 isDir: function(mode) { 15073 return (mode & 61440) === 16384; 15074 }, 15075 isLink: function(mode) { 15076 return (mode & 61440) === 40960; 15077 }, 15078 isChrdev: function(mode) { 15079 return (mode & 61440) === 8192; 15080 }, 15081 isBlkdev: function(mode) { 15082 return (mode & 61440) === 24576; 15083 }, 15084 isFIFO: function(mode) { 15085 return (mode & 61440) === 4096; 15086 }, 15087 isSocket: function(mode) { 15088 return (mode & 49152) === 49152; 15089 }, 15090 flagModes: { r: 0, "r+": 2, w: 577, "w+": 578, a: 1089, "a+": 1090 }, 15091 modeStringToFlags: function(str) { 15092 var flags = FS.flagModes[str]; 15093 if (typeof flags === "undefined") { 15094 throw new Error("Unknown file open mode: " + str); 15095 } 15096 return flags; 15097 }, 15098 flagsToPermissionString: function(flag) { 15099 var perms = ["r", "w", "rw"][flag & 3]; 15100 if (flag & 512) { 15101 perms += "w"; 15102 } 15103 return perms; 15104 }, 15105 nodePermissions: function(node, perms) { 15106 if (FS.ignorePermissions) { 15107 return 0; 15108 } 15109 if (perms.includes("r") && !(node.mode & 292)) { 15110 return 2; 15111 } else if (perms.includes("w") && !(node.mode & 146)) { 15112 return 2; 15113 } else if (perms.includes("x") && !(node.mode & 73)) { 15114 return 2; 15115 } 15116 return 0; 15117 }, 15118 mayLookup: function(dir) { 15119 var errCode = FS.nodePermissions(dir, "x"); 15120 if (errCode) 15121 return errCode; 15122 if (!dir.node_ops.lookup) 15123 return 2; 15124 return 0; 15125 }, 15126 mayCreate: function(dir, name) { 15127 try { 15128 var node = FS.lookupNode(dir, name); 15129 return 20; 15130 } catch (e) { 15131 } 15132 return FS.nodePermissions(dir, "wx"); 15133 }, 15134 mayDelete: function(dir, name, isdir) { 15135 var node; 15136 try { 15137 node = FS.lookupNode(dir, name); 15138 } catch (e) { 15139 return e.errno; 15140 } 15141 var errCode = FS.nodePermissions(dir, "wx"); 15142 if (errCode) { 15143 return errCode; 15144 } 15145 if (isdir) { 15146 if (!FS.isDir(node.mode)) { 15147 return 54; 15148 } 15149 if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { 15150 return 10; 15151 } 15152 } else { 15153 if (FS.isDir(node.mode)) { 15154 return 31; 15155 } 15156 } 15157 return 0; 15158 }, 15159 mayOpen: function(node, flags) { 15160 if (!node) { 15161 return 44; 15162 } 15163 if (FS.isLink(node.mode)) { 15164 return 32; 15165 } else if (FS.isDir(node.mode)) { 15166 if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { 15167 return 31; 15168 } 15169 } 15170 return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); 15171 }, 15172 MAX_OPEN_FDS: 4096, 15173 nextfd: function(fd_start, fd_end) { 15174 fd_start = fd_start || 0; 15175 fd_end = fd_end || FS.MAX_OPEN_FDS; 15176 for (var fd = fd_start; fd <= fd_end; fd++) { 15177 if (!FS.streams[fd]) { 15178 return fd; 15179 } 15180 } 15181 throw new FS.ErrnoError(33); 15182 }, 15183 getStream: function(fd) { 15184 return FS.streams[fd]; 15185 }, 15186 createStream: function(stream, fd_start, fd_end) { 15187 if (!FS.FSStream) { 15188 FS.FSStream = function() { 15189 }; 15190 FS.FSStream.prototype = { 15191 object: { 15192 get: function() { 15193 return this.node; 15194 }, 15195 set: function(val) { 15196 this.node = val; 15197 } 15198 }, 15199 isRead: { 15200 get: function() { 15201 return (this.flags & 2097155) !== 1; 15202 } 15203 }, 15204 isWrite: { 15205 get: function() { 15206 return (this.flags & 2097155) !== 0; 15207 } 15208 }, 15209 isAppend: { 15210 get: function() { 15211 return this.flags & 1024; 15212 } 15213 } 15214 }; 15215 } 15216 var newStream = new FS.FSStream(); 15217 for (var p in stream) { 15218 newStream[p] = stream[p]; 15219 } 15220 stream = newStream; 15221 var fd = FS.nextfd(fd_start, fd_end); 15222 stream.fd = fd; 15223 FS.streams[fd] = stream; 15224 return stream; 15225 }, 15226 closeStream: function(fd) { 15227 FS.streams[fd] = null; 15228 }, 15229 chrdev_stream_ops: { 15230 open: function(stream) { 15231 var device = FS.getDevice(stream.node.rdev); 15232 stream.stream_ops = device.stream_ops; 15233 if (stream.stream_ops.open) { 15234 stream.stream_ops.open(stream); 15235 } 15236 }, 15237 llseek: function() { 15238 throw new FS.ErrnoError(70); 15239 } 15240 }, 15241 major: function(dev) { 15242 return dev >> 8; 15243 }, 15244 minor: function(dev) { 15245 return dev & 255; 15246 }, 15247 makedev: function(ma, mi) { 15248 return ma << 8 | mi; 15249 }, 15250 registerDevice: function(dev, ops) { 15251 FS.devices[dev] = { stream_ops: ops }; 15252 }, 15253 getDevice: function(dev) { 15254 return FS.devices[dev]; 15255 }, 15256 getMounts: function(mount) { 15257 var mounts = []; 15258 var check = [mount]; 15259 while (check.length) { 15260 var m = check.pop(); 15261 mounts.push(m); 15262 check.push.apply(check, m.mounts); 15263 } 15264 return mounts; 15265 }, 15266 syncfs: function(populate, callback) { 15267 if (typeof populate === "function") { 15268 callback = populate; 15269 populate = false; 15270 } 15271 FS.syncFSRequests++; 15272 if (FS.syncFSRequests > 1) { 15273 err( 15274 "warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work" 15275 ); 15276 } 15277 var mounts = FS.getMounts(FS.root.mount); 15278 var completed = 0; 15279 function doCallback(errCode) { 15280 FS.syncFSRequests--; 15281 return callback(errCode); 15282 } 15283 function done(errCode) { 15284 if (errCode) { 15285 if (!done.errored) { 15286 done.errored = true; 15287 return doCallback(errCode); 15288 } 15289 return; 15290 } 15291 if (++completed >= mounts.length) { 15292 doCallback(null); 15293 } 15294 } 15295 mounts.forEach(function(mount) { 15296 if (!mount.type.syncfs) { 15297 return done(null); 15298 } 15299 mount.type.syncfs(mount, populate, done); 15300 }); 15301 }, 15302 mount: function(type, opts, mountpoint) { 15303 var root = mountpoint === "/"; 15304 var pseudo = !mountpoint; 15305 var node; 15306 if (root && FS.root) { 15307 throw new FS.ErrnoError(10); 15308 } else if (!root && !pseudo) { 15309 var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); 15310 mountpoint = lookup.path; 15311 node = lookup.node; 15312 if (FS.isMountpoint(node)) { 15313 throw new FS.ErrnoError(10); 15314 } 15315 if (!FS.isDir(node.mode)) { 15316 throw new FS.ErrnoError(54); 15317 } 15318 } 15319 var mount = { 15320 type, 15321 opts, 15322 mountpoint, 15323 mounts: [] 15324 }; 15325 var mountRoot = type.mount(mount); 15326 mountRoot.mount = mount; 15327 mount.root = mountRoot; 15328 if (root) { 15329 FS.root = mountRoot; 15330 } else if (node) { 15331 node.mounted = mount; 15332 if (node.mount) { 15333 node.mount.mounts.push(mount); 15334 } 15335 } 15336 return mountRoot; 15337 }, 15338 unmount: function(mountpoint) { 15339 var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); 15340 if (!FS.isMountpoint(lookup.node)) { 15341 throw new FS.ErrnoError(28); 15342 } 15343 var node = lookup.node; 15344 var mount = node.mounted; 15345 var mounts = FS.getMounts(mount); 15346 Object.keys(FS.nameTable).forEach(function(hash) { 15347 var current = FS.nameTable[hash]; 15348 while (current) { 15349 var next = current.name_next; 15350 if (mounts.includes(current.mount)) { 15351 FS.destroyNode(current); 15352 } 15353 current = next; 15354 } 15355 }); 15356 node.mounted = null; 15357 var idx = node.mount.mounts.indexOf(mount); 15358 node.mount.mounts.splice(idx, 1); 15359 }, 15360 lookup: function(parent, name) { 15361 return parent.node_ops.lookup(parent, name); 15362 }, 15363 mknod: function(path, mode, dev) { 15364 var lookup = FS.lookupPath(path, { parent: true }); 15365 var parent = lookup.node; 15366 var name = PATH.basename(path); 15367 if (!name || name === "." || name === "..") { 15368 throw new FS.ErrnoError(28); 15369 } 15370 var errCode = FS.mayCreate(parent, name); 15371 if (errCode) { 15372 throw new FS.ErrnoError(errCode); 15373 } 15374 if (!parent.node_ops.mknod) { 15375 throw new FS.ErrnoError(63); 15376 } 15377 return parent.node_ops.mknod(parent, name, mode, dev); 15378 }, 15379 create: function(path, mode) { 15380 mode = mode !== void 0 ? mode : 438; 15381 mode &= 4095; 15382 mode |= 32768; 15383 return FS.mknod(path, mode, 0); 15384 }, 15385 mkdir: function(path, mode) { 15386 mode = mode !== void 0 ? mode : 511; 15387 mode &= 511 | 512; 15388 mode |= 16384; 15389 return FS.mknod(path, mode, 0); 15390 }, 15391 mkdirTree: function(path, mode) { 15392 var dirs = path.split("/"); 15393 var d = ""; 15394 for (var i = 0; i < dirs.length; ++i) { 15395 if (!dirs[i]) 15396 continue; 15397 d += "/" + dirs[i]; 15398 try { 15399 FS.mkdir(d, mode); 15400 } catch (e) { 15401 if (e.errno != 20) 15402 throw e; 15403 } 15404 } 15405 }, 15406 mkdev: function(path, mode, dev) { 15407 if (typeof dev === "undefined") { 15408 dev = mode; 15409 mode = 438; 15410 } 15411 mode |= 8192; 15412 return FS.mknod(path, mode, dev); 15413 }, 15414 symlink: function(oldpath, newpath) { 15415 if (!PATH_FS.resolve(oldpath)) { 15416 throw new FS.ErrnoError(44); 15417 } 15418 var lookup = FS.lookupPath(newpath, { parent: true }); 15419 var parent = lookup.node; 15420 if (!parent) { 15421 throw new FS.ErrnoError(44); 15422 } 15423 var newname = PATH.basename(newpath); 15424 var errCode = FS.mayCreate(parent, newname); 15425 if (errCode) { 15426 throw new FS.ErrnoError(errCode); 15427 } 15428 if (!parent.node_ops.symlink) { 15429 throw new FS.ErrnoError(63); 15430 } 15431 return parent.node_ops.symlink(parent, newname, oldpath); 15432 }, 15433 rename: function(old_path, new_path) { 15434 var old_dirname = PATH.dirname(old_path); 15435 var new_dirname = PATH.dirname(new_path); 15436 var old_name = PATH.basename(old_path); 15437 var new_name = PATH.basename(new_path); 15438 var lookup, old_dir, new_dir; 15439 lookup = FS.lookupPath(old_path, { parent: true }); 15440 old_dir = lookup.node; 15441 lookup = FS.lookupPath(new_path, { parent: true }); 15442 new_dir = lookup.node; 15443 if (!old_dir || !new_dir) 15444 throw new FS.ErrnoError(44); 15445 if (old_dir.mount !== new_dir.mount) { 15446 throw new FS.ErrnoError(75); 15447 } 15448 var old_node = FS.lookupNode(old_dir, old_name); 15449 var relative = PATH_FS.relative(old_path, new_dirname); 15450 if (relative.charAt(0) !== ".") { 15451 throw new FS.ErrnoError(28); 15452 } 15453 relative = PATH_FS.relative(new_path, old_dirname); 15454 if (relative.charAt(0) !== ".") { 15455 throw new FS.ErrnoError(55); 15456 } 15457 var new_node; 15458 try { 15459 new_node = FS.lookupNode(new_dir, new_name); 15460 } catch (e) { 15461 } 15462 if (old_node === new_node) { 15463 return; 15464 } 15465 var isdir = FS.isDir(old_node.mode); 15466 var errCode = FS.mayDelete(old_dir, old_name, isdir); 15467 if (errCode) { 15468 throw new FS.ErrnoError(errCode); 15469 } 15470 errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); 15471 if (errCode) { 15472 throw new FS.ErrnoError(errCode); 15473 } 15474 if (!old_dir.node_ops.rename) { 15475 throw new FS.ErrnoError(63); 15476 } 15477 if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { 15478 throw new FS.ErrnoError(10); 15479 } 15480 if (new_dir !== old_dir) { 15481 errCode = FS.nodePermissions(old_dir, "w"); 15482 if (errCode) { 15483 throw new FS.ErrnoError(errCode); 15484 } 15485 } 15486 try { 15487 if (FS.trackingDelegate["willMovePath"]) { 15488 FS.trackingDelegate["willMovePath"](old_path, new_path); 15489 } 15490 } catch (e) { 15491 err( 15492 "FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message 15493 ); 15494 } 15495 FS.hashRemoveNode(old_node); 15496 try { 15497 old_dir.node_ops.rename(old_node, new_dir, new_name); 15498 } catch (e) { 15499 throw e; 15500 } finally { 15501 FS.hashAddNode(old_node); 15502 } 15503 try { 15504 if (FS.trackingDelegate["onMovePath"]) 15505 FS.trackingDelegate["onMovePath"](old_path, new_path); 15506 } catch (e) { 15507 err( 15508 "FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message 15509 ); 15510 } 15511 }, 15512 rmdir: function(path) { 15513 var lookup = FS.lookupPath(path, { parent: true }); 15514 var parent = lookup.node; 15515 var name = PATH.basename(path); 15516 var node = FS.lookupNode(parent, name); 15517 var errCode = FS.mayDelete(parent, name, true); 15518 if (errCode) { 15519 throw new FS.ErrnoError(errCode); 15520 } 15521 if (!parent.node_ops.rmdir) { 15522 throw new FS.ErrnoError(63); 15523 } 15524 if (FS.isMountpoint(node)) { 15525 throw new FS.ErrnoError(10); 15526 } 15527 try { 15528 if (FS.trackingDelegate["willDeletePath"]) { 15529 FS.trackingDelegate["willDeletePath"](path); 15530 } 15531 } catch (e) { 15532 err( 15533 "FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message 15534 ); 15535 } 15536 parent.node_ops.rmdir(parent, name); 15537 FS.destroyNode(node); 15538 try { 15539 if (FS.trackingDelegate["onDeletePath"]) 15540 FS.trackingDelegate["onDeletePath"](path); 15541 } catch (e) { 15542 err( 15543 "FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message 15544 ); 15545 } 15546 }, 15547 readdir: function(path) { 15548 var lookup = FS.lookupPath(path, { follow: true }); 15549 var node = lookup.node; 15550 if (!node.node_ops.readdir) { 15551 throw new FS.ErrnoError(54); 15552 } 15553 return node.node_ops.readdir(node); 15554 }, 15555 unlink: function(path) { 15556 var lookup = FS.lookupPath(path, { parent: true }); 15557 var parent = lookup.node; 15558 var name = PATH.basename(path); 15559 var node = FS.lookupNode(parent, name); 15560 var errCode = FS.mayDelete(parent, name, false); 15561 if (errCode) { 15562 throw new FS.ErrnoError(errCode); 15563 } 15564 if (!parent.node_ops.unlink) { 15565 throw new FS.ErrnoError(63); 15566 } 15567 if (FS.isMountpoint(node)) { 15568 throw new FS.ErrnoError(10); 15569 } 15570 try { 15571 if (FS.trackingDelegate["willDeletePath"]) { 15572 FS.trackingDelegate["willDeletePath"](path); 15573 } 15574 } catch (e) { 15575 err( 15576 "FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message 15577 ); 15578 } 15579 parent.node_ops.unlink(parent, name); 15580 FS.destroyNode(node); 15581 try { 15582 if (FS.trackingDelegate["onDeletePath"]) 15583 FS.trackingDelegate["onDeletePath"](path); 15584 } catch (e) { 15585 err( 15586 "FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message 15587 ); 15588 } 15589 }, 15590 readlink: function(path) { 15591 var lookup = FS.lookupPath(path); 15592 var link = lookup.node; 15593 if (!link) { 15594 throw new FS.ErrnoError(44); 15595 } 15596 if (!link.node_ops.readlink) { 15597 throw new FS.ErrnoError(28); 15598 } 15599 return PATH_FS.resolve( 15600 FS.getPath(link.parent), 15601 link.node_ops.readlink(link) 15602 ); 15603 }, 15604 stat: function(path, dontFollow) { 15605 var lookup = FS.lookupPath(path, { follow: !dontFollow }); 15606 var node = lookup.node; 15607 if (!node) { 15608 throw new FS.ErrnoError(44); 15609 } 15610 if (!node.node_ops.getattr) { 15611 throw new FS.ErrnoError(63); 15612 } 15613 return node.node_ops.getattr(node); 15614 }, 15615 lstat: function(path) { 15616 return FS.stat(path, true); 15617 }, 15618 chmod: function(path, mode, dontFollow) { 15619 var node; 15620 if (typeof path === "string") { 15621 var lookup = FS.lookupPath(path, { follow: !dontFollow }); 15622 node = lookup.node; 15623 } else { 15624 node = path; 15625 } 15626 if (!node.node_ops.setattr) { 15627 throw new FS.ErrnoError(63); 15628 } 15629 node.node_ops.setattr(node, { 15630 mode: mode & 4095 | node.mode & ~4095, 15631 timestamp: Date.now() 15632 }); 15633 }, 15634 lchmod: function(path, mode) { 15635 FS.chmod(path, mode, true); 15636 }, 15637 fchmod: function(fd, mode) { 15638 var stream = FS.getStream(fd); 15639 if (!stream) { 15640 throw new FS.ErrnoError(8); 15641 } 15642 FS.chmod(stream.node, mode); 15643 }, 15644 chown: function(path, uid, gid, dontFollow) { 15645 var node; 15646 if (typeof path === "string") { 15647 var lookup = FS.lookupPath(path, { follow: !dontFollow }); 15648 node = lookup.node; 15649 } else { 15650 node = path; 15651 } 15652 if (!node.node_ops.setattr) { 15653 throw new FS.ErrnoError(63); 15654 } 15655 node.node_ops.setattr(node, { timestamp: Date.now() }); 15656 }, 15657 lchown: function(path, uid, gid) { 15658 FS.chown(path, uid, gid, true); 15659 }, 15660 fchown: function(fd, uid, gid) { 15661 var stream = FS.getStream(fd); 15662 if (!stream) { 15663 throw new FS.ErrnoError(8); 15664 } 15665 FS.chown(stream.node, uid, gid); 15666 }, 15667 truncate: function(path, len) { 15668 if (len < 0) { 15669 throw new FS.ErrnoError(28); 15670 } 15671 var node; 15672 if (typeof path === "string") { 15673 var lookup = FS.lookupPath(path, { follow: true }); 15674 node = lookup.node; 15675 } else { 15676 node = path; 15677 } 15678 if (!node.node_ops.setattr) { 15679 throw new FS.ErrnoError(63); 15680 } 15681 if (FS.isDir(node.mode)) { 15682 throw new FS.ErrnoError(31); 15683 } 15684 if (!FS.isFile(node.mode)) { 15685 throw new FS.ErrnoError(28); 15686 } 15687 var errCode = FS.nodePermissions(node, "w"); 15688 if (errCode) { 15689 throw new FS.ErrnoError(errCode); 15690 } 15691 node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); 15692 }, 15693 ftruncate: function(fd, len) { 15694 var stream = FS.getStream(fd); 15695 if (!stream) { 15696 throw new FS.ErrnoError(8); 15697 } 15698 if ((stream.flags & 2097155) === 0) { 15699 throw new FS.ErrnoError(28); 15700 } 15701 FS.truncate(stream.node, len); 15702 }, 15703 utime: function(path, atime, mtime) { 15704 var lookup = FS.lookupPath(path, { follow: true }); 15705 var node = lookup.node; 15706 node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); 15707 }, 15708 open: function(path, flags, mode, fd_start, fd_end) { 15709 if (path === "") { 15710 throw new FS.ErrnoError(44); 15711 } 15712 flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags; 15713 mode = typeof mode === "undefined" ? 438 : mode; 15714 if (flags & 64) { 15715 mode = mode & 4095 | 32768; 15716 } else { 15717 mode = 0; 15718 } 15719 var node; 15720 if (typeof path === "object") { 15721 node = path; 15722 } else { 15723 path = PATH.normalize(path); 15724 try { 15725 var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); 15726 node = lookup.node; 15727 } catch (e) { 15728 } 15729 } 15730 var created = false; 15731 if (flags & 64) { 15732 if (node) { 15733 if (flags & 128) { 15734 throw new FS.ErrnoError(20); 15735 } 15736 } else { 15737 node = FS.mknod(path, mode, 0); 15738 created = true; 15739 } 15740 } 15741 if (!node) { 15742 throw new FS.ErrnoError(44); 15743 } 15744 if (FS.isChrdev(node.mode)) { 15745 flags &= ~512; 15746 } 15747 if (flags & 65536 && !FS.isDir(node.mode)) { 15748 throw new FS.ErrnoError(54); 15749 } 15750 if (!created) { 15751 var errCode = FS.mayOpen(node, flags); 15752 if (errCode) { 15753 throw new FS.ErrnoError(errCode); 15754 } 15755 } 15756 if (flags & 512) { 15757 FS.truncate(node, 0); 15758 } 15759 flags &= ~(128 | 512 | 131072); 15760 var stream = FS.createStream( 15761 { 15762 node, 15763 path: FS.getPath(node), 15764 flags, 15765 seekable: true, 15766 position: 0, 15767 stream_ops: node.stream_ops, 15768 ungotten: [], 15769 error: false 15770 }, 15771 fd_start, 15772 fd_end 15773 ); 15774 if (stream.stream_ops.open) { 15775 stream.stream_ops.open(stream); 15776 } 15777 if (Module["logReadFiles"] && !(flags & 1)) { 15778 if (!FS.readFiles) 15779 FS.readFiles = {}; 15780 if (!(path in FS.readFiles)) { 15781 FS.readFiles[path] = 1; 15782 err("FS.trackingDelegate error on read file: " + path); 15783 } 15784 } 15785 try { 15786 if (FS.trackingDelegate["onOpenFile"]) { 15787 var trackingFlags = 0; 15788 if ((flags & 2097155) !== 1) { 15789 trackingFlags |= FS.tracking.openFlags.READ; 15790 } 15791 if ((flags & 2097155) !== 0) { 15792 trackingFlags |= FS.tracking.openFlags.WRITE; 15793 } 15794 FS.trackingDelegate["onOpenFile"](path, trackingFlags); 15795 } 15796 } catch (e) { 15797 err( 15798 "FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message 15799 ); 15800 } 15801 return stream; 15802 }, 15803 close: function(stream) { 15804 if (FS.isClosed(stream)) { 15805 throw new FS.ErrnoError(8); 15806 } 15807 if (stream.getdents) 15808 stream.getdents = null; 15809 try { 15810 if (stream.stream_ops.close) { 15811 stream.stream_ops.close(stream); 15812 } 15813 } catch (e) { 15814 throw e; 15815 } finally { 15816 FS.closeStream(stream.fd); 15817 } 15818 stream.fd = null; 15819 }, 15820 isClosed: function(stream) { 15821 return stream.fd === null; 15822 }, 15823 llseek: function(stream, offset, whence) { 15824 if (FS.isClosed(stream)) { 15825 throw new FS.ErrnoError(8); 15826 } 15827 if (!stream.seekable || !stream.stream_ops.llseek) { 15828 throw new FS.ErrnoError(70); 15829 } 15830 if (whence != 0 && whence != 1 && whence != 2) { 15831 throw new FS.ErrnoError(28); 15832 } 15833 stream.position = stream.stream_ops.llseek(stream, offset, whence); 15834 stream.ungotten = []; 15835 return stream.position; 15836 }, 15837 read: function(stream, buffer2, offset, length, position) { 15838 if (length < 0 || position < 0) { 15839 throw new FS.ErrnoError(28); 15840 } 15841 if (FS.isClosed(stream)) { 15842 throw new FS.ErrnoError(8); 15843 } 15844 if ((stream.flags & 2097155) === 1) { 15845 throw new FS.ErrnoError(8); 15846 } 15847 if (FS.isDir(stream.node.mode)) { 15848 throw new FS.ErrnoError(31); 15849 } 15850 if (!stream.stream_ops.read) { 15851 throw new FS.ErrnoError(28); 15852 } 15853 var seeking = typeof position !== "undefined"; 15854 if (!seeking) { 15855 position = stream.position; 15856 } else if (!stream.seekable) { 15857 throw new FS.ErrnoError(70); 15858 } 15859 var bytesRead = stream.stream_ops.read( 15860 stream, 15861 buffer2, 15862 offset, 15863 length, 15864 position 15865 ); 15866 if (!seeking) 15867 stream.position += bytesRead; 15868 return bytesRead; 15869 }, 15870 write: function(stream, buffer2, offset, length, position, canOwn) { 15871 if (length < 0 || position < 0) { 15872 throw new FS.ErrnoError(28); 15873 } 15874 if (FS.isClosed(stream)) { 15875 throw new FS.ErrnoError(8); 15876 } 15877 if ((stream.flags & 2097155) === 0) { 15878 throw new FS.ErrnoError(8); 15879 } 15880 if (FS.isDir(stream.node.mode)) { 15881 throw new FS.ErrnoError(31); 15882 } 15883 if (!stream.stream_ops.write) { 15884 throw new FS.ErrnoError(28); 15885 } 15886 if (stream.seekable && stream.flags & 1024) { 15887 FS.llseek(stream, 0, 2); 15888 } 15889 var seeking = typeof position !== "undefined"; 15890 if (!seeking) { 15891 position = stream.position; 15892 } else if (!stream.seekable) { 15893 throw new FS.ErrnoError(70); 15894 } 15895 var bytesWritten = stream.stream_ops.write( 15896 stream, 15897 buffer2, 15898 offset, 15899 length, 15900 position, 15901 canOwn 15902 ); 15903 if (!seeking) 15904 stream.position += bytesWritten; 15905 try { 15906 if (stream.path && FS.trackingDelegate["onWriteToFile"]) 15907 FS.trackingDelegate["onWriteToFile"](stream.path); 15908 } catch (e) { 15909 err( 15910 "FS.trackingDelegate['onWriteToFile']('" + stream.path + "') threw an exception: " + e.message 15911 ); 15912 } 15913 return bytesWritten; 15914 }, 15915 allocate: function(stream, offset, length) { 15916 if (FS.isClosed(stream)) { 15917 throw new FS.ErrnoError(8); 15918 } 15919 if (offset < 0 || length <= 0) { 15920 throw new FS.ErrnoError(28); 15921 } 15922 if ((stream.flags & 2097155) === 0) { 15923 throw new FS.ErrnoError(8); 15924 } 15925 if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { 15926 throw new FS.ErrnoError(43); 15927 } 15928 if (!stream.stream_ops.allocate) { 15929 throw new FS.ErrnoError(138); 15930 } 15931 stream.stream_ops.allocate(stream, offset, length); 15932 }, 15933 mmap: function(stream, address, length, position, prot, flags) { 15934 if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { 15935 throw new FS.ErrnoError(2); 15936 } 15937 if ((stream.flags & 2097155) === 1) { 15938 throw new FS.ErrnoError(2); 15939 } 15940 if (!stream.stream_ops.mmap) { 15941 throw new FS.ErrnoError(43); 15942 } 15943 return stream.stream_ops.mmap( 15944 stream, 15945 address, 15946 length, 15947 position, 15948 prot, 15949 flags 15950 ); 15951 }, 15952 msync: function(stream, buffer2, offset, length, mmapFlags) { 15953 if (!stream || !stream.stream_ops.msync) { 15954 return 0; 15955 } 15956 return stream.stream_ops.msync( 15957 stream, 15958 buffer2, 15959 offset, 15960 length, 15961 mmapFlags 15962 ); 15963 }, 15964 munmap: function(stream) { 15965 return 0; 15966 }, 15967 ioctl: function(stream, cmd, arg) { 15968 if (!stream.stream_ops.ioctl) { 15969 throw new FS.ErrnoError(59); 15970 } 15971 return stream.stream_ops.ioctl(stream, cmd, arg); 15972 }, 15973 readFile: function(path, opts) { 15974 opts = opts || {}; 15975 opts.flags = opts.flags || 0; 15976 opts.encoding = opts.encoding || "binary"; 15977 if (opts.encoding !== "utf8" && opts.encoding !== "binary") { 15978 throw new Error('Invalid encoding type "' + opts.encoding + '"'); 15979 } 15980 var ret; 15981 var stream = FS.open(path, opts.flags); 15982 var stat = FS.stat(path); 15983 var length = stat.size; 15984 var buf = new Uint8Array(length); 15985 FS.read(stream, buf, 0, length, 0); 15986 if (opts.encoding === "utf8") { 15987 ret = UTF8ArrayToString(buf, 0); 15988 } else if (opts.encoding === "binary") { 15989 ret = buf; 15990 } 15991 FS.close(stream); 15992 return ret; 15993 }, 15994 writeFile: function(path, data, opts) { 15995 opts = opts || {}; 15996 opts.flags = opts.flags || 577; 15997 var stream = FS.open(path, opts.flags, opts.mode); 15998 if (typeof data === "string") { 15999 var buf = new Uint8Array(lengthBytesUTF8(data) + 1); 16000 var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); 16001 FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); 16002 } else if (ArrayBuffer.isView(data)) { 16003 FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); 16004 } else { 16005 throw new Error("Unsupported data type"); 16006 } 16007 FS.close(stream); 16008 }, 16009 cwd: function() { 16010 return FS.currentPath; 16011 }, 16012 chdir: function(path) { 16013 var lookup = FS.lookupPath(path, { follow: true }); 16014 if (lookup.node === null) { 16015 throw new FS.ErrnoError(44); 16016 } 16017 if (!FS.isDir(lookup.node.mode)) { 16018 throw new FS.ErrnoError(54); 16019 } 16020 var errCode = FS.nodePermissions(lookup.node, "x"); 16021 if (errCode) { 16022 throw new FS.ErrnoError(errCode); 16023 } 16024 FS.currentPath = lookup.path; 16025 }, 16026 createDefaultDirectories: function() { 16027 FS.mkdir("/tmp"); 16028 FS.mkdir("/home"); 16029 FS.mkdir("/home/web_user"); 16030 }, 16031 createDefaultDevices: function() { 16032 FS.mkdir("/dev"); 16033 FS.registerDevice(FS.makedev(1, 3), { 16034 read: function() { 16035 return 0; 16036 }, 16037 write: function(stream, buffer2, offset, length, pos) { 16038 return length; 16039 } 16040 }); 16041 FS.mkdev("/dev/null", FS.makedev(1, 3)); 16042 TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); 16043 TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); 16044 FS.mkdev("/dev/tty", FS.makedev(5, 0)); 16045 FS.mkdev("/dev/tty1", FS.makedev(6, 0)); 16046 var random_device = getRandomDevice(); 16047 FS.createDevice("/dev", "random", random_device); 16048 FS.createDevice("/dev", "urandom", random_device); 16049 FS.mkdir("/dev/shm"); 16050 FS.mkdir("/dev/shm/tmp"); 16051 }, 16052 createSpecialDirectories: function() { 16053 FS.mkdir("/proc"); 16054 var proc_self = FS.mkdir("/proc/self"); 16055 FS.mkdir("/proc/self/fd"); 16056 FS.mount( 16057 { 16058 mount: function() { 16059 var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); 16060 node.node_ops = { 16061 lookup: function(parent, name) { 16062 var fd = +name; 16063 var stream = FS.getStream(fd); 16064 if (!stream) 16065 throw new FS.ErrnoError(8); 16066 var ret = { 16067 parent: null, 16068 mount: { mountpoint: "fake" }, 16069 node_ops: { 16070 readlink: function() { 16071 return stream.path; 16072 } 16073 } 16074 }; 16075 ret.parent = ret; 16076 return ret; 16077 } 16078 }; 16079 return node; 16080 } 16081 }, 16082 {}, 16083 "/proc/self/fd" 16084 ); 16085 }, 16086 createStandardStreams: function() { 16087 if (Module["stdin"]) { 16088 FS.createDevice("/dev", "stdin", Module["stdin"]); 16089 } else { 16090 FS.symlink("/dev/tty", "/dev/stdin"); 16091 } 16092 if (Module["stdout"]) { 16093 FS.createDevice("/dev", "stdout", null, Module["stdout"]); 16094 } else { 16095 FS.symlink("/dev/tty", "/dev/stdout"); 16096 } 16097 if (Module["stderr"]) { 16098 FS.createDevice("/dev", "stderr", null, Module["stderr"]); 16099 } else { 16100 FS.symlink("/dev/tty1", "/dev/stderr"); 16101 } 16102 FS.open("/dev/stdin", 0); 16103 FS.open("/dev/stdout", 1); 16104 FS.open("/dev/stderr", 1); 16105 }, 16106 ensureErrnoError: function() { 16107 if (FS.ErrnoError) 16108 return; 16109 FS.ErrnoError = function ErrnoError(errno, node) { 16110 this.node = node; 16111 this.setErrno = function(errno2) { 16112 this.errno = errno2; 16113 }; 16114 this.setErrno(errno); 16115 this.message = "FS error"; 16116 }; 16117 FS.ErrnoError.prototype = new Error(); 16118 FS.ErrnoError.prototype.constructor = FS.ErrnoError; 16119 [44].forEach(function(code) { 16120 FS.genericErrors[code] = new FS.ErrnoError(code); 16121 FS.genericErrors[code].stack = "<generic error, no stack>"; 16122 }); 16123 }, 16124 staticInit: function() { 16125 FS.ensureErrnoError(); 16126 FS.nameTable = new Array(4096); 16127 FS.mount(MEMFS, {}, "/"); 16128 FS.createDefaultDirectories(); 16129 FS.createDefaultDevices(); 16130 FS.createSpecialDirectories(); 16131 FS.filesystems = { MEMFS, NODEFS }; 16132 }, 16133 init: function(input, output, error) { 16134 FS.init.initialized = true; 16135 FS.ensureErrnoError(); 16136 Module["stdin"] = input || Module["stdin"]; 16137 Module["stdout"] = output || Module["stdout"]; 16138 Module["stderr"] = error || Module["stderr"]; 16139 FS.createStandardStreams(); 16140 }, 16141 quit: function() { 16142 FS.init.initialized = false; 16143 var fflush = Module["_fflush"]; 16144 if (fflush) 16145 fflush(0); 16146 for (var i = 0; i < FS.streams.length; i++) { 16147 var stream = FS.streams[i]; 16148 if (!stream) { 16149 continue; 16150 } 16151 FS.close(stream); 16152 } 16153 }, 16154 getMode: function(canRead, canWrite) { 16155 var mode = 0; 16156 if (canRead) 16157 mode |= 292 | 73; 16158 if (canWrite) 16159 mode |= 146; 16160 return mode; 16161 }, 16162 findObject: function(path, dontResolveLastLink) { 16163 var ret = FS.analyzePath(path, dontResolveLastLink); 16164 if (ret.exists) { 16165 return ret.object; 16166 } else { 16167 return null; 16168 } 16169 }, 16170 analyzePath: function(path, dontResolveLastLink) { 16171 try { 16172 var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); 16173 path = lookup.path; 16174 } catch (e) { 16175 } 16176 var ret = { 16177 isRoot: false, 16178 exists: false, 16179 error: 0, 16180 name: null, 16181 path: null, 16182 object: null, 16183 parentExists: false, 16184 parentPath: null, 16185 parentObject: null 16186 }; 16187 try { 16188 var lookup = FS.lookupPath(path, { parent: true }); 16189 ret.parentExists = true; 16190 ret.parentPath = lookup.path; 16191 ret.parentObject = lookup.node; 16192 ret.name = PATH.basename(path); 16193 lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); 16194 ret.exists = true; 16195 ret.path = lookup.path; 16196 ret.object = lookup.node; 16197 ret.name = lookup.node.name; 16198 ret.isRoot = lookup.path === "/"; 16199 } catch (e) { 16200 ret.error = e.errno; 16201 } 16202 return ret; 16203 }, 16204 createPath: function(parent, path, canRead, canWrite) { 16205 parent = typeof parent === "string" ? parent : FS.getPath(parent); 16206 var parts = path.split("/").reverse(); 16207 while (parts.length) { 16208 var part = parts.pop(); 16209 if (!part) 16210 continue; 16211 var current = PATH.join2(parent, part); 16212 try { 16213 FS.mkdir(current); 16214 } catch (e) { 16215 } 16216 parent = current; 16217 } 16218 return current; 16219 }, 16220 createFile: function(parent, name, properties, canRead, canWrite) { 16221 var path = PATH.join2( 16222 typeof parent === "string" ? parent : FS.getPath(parent), 16223 name 16224 ); 16225 var mode = FS.getMode(canRead, canWrite); 16226 return FS.create(path, mode); 16227 }, 16228 createDataFile: function(parent, name, data, canRead, canWrite, canOwn) { 16229 var path = name ? PATH.join2( 16230 typeof parent === "string" ? parent : FS.getPath(parent), 16231 name 16232 ) : parent; 16233 var mode = FS.getMode(canRead, canWrite); 16234 var node = FS.create(path, mode); 16235 if (data) { 16236 if (typeof data === "string") { 16237 var arr = new Array(data.length); 16238 for (var i = 0, len = data.length; i < len; ++i) 16239 arr[i] = data.charCodeAt(i); 16240 data = arr; 16241 } 16242 FS.chmod(node, mode | 146); 16243 var stream = FS.open(node, 577); 16244 FS.write(stream, data, 0, data.length, 0, canOwn); 16245 FS.close(stream); 16246 FS.chmod(node, mode); 16247 } 16248 return node; 16249 }, 16250 createDevice: function(parent, name, input, output) { 16251 var path = PATH.join2( 16252 typeof parent === "string" ? parent : FS.getPath(parent), 16253 name 16254 ); 16255 var mode = FS.getMode(!!input, !!output); 16256 if (!FS.createDevice.major) 16257 FS.createDevice.major = 64; 16258 var dev = FS.makedev(FS.createDevice.major++, 0); 16259 FS.registerDevice(dev, { 16260 open: function(stream) { 16261 stream.seekable = false; 16262 }, 16263 close: function(stream) { 16264 if (output && output.buffer && output.buffer.length) { 16265 output(10); 16266 } 16267 }, 16268 read: function(stream, buffer2, offset, length, pos) { 16269 var bytesRead = 0; 16270 for (var i = 0; i < length; i++) { 16271 var result; 16272 try { 16273 result = input(); 16274 } catch (e) { 16275 throw new FS.ErrnoError(29); 16276 } 16277 if (result === void 0 && bytesRead === 0) { 16278 throw new FS.ErrnoError(6); 16279 } 16280 if (result === null || result === void 0) 16281 break; 16282 bytesRead++; 16283 buffer2[offset + i] = result; 16284 } 16285 if (bytesRead) { 16286 stream.node.timestamp = Date.now(); 16287 } 16288 return bytesRead; 16289 }, 16290 write: function(stream, buffer2, offset, length, pos) { 16291 for (var i = 0; i < length; i++) { 16292 try { 16293 output(buffer2[offset + i]); 16294 } catch (e) { 16295 throw new FS.ErrnoError(29); 16296 } 16297 } 16298 if (length) { 16299 stream.node.timestamp = Date.now(); 16300 } 16301 return i; 16302 } 16303 }); 16304 return FS.mkdev(path, mode, dev); 16305 }, 16306 forceLoadFile: function(obj) { 16307 if (obj.isDevice || obj.isFolder || obj.link || obj.contents) 16308 return true; 16309 if (read_) { 16310 try { 16311 obj.contents = intArrayFromString(read_(obj.url), true); 16312 obj.usedBytes = obj.contents.length; 16313 } catch (e) { 16314 throw new FS.ErrnoError(29); 16315 } 16316 } else { 16317 throw new Error("Cannot load without read() or XMLHttpRequest."); 16318 } 16319 }, 16320 createLazyFile: function(parent, name, url, canRead, canWrite) { 16321 var properties; { 16322 var properties = { isDevice: false, url }; 16323 } 16324 var node = FS.createFile(parent, name, properties, canRead, canWrite); 16325 if (properties.contents) { 16326 node.contents = properties.contents; 16327 } else if (properties.url) { 16328 node.contents = null; 16329 node.url = properties.url; 16330 } 16331 Object.defineProperties(node, { 16332 usedBytes: { 16333 get: function() { 16334 return this.contents.length; 16335 } 16336 } 16337 }); 16338 var stream_ops = {}; 16339 var keys = Object.keys(node.stream_ops); 16340 keys.forEach(function(key2) { 16341 var fn = node.stream_ops[key2]; 16342 stream_ops[key2] = function forceLoadLazyFile() { 16343 FS.forceLoadFile(node); 16344 return fn.apply(null, arguments); 16345 }; 16346 }); 16347 stream_ops.read = function stream_ops_read(stream, buffer2, offset, length, position) { 16348 FS.forceLoadFile(node); 16349 var contents = stream.node.contents; 16350 if (position >= contents.length) 16351 return 0; 16352 var size = Math.min(contents.length - position, length); 16353 if (contents.slice) { 16354 for (var i = 0; i < size; i++) { 16355 buffer2[offset + i] = contents[position + i]; 16356 } 16357 } else { 16358 for (var i = 0; i < size; i++) { 16359 buffer2[offset + i] = contents.get(position + i); 16360 } 16361 } 16362 return size; 16363 }; 16364 node.stream_ops = stream_ops; 16365 return node; 16366 }, 16367 createPreloadedFile: function(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { 16368 Browser.init(); 16369 var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; 16370 function processData(byteArray) { 16371 function finish(byteArray2) { 16372 if (preFinish) 16373 preFinish(); 16374 if (!dontCreateFile) { 16375 FS.createDataFile( 16376 parent, 16377 name, 16378 byteArray2, 16379 canRead, 16380 canWrite, 16381 canOwn 16382 ); 16383 } 16384 if (onload) 16385 onload(); 16386 removeRunDependency(); 16387 } 16388 var handled = false; 16389 Module["preloadPlugins"].forEach(function(plugin) { 16390 if (handled) 16391 return; 16392 if (plugin["canHandle"](fullname)) { 16393 plugin["handle"](byteArray, fullname, finish, function() { 16394 if (onerror) 16395 onerror(); 16396 removeRunDependency(); 16397 }); 16398 handled = true; 16399 } 16400 }); 16401 if (!handled) 16402 finish(byteArray); 16403 } 16404 addRunDependency(); 16405 if (typeof url == "string") { 16406 Browser.asyncLoad( 16407 url, 16408 function(byteArray) { 16409 processData(byteArray); 16410 }, 16411 onerror 16412 ); 16413 } else { 16414 processData(url); 16415 } 16416 }, 16417 indexedDB: function() { 16418 return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; 16419 }, 16420 DB_NAME: function() { 16421 return "EM_FS_" + window.location.pathname; 16422 }, 16423 DB_VERSION: 20, 16424 DB_STORE_NAME: "FILE_DATA", 16425 saveFilesToDB: function(paths, onload, onerror) { 16426 onload = onload || function() { 16427 }; 16428 onerror = onerror || function() { 16429 }; 16430 var indexedDB = FS.indexedDB(); 16431 try { 16432 var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); 16433 } catch (e) { 16434 return onerror(e); 16435 } 16436 openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { 16437 out("creating db"); 16438 var db = openRequest.result; 16439 db.createObjectStore(FS.DB_STORE_NAME); 16440 }; 16441 openRequest.onsuccess = function openRequest_onsuccess() { 16442 var db = openRequest.result; 16443 var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); 16444 var files = transaction.objectStore(FS.DB_STORE_NAME); 16445 var ok = 0, fail = 0, total = paths.length; 16446 function finish() { 16447 if (fail == 0) 16448 onload(); 16449 else 16450 onerror(); 16451 } 16452 paths.forEach(function(path) { 16453 var putRequest = files.put( 16454 FS.analyzePath(path).object.contents, 16455 path 16456 ); 16457 putRequest.onsuccess = function putRequest_onsuccess() { 16458 ok++; 16459 if (ok + fail == total) 16460 finish(); 16461 }; 16462 putRequest.onerror = function putRequest_onerror() { 16463 fail++; 16464 if (ok + fail == total) 16465 finish(); 16466 }; 16467 }); 16468 transaction.onerror = onerror; 16469 }; 16470 openRequest.onerror = onerror; 16471 }, 16472 loadFilesFromDB: function(paths, onload, onerror) { 16473 onload = onload || function() { 16474 }; 16475 onerror = onerror || function() { 16476 }; 16477 var indexedDB = FS.indexedDB(); 16478 try { 16479 var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); 16480 } catch (e) { 16481 return onerror(e); 16482 } 16483 openRequest.onupgradeneeded = onerror; 16484 openRequest.onsuccess = function openRequest_onsuccess() { 16485 var db = openRequest.result; 16486 try { 16487 var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); 16488 } catch (e) { 16489 onerror(e); 16490 return; 16491 } 16492 var files = transaction.objectStore(FS.DB_STORE_NAME); 16493 var ok = 0, fail = 0, total = paths.length; 16494 function finish() { 16495 if (fail == 0) 16496 onload(); 16497 else 16498 onerror(); 16499 } 16500 paths.forEach(function(path) { 16501 var getRequest = files.get(path); 16502 getRequest.onsuccess = function getRequest_onsuccess() { 16503 if (FS.analyzePath(path).exists) { 16504 FS.unlink(path); 16505 } 16506 FS.createDataFile( 16507 PATH.dirname(path), 16508 PATH.basename(path), 16509 getRequest.result, 16510 true, 16511 true, 16512 true 16513 ); 16514 ok++; 16515 if (ok + fail == total) 16516 finish(); 16517 }; 16518 getRequest.onerror = function getRequest_onerror() { 16519 fail++; 16520 if (ok + fail == total) 16521 finish(); 16522 }; 16523 }); 16524 transaction.onerror = onerror; 16525 }; 16526 openRequest.onerror = onerror; 16527 } 16528 }; 16529 var SYSCALLS = { 16530 mappings: {}, 16531 DEFAULT_POLLMASK: 5, 16532 umask: 511, 16533 calculateAt: function(dirfd, path, allowEmpty) { 16534 if (path[0] === "/") { 16535 return path; 16536 } 16537 var dir; 16538 if (dirfd === -100) { 16539 dir = FS.cwd(); 16540 } else { 16541 var dirstream = FS.getStream(dirfd); 16542 if (!dirstream) 16543 throw new FS.ErrnoError(8); 16544 dir = dirstream.path; 16545 } 16546 if (path.length == 0) { 16547 if (!allowEmpty) { 16548 throw new FS.ErrnoError(44); 16549 } 16550 return dir; 16551 } 16552 return PATH.join2(dir, path); 16553 }, 16554 doStat: function(func, path, buf) { 16555 try { 16556 var stat = func(path); 16557 } catch (e) { 16558 if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { 16559 return -54; 16560 } 16561 throw e; 16562 } 16563 HEAP32[buf >> 2] = stat.dev; 16564 HEAP32[buf + 4 >> 2] = 0; 16565 HEAP32[buf + 8 >> 2] = stat.ino; 16566 HEAP32[buf + 12 >> 2] = stat.mode; 16567 HEAP32[buf + 16 >> 2] = stat.nlink; 16568 HEAP32[buf + 20 >> 2] = stat.uid; 16569 HEAP32[buf + 24 >> 2] = stat.gid; 16570 HEAP32[buf + 28 >> 2] = stat.rdev; 16571 HEAP32[buf + 32 >> 2] = 0; 16572 tempI64 = [ 16573 stat.size >>> 0, 16574 (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil( 16575 (tempDouble - +(~~tempDouble >>> 0)) / 4294967296 16576 ) >>> 0 : 0) 16577 ], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1]; 16578 HEAP32[buf + 48 >> 2] = 4096; 16579 HEAP32[buf + 52 >> 2] = stat.blocks; 16580 HEAP32[buf + 56 >> 2] = stat.atime.getTime() / 1e3 | 0; 16581 HEAP32[buf + 60 >> 2] = 0; 16582 HEAP32[buf + 64 >> 2] = stat.mtime.getTime() / 1e3 | 0; 16583 HEAP32[buf + 68 >> 2] = 0; 16584 HEAP32[buf + 72 >> 2] = stat.ctime.getTime() / 1e3 | 0; 16585 HEAP32[buf + 76 >> 2] = 0; 16586 tempI64 = [ 16587 stat.ino >>> 0, 16588 (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil( 16589 (tempDouble - +(~~tempDouble >>> 0)) / 4294967296 16590 ) >>> 0 : 0) 16591 ], HEAP32[buf + 80 >> 2] = tempI64[0], HEAP32[buf + 84 >> 2] = tempI64[1]; 16592 return 0; 16593 }, 16594 doMsync: function(addr, stream, len, flags, offset) { 16595 var buffer2 = HEAPU8.slice(addr, addr + len); 16596 FS.msync(stream, buffer2, offset, len, flags); 16597 }, 16598 doMkdir: function(path, mode) { 16599 path = PATH.normalize(path); 16600 if (path[path.length - 1] === "/") 16601 path = path.substr(0, path.length - 1); 16602 FS.mkdir(path, mode, 0); 16603 return 0; 16604 }, 16605 doMknod: function(path, mode, dev) { 16606 switch (mode & 61440) { 16607 case 32768: 16608 case 8192: 16609 case 24576: 16610 case 4096: 16611 case 49152: 16612 break; 16613 default: 16614 return -28; 16615 } 16616 FS.mknod(path, mode, dev); 16617 return 0; 16618 }, 16619 doReadlink: function(path, buf, bufsize) { 16620 if (bufsize <= 0) 16621 return -28; 16622 var ret = FS.readlink(path); 16623 var len = Math.min(bufsize, lengthBytesUTF8(ret)); 16624 var endChar = HEAP8[buf + len]; 16625 stringToUTF8(ret, buf, bufsize + 1); 16626 HEAP8[buf + len] = endChar; 16627 return len; 16628 }, 16629 doAccess: function(path, amode) { 16630 if (amode & ~7) { 16631 return -28; 16632 } 16633 var node; 16634 var lookup = FS.lookupPath(path, { follow: true }); 16635 node = lookup.node; 16636 if (!node) { 16637 return -44; 16638 } 16639 var perms = ""; 16640 if (amode & 4) 16641 perms += "r"; 16642 if (amode & 2) 16643 perms += "w"; 16644 if (amode & 1) 16645 perms += "x"; 16646 if (perms && FS.nodePermissions(node, perms)) { 16647 return -2; 16648 } 16649 return 0; 16650 }, 16651 doDup: function(path, flags, suggestFD) { 16652 var suggest = FS.getStream(suggestFD); 16653 if (suggest) 16654 FS.close(suggest); 16655 return FS.open(path, flags, 0, suggestFD, suggestFD).fd; 16656 }, 16657 doReadv: function(stream, iov, iovcnt, offset) { 16658 var ret = 0; 16659 for (var i = 0; i < iovcnt; i++) { 16660 var ptr = HEAP32[iov + i * 8 >> 2]; 16661 var len = HEAP32[iov + (i * 8 + 4) >> 2]; 16662 var curr = FS.read(stream, HEAP8, ptr, len, offset); 16663 if (curr < 0) 16664 return -1; 16665 ret += curr; 16666 if (curr < len) 16667 break; 16668 } 16669 return ret; 16670 }, 16671 doWritev: function(stream, iov, iovcnt, offset) { 16672 var ret = 0; 16673 for (var i = 0; i < iovcnt; i++) { 16674 var ptr = HEAP32[iov + i * 8 >> 2]; 16675 var len = HEAP32[iov + (i * 8 + 4) >> 2]; 16676 var curr = FS.write(stream, HEAP8, ptr, len, offset); 16677 if (curr < 0) 16678 return -1; 16679 ret += curr; 16680 } 16681 return ret; 16682 }, 16683 varargs: void 0, 16684 get: function() { 16685 SYSCALLS.varargs += 4; 16686 var ret = HEAP32[SYSCALLS.varargs - 4 >> 2]; 16687 return ret; 16688 }, 16689 getStr: function(ptr) { 16690 var ret = UTF8ToString(ptr); 16691 return ret; 16692 }, 16693 getStreamFromFD: function(fd) { 16694 var stream = FS.getStream(fd); 16695 if (!stream) 16696 throw new FS.ErrnoError(8); 16697 return stream; 16698 }, 16699 get64: function(low, high) { 16700 return low; 16701 } 16702 }; 16703 function ___sys_chmod(path, mode) { 16704 try { 16705 path = SYSCALLS.getStr(path); 16706 FS.chmod(path, mode); 16707 return 0; 16708 } catch (e) { 16709 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16710 abort(e); 16711 return -e.errno; 16712 } 16713 } 16714 function setErrNo(value) { 16715 HEAP32[___errno_location() >> 2] = value; 16716 return value; 16717 } 16718 function ___sys_fcntl64(fd, cmd, varargs) { 16719 SYSCALLS.varargs = varargs; 16720 try { 16721 var stream = SYSCALLS.getStreamFromFD(fd); 16722 switch (cmd) { 16723 case 0: { 16724 var arg = SYSCALLS.get(); 16725 if (arg < 0) { 16726 return -28; 16727 } 16728 var newStream; 16729 newStream = FS.open(stream.path, stream.flags, 0, arg); 16730 return newStream.fd; 16731 } 16732 case 1: 16733 case 2: 16734 return 0; 16735 case 3: 16736 return stream.flags; 16737 case 4: { 16738 var arg = SYSCALLS.get(); 16739 stream.flags |= arg; 16740 return 0; 16741 } 16742 case 12: { 16743 var arg = SYSCALLS.get(); 16744 var offset = 0; 16745 HEAP16[arg + offset >> 1] = 2; 16746 return 0; 16747 } 16748 case 13: 16749 case 14: 16750 return 0; 16751 case 16: 16752 case 8: 16753 return -28; 16754 case 9: 16755 setErrNo(28); 16756 return -1; 16757 default: { 16758 return -28; 16759 } 16760 } 16761 } catch (e) { 16762 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16763 abort(e); 16764 return -e.errno; 16765 } 16766 } 16767 function ___sys_fstat64(fd, buf) { 16768 try { 16769 var stream = SYSCALLS.getStreamFromFD(fd); 16770 return SYSCALLS.doStat(FS.stat, stream.path, buf); 16771 } catch (e) { 16772 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16773 abort(e); 16774 return -e.errno; 16775 } 16776 } 16777 function ___sys_ioctl(fd, op, varargs) { 16778 SYSCALLS.varargs = varargs; 16779 try { 16780 var stream = SYSCALLS.getStreamFromFD(fd); 16781 switch (op) { 16782 case 21509: 16783 case 21505: { 16784 if (!stream.tty) 16785 return -59; 16786 return 0; 16787 } 16788 case 21510: 16789 case 21511: 16790 case 21512: 16791 case 21506: 16792 case 21507: 16793 case 21508: { 16794 if (!stream.tty) 16795 return -59; 16796 return 0; 16797 } 16798 case 21519: { 16799 if (!stream.tty) 16800 return -59; 16801 var argp = SYSCALLS.get(); 16802 HEAP32[argp >> 2] = 0; 16803 return 0; 16804 } 16805 case 21520: { 16806 if (!stream.tty) 16807 return -59; 16808 return -28; 16809 } 16810 case 21531: { 16811 var argp = SYSCALLS.get(); 16812 return FS.ioctl(stream, op, argp); 16813 } 16814 case 21523: { 16815 if (!stream.tty) 16816 return -59; 16817 return 0; 16818 } 16819 case 21524: { 16820 if (!stream.tty) 16821 return -59; 16822 return 0; 16823 } 16824 default: 16825 abort("bad ioctl syscall " + op); 16826 } 16827 } catch (e) { 16828 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16829 abort(e); 16830 return -e.errno; 16831 } 16832 } 16833 function ___sys_open(path, flags, varargs) { 16834 SYSCALLS.varargs = varargs; 16835 try { 16836 var pathname = SYSCALLS.getStr(path); 16837 var mode = varargs ? SYSCALLS.get() : 0; 16838 var stream = FS.open(pathname, flags, mode); 16839 return stream.fd; 16840 } catch (e) { 16841 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16842 abort(e); 16843 return -e.errno; 16844 } 16845 } 16846 function ___sys_rename(old_path, new_path) { 16847 try { 16848 old_path = SYSCALLS.getStr(old_path); 16849 new_path = SYSCALLS.getStr(new_path); 16850 FS.rename(old_path, new_path); 16851 return 0; 16852 } catch (e) { 16853 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16854 abort(e); 16855 return -e.errno; 16856 } 16857 } 16858 function ___sys_rmdir(path) { 16859 try { 16860 path = SYSCALLS.getStr(path); 16861 FS.rmdir(path); 16862 return 0; 16863 } catch (e) { 16864 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16865 abort(e); 16866 return -e.errno; 16867 } 16868 } 16869 function ___sys_stat64(path, buf) { 16870 try { 16871 path = SYSCALLS.getStr(path); 16872 return SYSCALLS.doStat(FS.stat, path, buf); 16873 } catch (e) { 16874 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16875 abort(e); 16876 return -e.errno; 16877 } 16878 } 16879 function ___sys_unlink(path) { 16880 try { 16881 path = SYSCALLS.getStr(path); 16882 FS.unlink(path); 16883 return 0; 16884 } catch (e) { 16885 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16886 abort(e); 16887 return -e.errno; 16888 } 16889 } 16890 function _emscripten_memcpy_big(dest, src, num) { 16891 HEAPU8.copyWithin(dest, src, src + num); 16892 } 16893 function emscripten_realloc_buffer(size) { 16894 try { 16895 wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16); 16896 updateGlobalBufferAndViews(wasmMemory.buffer); 16897 return 1; 16898 } catch (e) { 16899 } 16900 } 16901 function _emscripten_resize_heap(requestedSize) { 16902 var oldSize = HEAPU8.length; 16903 requestedSize = requestedSize >>> 0; 16904 var maxHeapSize = 2147483648; 16905 if (requestedSize > maxHeapSize) { 16906 return false; 16907 } 16908 for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { 16909 var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); 16910 overGrownHeapSize = Math.min( 16911 overGrownHeapSize, 16912 requestedSize + 100663296 16913 ); 16914 var newSize = Math.min( 16915 maxHeapSize, 16916 alignUp(Math.max(requestedSize, overGrownHeapSize), 65536) 16917 ); 16918 var replacement = emscripten_realloc_buffer(newSize); 16919 if (replacement) { 16920 return true; 16921 } 16922 } 16923 return false; 16924 } 16925 function _fd_close(fd) { 16926 try { 16927 var stream = SYSCALLS.getStreamFromFD(fd); 16928 FS.close(stream); 16929 return 0; 16930 } catch (e) { 16931 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16932 abort(e); 16933 return e.errno; 16934 } 16935 } 16936 function _fd_fdstat_get(fd, pbuf) { 16937 try { 16938 var stream = SYSCALLS.getStreamFromFD(fd); 16939 var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4; 16940 HEAP8[pbuf >> 0] = type; 16941 return 0; 16942 } catch (e) { 16943 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16944 abort(e); 16945 return e.errno; 16946 } 16947 } 16948 function _fd_read(fd, iov, iovcnt, pnum) { 16949 try { 16950 var stream = SYSCALLS.getStreamFromFD(fd); 16951 var num = SYSCALLS.doReadv(stream, iov, iovcnt); 16952 HEAP32[pnum >> 2] = num; 16953 return 0; 16954 } catch (e) { 16955 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16956 abort(e); 16957 return e.errno; 16958 } 16959 } 16960 function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { 16961 try { 16962 var stream = SYSCALLS.getStreamFromFD(fd); 16963 var HIGH_OFFSET = 4294967296; 16964 var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0); 16965 var DOUBLE_LIMIT = 9007199254740992; 16966 if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) { 16967 return -61; 16968 } 16969 FS.llseek(stream, offset, whence); 16970 tempI64 = [ 16971 stream.position >>> 0, 16972 (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil( 16973 (tempDouble - +(~~tempDouble >>> 0)) / 4294967296 16974 ) >>> 0 : 0) 16975 ], HEAP32[newOffset >> 2] = tempI64[0], HEAP32[newOffset + 4 >> 2] = tempI64[1]; 16976 if (stream.getdents && offset === 0 && whence === 0) 16977 stream.getdents = null; 16978 return 0; 16979 } catch (e) { 16980 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16981 abort(e); 16982 return e.errno; 16983 } 16984 } 16985 function _fd_write(fd, iov, iovcnt, pnum) { 16986 try { 16987 var stream = SYSCALLS.getStreamFromFD(fd); 16988 var num = SYSCALLS.doWritev(stream, iov, iovcnt); 16989 HEAP32[pnum >> 2] = num; 16990 return 0; 16991 } catch (e) { 16992 if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) 16993 abort(e); 16994 return e.errno; 16995 } 16996 } 16997 function _setTempRet0(val) { 16998 } 16999 function _time(ptr) { 17000 var ret = Date.now() / 1e3 | 0; 17001 if (ptr) { 17002 HEAP32[ptr >> 2] = ret; 17003 } 17004 return ret; 17005 } 17006 function _tzset() { 17007 if (_tzset.called) 17008 return; 17009 _tzset.called = true; 17010 var currentYear = new Date().getFullYear(); 17011 var winter = new Date(currentYear, 0, 1); 17012 var summer = new Date(currentYear, 6, 1); 17013 var winterOffset = winter.getTimezoneOffset(); 17014 var summerOffset = summer.getTimezoneOffset(); 17015 var stdTimezoneOffset = Math.max(winterOffset, summerOffset); 17016 HEAP32[__get_timezone() >> 2] = stdTimezoneOffset * 60; 17017 HEAP32[__get_daylight() >> 2] = Number(winterOffset != summerOffset); 17018 function extractZone(date) { 17019 var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); 17020 return match ? match[1] : "GMT"; 17021 } 17022 var winterName = extractZone(winter); 17023 var summerName = extractZone(summer); 17024 var winterNamePtr = allocateUTF8(winterName); 17025 var summerNamePtr = allocateUTF8(summerName); 17026 if (summerOffset < winterOffset) { 17027 HEAP32[__get_tzname() >> 2] = winterNamePtr; 17028 HEAP32[__get_tzname() + 4 >> 2] = summerNamePtr; 17029 } else { 17030 HEAP32[__get_tzname() >> 2] = summerNamePtr; 17031 HEAP32[__get_tzname() + 4 >> 2] = winterNamePtr; 17032 } 17033 } 17034 function _timegm(tmPtr) { 17035 _tzset(); 17036 var time = Date.UTC( 17037 HEAP32[tmPtr + 20 >> 2] + 1900, 17038 HEAP32[tmPtr + 16 >> 2], 17039 HEAP32[tmPtr + 12 >> 2], 17040 HEAP32[tmPtr + 8 >> 2], 17041 HEAP32[tmPtr + 4 >> 2], 17042 HEAP32[tmPtr >> 2], 17043 0 17044 ); 17045 var date = new Date(time); 17046 HEAP32[tmPtr + 24 >> 2] = date.getUTCDay(); 17047 var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); 17048 var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; 17049 HEAP32[tmPtr + 28 >> 2] = yday; 17050 return date.getTime() / 1e3 | 0; 17051 } 17052 var FSNode = function(parent, name, mode, rdev) { 17053 if (!parent) { 17054 parent = this; 17055 } 17056 this.parent = parent; 17057 this.mount = parent.mount; 17058 this.mounted = null; 17059 this.id = FS.nextInode++; 17060 this.name = name; 17061 this.mode = mode; 17062 this.node_ops = {}; 17063 this.stream_ops = {}; 17064 this.rdev = rdev; 17065 }; 17066 var readMode = 292 | 73; 17067 var writeMode = 146; 17068 Object.defineProperties(FSNode.prototype, { 17069 read: { 17070 get: function() { 17071 return (this.mode & readMode) === readMode; 17072 }, 17073 set: function(val) { 17074 val ? this.mode |= readMode : this.mode &= ~readMode; 17075 } 17076 }, 17077 write: { 17078 get: function() { 17079 return (this.mode & writeMode) === writeMode; 17080 }, 17081 set: function(val) { 17082 val ? this.mode |= writeMode : this.mode &= ~writeMode; 17083 } 17084 }, 17085 isFolder: { 17086 get: function() { 17087 return FS.isDir(this.mode); 17088 } 17089 }, 17090 isDevice: { 17091 get: function() { 17092 return FS.isChrdev(this.mode); 17093 } 17094 } 17095 }); 17096 FS.FSNode = FSNode; 17097 FS.staticInit(); 17098 { 17099 var fs = frozenFs; 17100 var NODEJS_PATH = path__default.default; 17101 NODEFS.staticInit(); 17102 } 17103 { 17104 var _wrapNodeError = function(func) { 17105 return function() { 17106 try { 17107 return func.apply(this, arguments); 17108 } catch (e) { 17109 if (!e.code) 17110 throw e; 17111 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 17112 } 17113 }; 17114 }; 17115 var VFS = Object.assign({}, FS); 17116 for (var _key in NODERAWFS) 17117 FS[_key] = _wrapNodeError(NODERAWFS[_key]); 17118 } 17119 function intArrayFromString(stringy, dontAddNull, length) { 17120 var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; 17121 var u8array = new Array(len); 17122 var numBytesWritten = stringToUTF8Array( 17123 stringy, 17124 u8array, 17125 0, 17126 u8array.length 17127 ); 17128 if (dontAddNull) 17129 u8array.length = numBytesWritten; 17130 return u8array; 17131 } 17132 function intArrayFromBase64(s) { 17133 { 17134 var buf; 17135 try { 17136 buf = Buffer.from(s, "base64"); 17137 } catch (_) { 17138 buf = new Buffer(s, "base64"); 17139 } 17140 return new Uint8Array( 17141 buf["buffer"], 17142 buf["byteOffset"], 17143 buf["byteLength"] 17144 ); 17145 } 17146 } 17147 function tryParseAsDataURI(filename) { 17148 if (!isDataURI(filename)) { 17149 return; 17150 } 17151 return intArrayFromBase64(filename.slice(dataURIPrefix.length)); 17152 } 17153 var asmLibraryArg = { 17154 s: ___gmtime_r, 17155 p: ___sys_chmod, 17156 e: ___sys_fcntl64, 17157 k: ___sys_fstat64, 17158 o: ___sys_ioctl, 17159 q: ___sys_open, 17160 i: ___sys_rename, 17161 r: ___sys_rmdir, 17162 c: ___sys_stat64, 17163 h: ___sys_unlink, 17164 l: _emscripten_memcpy_big, 17165 m: _emscripten_resize_heap, 17166 f: _fd_close, 17167 j: _fd_fdstat_get, 17168 g: _fd_read, 17169 n: _fd_seek, 17170 d: _fd_write, 17171 a: _setTempRet0, 17172 b: _time, 17173 t: _timegm 17174 }; 17175 var asm = createWasm(); 17176 Module["___wasm_call_ctors"] = asm["v"]; 17177 Module["_zip_ext_count_symlinks"] = asm["w"]; 17178 Module["_zip_file_get_external_attributes"] = asm["x"]; 17179 Module["_zipstruct_stat"] = asm["y"]; 17180 Module["_zipstruct_statS"] = asm["z"]; 17181 Module["_zipstruct_stat_name"] = asm["A"]; 17182 Module["_zipstruct_stat_index"] = asm["B"]; 17183 Module["_zipstruct_stat_size"] = asm["C"]; 17184 Module["_zipstruct_stat_mtime"] = asm["D"]; 17185 Module["_zipstruct_stat_crc"] = asm["E"]; 17186 Module["_zipstruct_error"] = asm["F"]; 17187 Module["_zipstruct_errorS"] = asm["G"]; 17188 Module["_zipstruct_error_code_zip"] = asm["H"]; 17189 Module["_zipstruct_stat_comp_size"] = asm["I"]; 17190 Module["_zipstruct_stat_comp_method"] = asm["J"]; 17191 Module["_zip_close"] = asm["K"]; 17192 Module["_zip_delete"] = asm["L"]; 17193 Module["_zip_dir_add"] = asm["M"]; 17194 Module["_zip_discard"] = asm["N"]; 17195 Module["_zip_error_init_with_code"] = asm["O"]; 17196 Module["_zip_get_error"] = asm["P"]; 17197 Module["_zip_file_get_error"] = asm["Q"]; 17198 Module["_zip_error_strerror"] = asm["R"]; 17199 Module["_zip_fclose"] = asm["S"]; 17200 Module["_zip_file_add"] = asm["T"]; 17201 Module["_free"] = asm["U"]; 17202 var _malloc = Module["_malloc"] = asm["V"]; 17203 var ___errno_location = Module["___errno_location"] = asm["W"]; 17204 Module["_zip_source_error"] = asm["X"]; 17205 Module["_zip_source_seek"] = asm["Y"]; 17206 Module["_zip_file_set_external_attributes"] = asm["Z"]; 17207 Module["_zip_file_set_mtime"] = asm["_"]; 17208 Module["_zip_fopen"] = asm["$"]; 17209 Module["_zip_fopen_index"] = asm["aa"]; 17210 Module["_zip_fread"] = asm["ba"]; 17211 Module["_zip_get_name"] = asm["ca"]; 17212 Module["_zip_get_num_entries"] = asm["da"]; 17213 Module["_zip_source_read"] = asm["ea"]; 17214 Module["_zip_name_locate"] = asm["fa"]; 17215 Module["_zip_open"] = asm["ga"]; 17216 Module["_zip_open_from_source"] = asm["ha"]; 17217 Module["_zip_set_file_compression"] = asm["ia"]; 17218 Module["_zip_source_buffer"] = asm["ja"]; 17219 Module["_zip_source_buffer_create"] = asm["ka"]; 17220 Module["_zip_source_close"] = asm["la"]; 17221 Module["_zip_source_free"] = asm["ma"]; 17222 Module["_zip_source_keep"] = asm["na"]; 17223 Module["_zip_source_open"] = asm["oa"]; 17224 Module["_zip_source_set_mtime"] = asm["qa"]; 17225 Module["_zip_source_tell"] = asm["ra"]; 17226 Module["_zip_stat"] = asm["sa"]; 17227 Module["_zip_stat_index"] = asm["ta"]; 17228 var __get_tzname = Module["__get_tzname"] = asm["ua"]; 17229 var __get_daylight = Module["__get_daylight"] = asm["va"]; 17230 var __get_timezone = Module["__get_timezone"] = asm["wa"]; 17231 var stackSave = Module["stackSave"] = asm["xa"]; 17232 var stackRestore = Module["stackRestore"] = asm["ya"]; 17233 var stackAlloc = Module["stackAlloc"] = asm["za"]; 17234 Module["cwrap"] = cwrap; 17235 Module["getValue"] = getValue; 17236 var calledRun; 17237 dependenciesFulfilled = function runCaller() { 17238 if (!calledRun) 17239 run(); 17240 if (!calledRun) 17241 dependenciesFulfilled = runCaller; 17242 }; 17243 function run(args) { 17244 if (runDependencies > 0) { 17245 return; 17246 } 17247 preRun(); 17248 if (runDependencies > 0) { 17249 return; 17250 } 17251 function doRun() { 17252 if (calledRun) 17253 return; 17254 calledRun = true; 17255 Module["calledRun"] = true; 17256 if (ABORT) 17257 return; 17258 initRuntime(); 17259 readyPromiseResolve(Module); 17260 if (Module["onRuntimeInitialized"]) 17261 Module["onRuntimeInitialized"](); 17262 postRun(); 17263 } 17264 if (Module["setStatus"]) { 17265 Module["setStatus"]("Running..."); 17266 setTimeout(function() { 17267 setTimeout(function() { 17268 Module["setStatus"](""); 17269 }, 1); 17270 doRun(); 17271 }, 1); 17272 } else { 17273 doRun(); 17274 } 17275 } 17276 Module["run"] = run; 17277 if (Module["preInit"]) { 17278 if (typeof Module["preInit"] == "function") 17279 Module["preInit"] = [Module["preInit"]]; 17280 while (Module["preInit"].length > 0) { 17281 Module["preInit"].pop()(); 17282 } 17283 } 17284 run(); 17285 return createModule2; 17286 }; 17287 }(); 17288 module.exports = createModule; 17289 }(libzipSync)); 17290 17291 const createModule = libzipSync.exports; 17292 17293 const number64 = [ 17294 `number`, 17295 `number` 17296 ]; 17297 var Errors = /* @__PURE__ */ ((Errors2) => { 17298 Errors2[Errors2["ZIP_ER_OK"] = 0] = "ZIP_ER_OK"; 17299 Errors2[Errors2["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK"; 17300 Errors2[Errors2["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME"; 17301 Errors2[Errors2["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE"; 17302 Errors2[Errors2["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK"; 17303 Errors2[Errors2["ZIP_ER_READ"] = 5] = "ZIP_ER_READ"; 17304 Errors2[Errors2["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE"; 17305 Errors2[Errors2["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC"; 17306 Errors2[Errors2["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED"; 17307 Errors2[Errors2["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT"; 17308 Errors2[Errors2["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS"; 17309 Errors2[Errors2["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN"; 17310 Errors2[Errors2["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN"; 17311 Errors2[Errors2["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB"; 17312 Errors2[Errors2["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY"; 17313 Errors2[Errors2["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED"; 17314 Errors2[Errors2["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP"; 17315 Errors2[Errors2["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF"; 17316 Errors2[Errors2["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL"; 17317 Errors2[Errors2["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP"; 17318 Errors2[Errors2["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL"; 17319 Errors2[Errors2["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS"; 17320 Errors2[Errors2["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE"; 17321 Errors2[Errors2["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED"; 17322 Errors2[Errors2["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP"; 17323 Errors2[Errors2["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY"; 17324 Errors2[Errors2["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD"; 17325 Errors2[Errors2["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD"; 17326 Errors2[Errors2["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP"; 17327 Errors2[Errors2["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE"; 17328 Errors2[Errors2["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL"; 17329 Errors2[Errors2["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA"; 17330 return Errors2; 17331 })(Errors || {}); 17332 const makeInterface = (libzip) => ({ 17333 get HEAP8() { 17334 return libzip.HEAP8; 17335 }, 17336 get HEAPU8() { 17337 return libzip.HEAPU8; 17338 }, 17339 errors: Errors, 17340 SEEK_SET: 0, 17341 SEEK_CUR: 1, 17342 SEEK_END: 2, 17343 ZIP_CHECKCONS: 4, 17344 ZIP_CREATE: 1, 17345 ZIP_EXCL: 2, 17346 ZIP_TRUNCATE: 8, 17347 ZIP_RDONLY: 16, 17348 ZIP_FL_OVERWRITE: 8192, 17349 ZIP_FL_COMPRESSED: 4, 17350 ZIP_OPSYS_DOS: 0, 17351 ZIP_OPSYS_AMIGA: 1, 17352 ZIP_OPSYS_OPENVMS: 2, 17353 ZIP_OPSYS_UNIX: 3, 17354 ZIP_OPSYS_VM_CMS: 4, 17355 ZIP_OPSYS_ATARI_ST: 5, 17356 ZIP_OPSYS_OS_2: 6, 17357 ZIP_OPSYS_MACINTOSH: 7, 17358 ZIP_OPSYS_Z_SYSTEM: 8, 17359 ZIP_OPSYS_CPM: 9, 17360 ZIP_OPSYS_WINDOWS_NTFS: 10, 17361 ZIP_OPSYS_MVS: 11, 17362 ZIP_OPSYS_VSE: 12, 17363 ZIP_OPSYS_ACORN_RISC: 13, 17364 ZIP_OPSYS_VFAT: 14, 17365 ZIP_OPSYS_ALTERNATE_MVS: 15, 17366 ZIP_OPSYS_BEOS: 16, 17367 ZIP_OPSYS_TANDEM: 17, 17368 ZIP_OPSYS_OS_400: 18, 17369 ZIP_OPSYS_OS_X: 19, 17370 ZIP_CM_DEFAULT: -1, 17371 ZIP_CM_STORE: 0, 17372 ZIP_CM_DEFLATE: 8, 17373 uint08S: libzip._malloc(1), 17374 uint16S: libzip._malloc(2), 17375 uint32S: libzip._malloc(4), 17376 uint64S: libzip._malloc(8), 17377 malloc: libzip._malloc, 17378 free: libzip._free, 17379 getValue: libzip.getValue, 17380 open: libzip.cwrap(`zip_open`, `number`, [`string`, `number`, `number`]), 17381 openFromSource: libzip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]), 17382 close: libzip.cwrap(`zip_close`, `number`, [`number`]), 17383 discard: libzip.cwrap(`zip_discard`, null, [`number`]), 17384 getError: libzip.cwrap(`zip_get_error`, `number`, [`number`]), 17385 getName: libzip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]), 17386 getNumEntries: libzip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]), 17387 delete: libzip.cwrap(`zip_delete`, `number`, [`number`, `number`]), 17388 stat: libzip.cwrap(`zip_stat`, `number`, [`number`, `string`, `number`, `number`]), 17389 statIndex: libzip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]), 17390 fopen: libzip.cwrap(`zip_fopen`, `number`, [`number`, `string`, `number`]), 17391 fopenIndex: libzip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]), 17392 fread: libzip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]), 17393 fclose: libzip.cwrap(`zip_fclose`, `number`, [`number`]), 17394 dir: { 17395 add: libzip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]) 17396 }, 17397 file: { 17398 add: libzip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]), 17399 getError: libzip.cwrap(`zip_file_get_error`, `number`, [`number`]), 17400 getExternalAttributes: libzip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), 17401 setExternalAttributes: libzip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), 17402 setMtime: libzip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]), 17403 setCompression: libzip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`]) 17404 }, 17405 ext: { 17406 countSymlinks: libzip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`]) 17407 }, 17408 error: { 17409 initWithCode: libzip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]), 17410 strerror: libzip.cwrap(`zip_error_strerror`, `string`, [`number`]) 17411 }, 17412 name: { 17413 locate: libzip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) 17414 }, 17415 source: { 17416 fromUnattachedBuffer: libzip.cwrap(`zip_source_buffer_create`, `number`, [`number`, `number`, `number`, `number`]), 17417 fromBuffer: libzip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), 17418 free: libzip.cwrap(`zip_source_free`, null, [`number`]), 17419 keep: libzip.cwrap(`zip_source_keep`, null, [`number`]), 17420 open: libzip.cwrap(`zip_source_open`, `number`, [`number`]), 17421 close: libzip.cwrap(`zip_source_close`, `number`, [`number`]), 17422 seek: libzip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]), 17423 tell: libzip.cwrap(`zip_source_tell`, `number`, [`number`]), 17424 read: libzip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]), 17425 error: libzip.cwrap(`zip_source_error`, `number`, [`number`]), 17426 setMtime: libzip.cwrap(`zip_source_set_mtime`, `number`, [`number`, `number`]) 17427 }, 17428 struct: { 17429 stat: libzip.cwrap(`zipstruct_stat`, `number`, []), 17430 statS: libzip.cwrap(`zipstruct_statS`, `number`, []), 17431 statName: libzip.cwrap(`zipstruct_stat_name`, `string`, [`number`]), 17432 statIndex: libzip.cwrap(`zipstruct_stat_index`, `number`, [`number`]), 17433 statSize: libzip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), 17434 statCompSize: libzip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]), 17435 statCompMethod: libzip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]), 17436 statMtime: libzip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]), 17437 statCrc: libzip.cwrap(`zipstruct_stat_crc`, `number`, [`number`]), 17438 error: libzip.cwrap(`zipstruct_error`, `number`, []), 17439 errorS: libzip.cwrap(`zipstruct_errorS`, `number`, []), 17440 errorCodeZip: libzip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`]) 17441 } 17442 }); 17443 17444 let mod = null; 17445 function getLibzipSync() { 17446 if (mod === null) 17447 mod = makeInterface(createModule()); 17448 return mod; 17449 } 17450 17451 var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => { 17452 ErrorCode2["API_ERROR"] = `API_ERROR`; 17453 ErrorCode2["BUILTIN_NODE_RESOLUTION_FAILED"] = `BUILTIN_NODE_RESOLUTION_FAILED`; 17454 ErrorCode2["EXPORTS_RESOLUTION_FAILED"] = `EXPORTS_RESOLUTION_FAILED`; 17455 ErrorCode2["MISSING_DEPENDENCY"] = `MISSING_DEPENDENCY`; 17456 ErrorCode2["MISSING_PEER_DEPENDENCY"] = `MISSING_PEER_DEPENDENCY`; 17457 ErrorCode2["QUALIFIED_PATH_RESOLUTION_FAILED"] = `QUALIFIED_PATH_RESOLUTION_FAILED`; 17458 ErrorCode2["INTERNAL"] = `INTERNAL`; 17459 ErrorCode2["UNDECLARED_DEPENDENCY"] = `UNDECLARED_DEPENDENCY`; 17460 ErrorCode2["UNSUPPORTED"] = `UNSUPPORTED`; 17461 return ErrorCode2; 17462 })(ErrorCode || {}); 17463 const MODULE_NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([ 17464 "BUILTIN_NODE_RESOLUTION_FAILED" /* BUILTIN_NODE_RESOLUTION_FAILED */, 17465 "MISSING_DEPENDENCY" /* MISSING_DEPENDENCY */, 17466 "MISSING_PEER_DEPENDENCY" /* MISSING_PEER_DEPENDENCY */, 17467 "QUALIFIED_PATH_RESOLUTION_FAILED" /* QUALIFIED_PATH_RESOLUTION_FAILED */, 17468 "UNDECLARED_DEPENDENCY" /* UNDECLARED_DEPENDENCY */ 17469 ]); 17470 function makeError(pnpCode, message, data = {}, code) { 17471 code != null ? code : code = MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode; 17472 const propertySpec = { 17473 configurable: true, 17474 writable: true, 17475 enumerable: false 17476 }; 17477 return Object.defineProperties(new Error(message), { 17478 code: { 17479 ...propertySpec, 17480 value: code 17481 }, 17482 pnpCode: { 17483 ...propertySpec, 17484 value: pnpCode 17485 }, 17486 data: { 17487 ...propertySpec, 17488 value: data 17489 } 17490 }); 17491 } 17492 function getIssuerModule(parent) { 17493 let issuer = parent; 17494 while (issuer && (issuer.id === `[eval]` || issuer.id === `<repl>` || !issuer.filename)) 17495 issuer = issuer.parent; 17496 return issuer || null; 17497 } 17498 function getPathForDisplay(p) { 17499 return npath.normalize(npath.fromPortablePath(p)); 17500 } 17501 17502 const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); 17503 const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2; 17504 17505 const builtinModules = new Set(require$$0.Module.builtinModules || Object.keys(process.binding(`natives`))); 17506 const isBuiltinModule = (request) => request.startsWith(`node:`) || builtinModules.has(request); 17507 function readPackageScope(checkPath) { 17508 const rootSeparatorIndex = checkPath.indexOf(npath.sep); 17509 let separatorIndex; 17510 do { 17511 separatorIndex = checkPath.lastIndexOf(npath.sep); 17512 checkPath = checkPath.slice(0, separatorIndex); 17513 if (checkPath.endsWith(`${npath.sep}node_modules`)) 17514 return false; 17515 const pjson = readPackage(checkPath + npath.sep); 17516 if (pjson) { 17517 return { 17518 data: pjson, 17519 path: checkPath 17520 }; 17521 } 17522 } while (separatorIndex > rootSeparatorIndex); 17523 return false; 17524 } 17525 function readPackage(requestPath) { 17526 const jsonPath = npath.resolve(requestPath, `package.json`); 17527 if (!fs__default.default.existsSync(jsonPath)) 17528 return null; 17529 return JSON.parse(fs__default.default.readFileSync(jsonPath, `utf8`)); 17530 } 17531 function ERR_REQUIRE_ESM(filename, parentPath = null) { 17532 const basename = parentPath && path__default.default.basename(filename) === path__default.default.basename(parentPath) ? filename : path__default.default.basename(filename); 17533 const msg = `require() of ES Module ${filename}${parentPath ? ` from ${parentPath}` : ``} not supported. 17534 Instead change the require of ${basename} in ${parentPath} to a dynamic import() which is available in all CommonJS modules.`; 17535 const err = new Error(msg); 17536 err.code = `ERR_REQUIRE_ESM`; 17537 return err; 17538 } 17539 function reportRequiredFilesToWatchMode(files) { 17540 if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { 17541 files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename)))); 17542 if (WATCH_MODE_MESSAGE_USES_ARRAYS) { 17543 process.send({ "watch:require": files }); 17544 } else { 17545 for (const filename of files) { 17546 process.send({ "watch:require": filename }); 17547 } 17548 } 17549 } 17550 } 17551 17552 function applyPatch(pnpapi, opts) { 17553 const defaultCache = {}; 17554 let enableNativeHooks = true; 17555 process.versions.pnp = String(pnpapi.VERSIONS.std); 17556 const moduleExports = require$$0__default.default; 17557 moduleExports.findPnpApi = (lookupSource) => { 17558 const lookupPath = lookupSource instanceof url.URL ? url.fileURLToPath(lookupSource) : lookupSource; 17559 const apiPath = opts.manager.findApiPathFor(lookupPath); 17560 if (apiPath === null) 17561 return null; 17562 const apiEntry = opts.manager.getApiEntry(apiPath, true); 17563 return apiEntry.instance.findPackageLocator(lookupPath) ? apiEntry.instance : null; 17564 }; 17565 function getRequireStack(parent) { 17566 const requireStack = []; 17567 for (let cursor = parent; cursor; cursor = cursor.parent) 17568 requireStack.push(cursor.filename || cursor.id); 17569 return requireStack; 17570 } 17571 const originalModuleLoad = require$$0.Module._load; 17572 require$$0.Module._load = function(request, parent, isMain) { 17573 if (!enableNativeHooks) 17574 return originalModuleLoad.call(require$$0.Module, request, parent, isMain); 17575 if (isBuiltinModule(request)) { 17576 try { 17577 enableNativeHooks = false; 17578 return originalModuleLoad.call(require$$0.Module, request, parent, isMain); 17579 } finally { 17580 enableNativeHooks = true; 17581 } 17582 } 17583 const parentApiPath = opts.manager.getApiPathFromParent(parent); 17584 const parentApi = parentApiPath !== null ? opts.manager.getApiEntry(parentApiPath, true).instance : null; 17585 if (parentApi === null) 17586 return originalModuleLoad(request, parent, isMain); 17587 if (request === `pnpapi`) 17588 return parentApi; 17589 const modulePath = require$$0.Module._resolveFilename(request, parent, isMain); 17590 const isOwnedByRuntime = parentApi !== null ? parentApi.findPackageLocator(modulePath) !== null : false; 17591 const moduleApiPath = isOwnedByRuntime ? parentApiPath : opts.manager.findApiPathFor(npath.dirname(modulePath)); 17592 const entry = moduleApiPath !== null ? opts.manager.getApiEntry(moduleApiPath) : { instance: null, cache: defaultCache }; 17593 const cacheEntry = entry.cache[modulePath]; 17594 if (cacheEntry) { 17595 if (cacheEntry.loaded === false && cacheEntry.isLoading !== true) { 17596 try { 17597 cacheEntry.isLoading = true; 17598 if (isMain) { 17599 process.mainModule = cacheEntry; 17600 cacheEntry.id = `.`; 17601 } 17602 cacheEntry.load(modulePath); 17603 } finally { 17604 cacheEntry.isLoading = false; 17605 } 17606 } 17607 return cacheEntry.exports; 17608 } 17609 const module = new require$$0.Module(modulePath, parent != null ? parent : void 0); 17610 module.pnpApiPath = moduleApiPath; 17611 reportRequiredFilesToWatchMode([modulePath]); 17612 entry.cache[modulePath] = module; 17613 if (isMain) { 17614 process.mainModule = module; 17615 module.id = `.`; 17616 } 17617 let hasThrown = true; 17618 try { 17619 module.isLoading = true; 17620 module.load(modulePath); 17621 hasThrown = false; 17622 } finally { 17623 module.isLoading = false; 17624 if (hasThrown) { 17625 delete require$$0.Module._cache[modulePath]; 17626 } 17627 } 17628 return module.exports; 17629 }; 17630 function getIssuerSpecsFromPaths(paths) { 17631 return paths.map((path) => ({ 17632 apiPath: opts.manager.findApiPathFor(path), 17633 path, 17634 module: null 17635 })); 17636 } 17637 function getIssuerSpecsFromModule(module) { 17638 var _a; 17639 if (module && module.id !== `<repl>` && module.id !== `internal/preload` && !module.parent && !module.filename && module.paths.length > 0) { 17640 return [{ 17641 apiPath: opts.manager.findApiPathFor(module.paths[0]), 17642 path: module.paths[0], 17643 module 17644 }]; 17645 } 17646 const issuer = getIssuerModule(module); 17647 if (issuer !== null) { 17648 const path = npath.dirname(issuer.filename); 17649 const apiPath = opts.manager.getApiPathFromParent(issuer); 17650 return [{ apiPath, path, module }]; 17651 } else { 17652 const path = process.cwd(); 17653 const apiPath = (_a = opts.manager.findApiPathFor(npath.join(path, `[file]`))) != null ? _a : opts.manager.getApiPathFromParent(null); 17654 return [{ apiPath, path, module }]; 17655 } 17656 } 17657 function makeFakeParent(path) { 17658 const fakeParent = new require$$0.Module(``); 17659 const fakeFilePath = npath.join(path, `[file]`); 17660 fakeParent.paths = require$$0.Module._nodeModulePaths(fakeFilePath); 17661 return fakeParent; 17662 } 17663 const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; 17664 const originalModuleResolveFilename = require$$0.Module._resolveFilename; 17665 require$$0.Module._resolveFilename = function(request, parent, isMain, options) { 17666 if (isBuiltinModule(request)) 17667 return request; 17668 if (!enableNativeHooks) 17669 return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options); 17670 if (options && options.plugnplay === false) { 17671 const { plugnplay, ...rest } = options; 17672 const forwardedOptions = Object.keys(rest).length > 0 ? rest : void 0; 17673 try { 17674 enableNativeHooks = false; 17675 return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, forwardedOptions); 17676 } finally { 17677 enableNativeHooks = true; 17678 } 17679 } 17680 if (options) { 17681 const optionNames = new Set(Object.keys(options)); 17682 optionNames.delete(`paths`); 17683 optionNames.delete(`plugnplay`); 17684 if (optionNames.size > 0) { 17685 throw makeError( 17686 ErrorCode.UNSUPPORTED, 17687 `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})` 17688 ); 17689 } 17690 } 17691 const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent); 17692 if (request.match(pathRegExp) === null) { 17693 const parentDirectory = (parent == null ? void 0 : parent.filename) != null ? npath.dirname(parent.filename) : null; 17694 const absoluteRequest = npath.isAbsolute(request) ? request : parentDirectory !== null ? npath.resolve(parentDirectory, request) : null; 17695 if (absoluteRequest !== null) { 17696 const apiPath = parentDirectory === npath.dirname(absoluteRequest) && (parent == null ? void 0 : parent.pnpApiPath) ? parent.pnpApiPath : opts.manager.findApiPathFor(absoluteRequest); 17697 if (apiPath !== null) { 17698 issuerSpecs.unshift({ 17699 apiPath, 17700 path: parentDirectory, 17701 module: null 17702 }); 17703 } 17704 } 17705 } 17706 let firstError; 17707 for (const { apiPath, path, module } of issuerSpecs) { 17708 let resolution; 17709 const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null; 17710 try { 17711 if (issuerApi !== null) { 17712 resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null); 17713 } else { 17714 if (path === null) 17715 throw new Error(`Assertion failed: Expected the path to be set`); 17716 resolution = originalModuleResolveFilename.call(require$$0.Module, request, module || makeFakeParent(path), isMain); 17717 } 17718 } catch (error) { 17719 firstError = firstError || error; 17720 continue; 17721 } 17722 if (resolution !== null) { 17723 return resolution; 17724 } 17725 } 17726 const requireStack = getRequireStack(parent); 17727 Object.defineProperty(firstError, `requireStack`, { 17728 configurable: true, 17729 writable: true, 17730 enumerable: false, 17731 value: requireStack 17732 }); 17733 if (requireStack.length > 0) 17734 firstError.message += ` 17735 Require stack: 17736 - ${requireStack.join(` 17737 - `)}`; 17738 if (typeof firstError.pnpCode === `string`) 17739 Error.captureStackTrace(firstError); 17740 throw firstError; 17741 }; 17742 const originalFindPath = require$$0.Module._findPath; 17743 require$$0.Module._findPath = function(request, paths, isMain) { 17744 if (request === `pnpapi`) 17745 return false; 17746 if (!enableNativeHooks) 17747 return originalFindPath.call(require$$0.Module, request, paths, isMain); 17748 const isAbsolute = npath.isAbsolute(request); 17749 if (isAbsolute) 17750 paths = [``]; 17751 else if (!paths || paths.length === 0) 17752 return false; 17753 for (const path of paths) { 17754 let resolution; 17755 try { 17756 const pnpApiPath = opts.manager.findApiPathFor(isAbsolute ? request : path); 17757 if (pnpApiPath !== null) { 17758 const api = opts.manager.getApiEntry(pnpApiPath, true).instance; 17759 resolution = api.resolveRequest(request, path) || false; 17760 } else { 17761 resolution = originalFindPath.call(require$$0.Module, request, [path], isMain); 17762 } 17763 } catch (error) { 17764 continue; 17765 } 17766 if (resolution) { 17767 return resolution; 17768 } 17769 } 17770 return false; 17771 }; 17772 const originalExtensionJSFunction = require$$0.Module._extensions[`.js`]; 17773 require$$0.Module._extensions[`.js`] = function(module, filename) { 17774 var _a, _b; 17775 if (filename.endsWith(`.js`)) { 17776 const pkg = readPackageScope(filename); 17777 if (pkg && ((_a = pkg.data) == null ? void 0 : _a.type) === `module`) { 17778 const err = ERR_REQUIRE_ESM(filename, (_b = module.parent) == null ? void 0 : _b.filename); 17779 Error.captureStackTrace(err); 17780 throw err; 17781 } 17782 } 17783 originalExtensionJSFunction.call(this, module, filename); 17784 }; 17785 const originalDlopen = process.dlopen; 17786 process.dlopen = function(...args) { 17787 const [module, filename, ...rest] = args; 17788 return originalDlopen.call( 17789 this, 17790 module, 17791 npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))), 17792 ...rest 17793 ); 17794 }; 17795 const originalEmit = process.emit; 17796 process.emit = function(name, data, ...args) { 17797 if (name === `warning` && typeof data === `object` && data.name === `ExperimentalWarning` && (data.message.includes(`--experimental-loader`) || data.message.includes(`Custom ESM Loaders is an experimental feature`))) 17798 return false; 17799 return originalEmit.apply(process, arguments); 17800 }; 17801 patchFs(fs__default.default, new PosixFS(opts.fakeFs)); 17802 } 17803 17804 function hydrateRuntimeState(data, { basePath }) { 17805 const portablePath = npath.toPortablePath(basePath); 17806 const absolutePortablePath = ppath.resolve(portablePath); 17807 const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null; 17808 const packageLocatorsByLocations = /* @__PURE__ */ new Map(); 17809 const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => { 17810 return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => { 17811 var _a; 17812 if (packageName === null !== (packageReference === null)) 17813 throw new Error(`Assertion failed: The name and reference should be null, or neither should`); 17814 const discardFromLookup = (_a = packageInformationData.discardFromLookup) != null ? _a : false; 17815 const packageLocator = { name: packageName, reference: packageReference }; 17816 const entry = packageLocatorsByLocations.get(packageInformationData.packageLocation); 17817 if (!entry) { 17818 packageLocatorsByLocations.set(packageInformationData.packageLocation, { locator: packageLocator, discardFromLookup }); 17819 } else { 17820 entry.discardFromLookup = entry.discardFromLookup && discardFromLookup; 17821 if (!discardFromLookup) { 17822 entry.locator = packageLocator; 17823 } 17824 } 17825 let resolvedPackageLocation = null; 17826 return [packageReference, { 17827 packageDependencies: new Map(packageInformationData.packageDependencies), 17828 packagePeers: new Set(packageInformationData.packagePeers), 17829 linkType: packageInformationData.linkType, 17830 discardFromLookup, 17831 get packageLocation() { 17832 return resolvedPackageLocation || (resolvedPackageLocation = ppath.join(absolutePortablePath, packageInformationData.packageLocation)); 17833 } 17834 }]; 17835 }))]; 17836 })); 17837 const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => { 17838 return [packageName, new Set(packageReferences)]; 17839 })); 17840 const fallbackPool = new Map(data.fallbackPool); 17841 const dependencyTreeRoots = data.dependencyTreeRoots; 17842 const enableTopLevelFallback = data.enableTopLevelFallback; 17843 return { 17844 basePath: portablePath, 17845 dependencyTreeRoots, 17846 enableTopLevelFallback, 17847 fallbackExclusionList, 17848 fallbackPool, 17849 ignorePattern, 17850 packageLocatorsByLocations, 17851 packageRegistry 17852 }; 17853 } 17854 17855 /** 17856 * @param {object} exports 17857 * @param {Set<string>} keys 17858 */ 17859 function loop(exports, keys) { 17860 if (typeof exports === 'string') { 17861 return exports; 17862 } 17863 17864 if (exports) { 17865 let idx, tmp; 17866 if (Array.isArray(exports)) { 17867 for (idx=0; idx < exports.length; idx++) { 17868 if (tmp = loop(exports[idx], keys)) return tmp; 17869 } 17870 } else { 17871 for (idx in exports) { 17872 if (keys.has(idx)) { 17873 return loop(exports[idx], keys); 17874 } 17875 } 17876 } 17877 } 17878 } 17879 17880 /** 17881 * @param {string} name The package name 17882 * @param {string} entry The target entry, eg "." 17883 * @param {number} [condition] Unmatched condition? 17884 */ 17885 function bail(name, entry, condition) { 17886 throw new Error( 17887 condition 17888 ? `No known conditions for "${entry}" entry in "${name}" package` 17889 : `Missing "${entry}" export in "${name}" package` 17890 ); 17891 } 17892 17893 /** 17894 * @param {string} name the package name 17895 * @param {string} entry the target path/import 17896 */ 17897 function toName(name, entry) { 17898 return entry === name ? '.' 17899 : entry[0] === '.' ? entry 17900 : entry.replace(new RegExp('^' + name + '\/'), './'); 17901 } 17902 17903 /** 17904 * @param {object} pkg package.json contents 17905 * @param {string} [entry] entry name or import path 17906 * @param {object} [options] 17907 * @param {boolean} [options.browser] 17908 * @param {boolean} [options.require] 17909 * @param {string[]} [options.conditions] 17910 * @param {boolean} [options.unsafe] 17911 */ 17912 function resolve(pkg, entry='.', options={}) { 17913 let { name, exports } = pkg; 17914 17915 if (exports) { 17916 let { browser, require, unsafe, conditions=[] } = options; 17917 17918 let target = toName(name, entry); 17919 if (target[0] !== '.') target = './' + target; 17920 17921 if (typeof exports === 'string') { 17922 return target === '.' ? exports : bail(name, target); 17923 } 17924 17925 let allows = new Set(['default', ...conditions]); 17926 unsafe || allows.add(require ? 'require' : 'import'); 17927 unsafe || allows.add(browser ? 'browser' : 'node'); 17928 17929 let key, tmp, isSingle=false; 17930 17931 for (key in exports) { 17932 isSingle = key[0] !== '.'; 17933 break; 17934 } 17935 17936 if (isSingle) { 17937 return target === '.' 17938 ? loop(exports, allows) || bail(name, target, 1) 17939 : bail(name, target); 17940 } 17941 17942 if (tmp = exports[target]) { 17943 return loop(tmp, allows) || bail(name, target, 1); 17944 } 17945 17946 for (key in exports) { 17947 tmp = key[key.length - 1]; 17948 if (tmp === '/' && target.startsWith(key)) { 17949 return (tmp = loop(exports[key], allows)) 17950 ? (tmp + target.substring(key.length)) 17951 : bail(name, target, 1); 17952 } 17953 if (tmp === '*' && target.startsWith(key.slice(0, -1))) { 17954 // do not trigger if no *content* to inject 17955 if (target.substring(key.length - 1).length > 0) { 17956 return (tmp = loop(exports[key], allows)) 17957 ? tmp.replace('*', target.substring(key.length - 1)) 17958 : bail(name, target, 1); 17959 } 17960 } 17961 } 17962 17963 return bail(name, target); 17964 } 17965 } 17966 17967 const ArrayIsArray = Array.isArray; 17968 const JSONStringify = JSON.stringify; 17969 const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; 17970 const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); 17971 const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); 17972 const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); 17973 const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); 17974 const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); 17975 const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); 17976 const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); 17977 const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); 17978 const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); 17979 const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); 17980 const SafeMap = Map; 17981 const JSONParse = JSON.parse; 17982 17983 function createErrorType(code, messageCreator, errorType) { 17984 return class extends errorType { 17985 constructor(...args) { 17986 super(messageCreator(...args)); 17987 this.code = code; 17988 this.name = `${errorType.name} [${code}]`; 17989 } 17990 }; 17991 } 17992 const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( 17993 `ERR_PACKAGE_IMPORT_NOT_DEFINED`, 17994 (specifier, packagePath, base) => { 17995 return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; 17996 }, 17997 TypeError 17998 ); 17999 const ERR_INVALID_MODULE_SPECIFIER = createErrorType( 18000 `ERR_INVALID_MODULE_SPECIFIER`, 18001 (request, reason, base = void 0) => { 18002 return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; 18003 }, 18004 TypeError 18005 ); 18006 const ERR_INVALID_PACKAGE_TARGET = createErrorType( 18007 `ERR_INVALID_PACKAGE_TARGET`, 18008 (pkgPath, key, target, isImport = false, base = void 0) => { 18009 const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); 18010 if (key === `.`) { 18011 assert__default.default(isImport === false); 18012 return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; 18013 } 18014 return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( 18015 target 18016 )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; 18017 }, 18018 Error 18019 ); 18020 const ERR_INVALID_PACKAGE_CONFIG = createErrorType( 18021 `ERR_INVALID_PACKAGE_CONFIG`, 18022 (path, base, message) => { 18023 return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; 18024 }, 18025 Error 18026 ); 18027 18028 function filterOwnProperties(source, keys) { 18029 const filtered = /* @__PURE__ */ Object.create(null); 18030 for (let i = 0; i < keys.length; i++) { 18031 const key = keys[i]; 18032 if (ObjectPrototypeHasOwnProperty(source, key)) { 18033 filtered[key] = source[key]; 18034 } 18035 } 18036 return filtered; 18037 } 18038 18039 const packageJSONCache = new SafeMap(); 18040 function getPackageConfig(path, specifier, base, readFileSyncFn) { 18041 const existing = packageJSONCache.get(path); 18042 if (existing !== void 0) { 18043 return existing; 18044 } 18045 const source = readFileSyncFn(path); 18046 if (source === void 0) { 18047 const packageConfig2 = { 18048 pjsonPath: path, 18049 exists: false, 18050 main: void 0, 18051 name: void 0, 18052 type: "none", 18053 exports: void 0, 18054 imports: void 0 18055 }; 18056 packageJSONCache.set(path, packageConfig2); 18057 return packageConfig2; 18058 } 18059 let packageJSON; 18060 try { 18061 packageJSON = JSONParse(source); 18062 } catch (error) { 18063 throw new ERR_INVALID_PACKAGE_CONFIG( 18064 path, 18065 (base ? `"${specifier}" from ` : "") + url.fileURLToPath(base || specifier), 18066 error.message 18067 ); 18068 } 18069 let { imports, main, name, type } = filterOwnProperties(packageJSON, [ 18070 "imports", 18071 "main", 18072 "name", 18073 "type" 18074 ]); 18075 const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; 18076 if (typeof imports !== "object" || imports === null) { 18077 imports = void 0; 18078 } 18079 if (typeof main !== "string") { 18080 main = void 0; 18081 } 18082 if (typeof name !== "string") { 18083 name = void 0; 18084 } 18085 if (type !== "module" && type !== "commonjs") { 18086 type = "none"; 18087 } 18088 const packageConfig = { 18089 pjsonPath: path, 18090 exists: true, 18091 main, 18092 name, 18093 type, 18094 exports, 18095 imports 18096 }; 18097 packageJSONCache.set(path, packageConfig); 18098 return packageConfig; 18099 } 18100 function getPackageScopeConfig(resolved, readFileSyncFn) { 18101 let packageJSONUrl = new URL("./package.json", resolved); 18102 while (true) { 18103 const packageJSONPath2 = packageJSONUrl.pathname; 18104 if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { 18105 break; 18106 } 18107 const packageConfig2 = getPackageConfig( 18108 url.fileURLToPath(packageJSONUrl), 18109 resolved, 18110 void 0, 18111 readFileSyncFn 18112 ); 18113 if (packageConfig2.exists) { 18114 return packageConfig2; 18115 } 18116 const lastPackageJSONUrl = packageJSONUrl; 18117 packageJSONUrl = new URL("../package.json", packageJSONUrl); 18118 if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { 18119 break; 18120 } 18121 } 18122 const packageJSONPath = url.fileURLToPath(packageJSONUrl); 18123 const packageConfig = { 18124 pjsonPath: packageJSONPath, 18125 exists: false, 18126 main: void 0, 18127 name: void 0, 18128 type: "none", 18129 exports: void 0, 18130 imports: void 0 18131 }; 18132 packageJSONCache.set(packageJSONPath, packageConfig); 18133 return packageConfig; 18134 } 18135 18136 /** 18137 @license 18138 Copyright Node.js contributors. All rights reserved. 18139 18140 Permission is hereby granted, free of charge, to any person obtaining a copy 18141 of this software and associated documentation files (the "Software"), to 18142 deal in the Software without restriction, including without limitation the 18143 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 18144 sell copies of the Software, and to permit persons to whom the Software is 18145 furnished to do so, subject to the following conditions: 18146 18147 The above copyright notice and this permission notice shall be included in 18148 all copies or substantial portions of the Software. 18149 18150 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18151 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18152 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18153 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18154 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18155 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 18156 IN THE SOFTWARE. 18157 */ 18158 function throwImportNotDefined(specifier, packageJSONUrl, base) { 18159 throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( 18160 specifier, 18161 packageJSONUrl && url.fileURLToPath(new URL(".", packageJSONUrl)), 18162 url.fileURLToPath(base) 18163 ); 18164 } 18165 function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { 18166 const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${url.fileURLToPath(packageJSONUrl)}`; 18167 throw new ERR_INVALID_MODULE_SPECIFIER( 18168 subpath, 18169 reason, 18170 base && url.fileURLToPath(base) 18171 ); 18172 } 18173 function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { 18174 if (typeof target === "object" && target !== null) { 18175 target = JSONStringify(target, null, ""); 18176 } else { 18177 target = `${target}`; 18178 } 18179 throw new ERR_INVALID_PACKAGE_TARGET( 18180 url.fileURLToPath(new URL(".", packageJSONUrl)), 18181 subpath, 18182 target, 18183 internal, 18184 base && url.fileURLToPath(base) 18185 ); 18186 } 18187 const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; 18188 const patternRegEx = /\*/g; 18189 function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { 18190 if (subpath !== "" && !pattern && target[target.length - 1] !== "/") 18191 throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); 18192 if (!StringPrototypeStartsWith(target, "./")) { 18193 if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { 18194 let isURL = false; 18195 try { 18196 new URL(target); 18197 isURL = true; 18198 } catch { 18199 } 18200 if (!isURL) { 18201 const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; 18202 return exportTarget; 18203 } 18204 } 18205 throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); 18206 } 18207 if (RegExpPrototypeExec( 18208 invalidSegmentRegEx, 18209 StringPrototypeSlice(target, 2) 18210 ) !== null) 18211 throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); 18212 const resolved = new URL(target, packageJSONUrl); 18213 const resolvedPath = resolved.pathname; 18214 const packagePath = new URL(".", packageJSONUrl).pathname; 18215 if (!StringPrototypeStartsWith(resolvedPath, packagePath)) 18216 throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); 18217 if (subpath === "") 18218 return resolved; 18219 if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { 18220 const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; 18221 throwInvalidSubpath(request, packageJSONUrl, internal, base); 18222 } 18223 if (pattern) { 18224 return new URL( 18225 RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) 18226 ); 18227 } 18228 return new URL(subpath, resolved); 18229 } 18230 function isArrayIndex(key) { 18231 const keyNum = +key; 18232 if (`${keyNum}` !== key) 18233 return false; 18234 return keyNum >= 0 && keyNum < 4294967295; 18235 } 18236 function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { 18237 if (typeof target === "string") { 18238 return resolvePackageTargetString( 18239 target, 18240 subpath, 18241 packageSubpath, 18242 packageJSONUrl, 18243 base, 18244 pattern, 18245 internal); 18246 } else if (ArrayIsArray(target)) { 18247 if (target.length === 0) { 18248 return null; 18249 } 18250 let lastException; 18251 for (let i = 0; i < target.length; i++) { 18252 const targetItem = target[i]; 18253 let resolveResult; 18254 try { 18255 resolveResult = resolvePackageTarget( 18256 packageJSONUrl, 18257 targetItem, 18258 subpath, 18259 packageSubpath, 18260 base, 18261 pattern, 18262 internal, 18263 conditions 18264 ); 18265 } catch (e) { 18266 lastException = e; 18267 if (e.code === "ERR_INVALID_PACKAGE_TARGET") { 18268 continue; 18269 } 18270 throw e; 18271 } 18272 if (resolveResult === void 0) { 18273 continue; 18274 } 18275 if (resolveResult === null) { 18276 lastException = null; 18277 continue; 18278 } 18279 return resolveResult; 18280 } 18281 if (lastException === void 0 || lastException === null) 18282 return lastException; 18283 throw lastException; 18284 } else if (typeof target === "object" && target !== null) { 18285 const keys = ObjectGetOwnPropertyNames(target); 18286 for (let i = 0; i < keys.length; i++) { 18287 const key = keys[i]; 18288 if (isArrayIndex(key)) { 18289 throw new ERR_INVALID_PACKAGE_CONFIG( 18290 url.fileURLToPath(packageJSONUrl), 18291 base, 18292 '"exports" cannot contain numeric property keys.' 18293 ); 18294 } 18295 } 18296 for (let i = 0; i < keys.length; i++) { 18297 const key = keys[i]; 18298 if (key === "default" || conditions.has(key)) { 18299 const conditionalTarget = target[key]; 18300 const resolveResult = resolvePackageTarget( 18301 packageJSONUrl, 18302 conditionalTarget, 18303 subpath, 18304 packageSubpath, 18305 base, 18306 pattern, 18307 internal, 18308 conditions 18309 ); 18310 if (resolveResult === void 0) 18311 continue; 18312 return resolveResult; 18313 } 18314 } 18315 return void 0; 18316 } else if (target === null) { 18317 return null; 18318 } 18319 throwInvalidPackageTarget( 18320 packageSubpath, 18321 target, 18322 packageJSONUrl, 18323 internal, 18324 base 18325 ); 18326 } 18327 function patternKeyCompare(a, b) { 18328 const aPatternIndex = StringPrototypeIndexOf(a, "*"); 18329 const bPatternIndex = StringPrototypeIndexOf(b, "*"); 18330 const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; 18331 const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; 18332 if (baseLenA > baseLenB) 18333 return -1; 18334 if (baseLenB > baseLenA) 18335 return 1; 18336 if (aPatternIndex === -1) 18337 return 1; 18338 if (bPatternIndex === -1) 18339 return -1; 18340 if (a.length > b.length) 18341 return -1; 18342 if (b.length > a.length) 18343 return 1; 18344 return 0; 18345 } 18346 function packageImportsResolve({ 18347 name, 18348 base, 18349 conditions, 18350 readFileSyncFn 18351 }) { 18352 if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { 18353 const reason = "is not a valid internal imports specifier name"; 18354 throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base)); 18355 } 18356 let packageJSONUrl; 18357 const packageConfig = getPackageScopeConfig(base, readFileSyncFn); 18358 if (packageConfig.exists) { 18359 packageJSONUrl = url.pathToFileURL(packageConfig.pjsonPath); 18360 const imports = packageConfig.imports; 18361 if (imports) { 18362 if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { 18363 const resolveResult = resolvePackageTarget( 18364 packageJSONUrl, 18365 imports[name], 18366 "", 18367 name, 18368 base, 18369 false, 18370 true, 18371 conditions 18372 ); 18373 if (resolveResult != null) { 18374 return resolveResult; 18375 } 18376 } else { 18377 let bestMatch = ""; 18378 let bestMatchSubpath; 18379 const keys = ObjectGetOwnPropertyNames(imports); 18380 for (let i = 0; i < keys.length; i++) { 18381 const key = keys[i]; 18382 const patternIndex = StringPrototypeIndexOf(key, "*"); 18383 if (patternIndex !== -1 && StringPrototypeStartsWith( 18384 name, 18385 StringPrototypeSlice(key, 0, patternIndex) 18386 )) { 18387 const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); 18388 if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { 18389 bestMatch = key; 18390 bestMatchSubpath = StringPrototypeSlice( 18391 name, 18392 patternIndex, 18393 name.length - patternTrailer.length 18394 ); 18395 } 18396 } 18397 } 18398 if (bestMatch) { 18399 const target = imports[bestMatch]; 18400 const resolveResult = resolvePackageTarget( 18401 packageJSONUrl, 18402 target, 18403 bestMatchSubpath, 18404 bestMatch, 18405 base, 18406 true, 18407 true, 18408 conditions 18409 ); 18410 if (resolveResult != null) { 18411 return resolveResult; 18412 } 18413 } 18414 } 18415 } 18416 } 18417 throwImportNotDefined(name, packageJSONUrl, base); 18418 } 18419 18420 function makeApi(runtimeState, opts) { 18421 const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; 18422 const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); 18423 const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; 18424 const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/; 18425 const isDirRegExp = /\/$/; 18426 const isRelativeRegexp = /^\.{0,2}\//; 18427 const topLevelLocator = { name: null, reference: null }; 18428 const fallbackLocators = []; 18429 const emittedWarnings = /* @__PURE__ */ new Set(); 18430 if (runtimeState.enableTopLevelFallback === true) 18431 fallbackLocators.push(topLevelLocator); 18432 if (opts.compatibilityMode !== false) { 18433 for (const name of [`react-scripts`, `gatsby`]) { 18434 const packageStore = runtimeState.packageRegistry.get(name); 18435 if (packageStore) { 18436 for (const reference of packageStore.keys()) { 18437 if (reference === null) { 18438 throw new Error(`Assertion failed: This reference shouldn't be null`); 18439 } else { 18440 fallbackLocators.push({ name, reference }); 18441 } 18442 } 18443 } 18444 } 18445 } 18446 const { 18447 ignorePattern, 18448 packageRegistry, 18449 packageLocatorsByLocations 18450 } = runtimeState; 18451 function makeLogEntry(name, args) { 18452 return { 18453 fn: name, 18454 args, 18455 error: null, 18456 result: null 18457 }; 18458 } 18459 function trace(entry) { 18460 var _a, _b, _c, _d, _e, _f; 18461 const colors = (_c = (_b = (_a = process.stderr) == null ? void 0 : _a.hasColors) == null ? void 0 : _b.call(_a)) != null ? _c : process.stdout.isTTY; 18462 const c = (n, str) => `\x1B[${n}m${str}\x1B[0m`; 18463 const error = entry.error; 18464 if (error) 18465 console.error(c(`31;1`, `\u2716 ${(_d = entry.error) == null ? void 0 : _d.message.replace(/\n.*/s, ``)}`)); 18466 else 18467 console.error(c(`33;1`, `\u203C Resolution`)); 18468 if (entry.args.length > 0) 18469 console.error(); 18470 for (const arg of entry.args) 18471 console.error(` ${c(`37;1`, `In \u2190`)} ${nodeUtils.inspect(arg, { colors, compact: true })}`); 18472 if (entry.result) { 18473 console.error(); 18474 console.error(` ${c(`37;1`, `Out \u2192`)} ${nodeUtils.inspect(entry.result, { colors, compact: true })}`); 18475 } 18476 const stack = (_f = (_e = new Error().stack.match(/(?<=^ +)at.*/gm)) == null ? void 0 : _e.slice(2)) != null ? _f : []; 18477 if (stack.length > 0) { 18478 console.error(); 18479 for (const line of stack) { 18480 console.error(` ${c(`38;5;244`, line)}`); 18481 } 18482 } 18483 console.error(); 18484 } 18485 function maybeLog(name, fn) { 18486 if (opts.allowDebug === false) 18487 return fn; 18488 if (Number.isFinite(debugLevel)) { 18489 if (debugLevel >= 2) { 18490 return (...args) => { 18491 const logEntry = makeLogEntry(name, args); 18492 try { 18493 return logEntry.result = fn(...args); 18494 } catch (error) { 18495 throw logEntry.error = error; 18496 } finally { 18497 trace(logEntry); 18498 } 18499 }; 18500 } else if (debugLevel >= 1) { 18501 return (...args) => { 18502 try { 18503 return fn(...args); 18504 } catch (error) { 18505 const logEntry = makeLogEntry(name, args); 18506 logEntry.error = error; 18507 trace(logEntry); 18508 throw error; 18509 } 18510 }; 18511 } 18512 } 18513 return fn; 18514 } 18515 function getPackageInformationSafe(packageLocator) { 18516 const packageInformation = getPackageInformation(packageLocator); 18517 if (!packageInformation) { 18518 throw makeError( 18519 ErrorCode.INTERNAL, 18520 `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)` 18521 ); 18522 } 18523 return packageInformation; 18524 } 18525 function isDependencyTreeRoot(packageLocator) { 18526 if (packageLocator.name === null) 18527 return true; 18528 for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) 18529 if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) 18530 return true; 18531 return false; 18532 } 18533 const defaultExportsConditions = /* @__PURE__ */ new Set([`default`, `node`, `require`]); 18534 function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions) { 18535 const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), { 18536 resolveIgnored: true, 18537 includeDiscardFromLookup: true 18538 }); 18539 if (locator === null) { 18540 throw makeError( 18541 ErrorCode.INTERNAL, 18542 `The locator that owns the "${unqualifiedPath}" path can't be found inside the dependency tree (this is probably an internal error)` 18543 ); 18544 } 18545 const { packageLocation } = getPackageInformationSafe(locator); 18546 const manifestPath = ppath.join(packageLocation, Filename.manifest); 18547 if (!opts.fakeFs.existsSync(manifestPath)) 18548 return null; 18549 const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`)); 18550 let subpath = ppath.contains(packageLocation, unqualifiedPath); 18551 if (subpath === null) { 18552 throw makeError( 18553 ErrorCode.INTERNAL, 18554 `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)` 18555 ); 18556 } 18557 if (!isRelativeRegexp.test(subpath)) 18558 subpath = `./${subpath}`; 18559 let resolvedExport; 18560 try { 18561 resolvedExport = resolve(pkgJson, ppath.normalize(subpath), { 18562 conditions, 18563 unsafe: true 18564 }); 18565 } catch (error) { 18566 throw makeError( 18567 ErrorCode.EXPORTS_RESOLUTION_FAILED, 18568 error.message, 18569 { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions }, 18570 `ERR_PACKAGE_PATH_NOT_EXPORTED` 18571 ); 18572 } 18573 if (typeof resolvedExport === `string`) 18574 return ppath.join(packageLocation, resolvedExport); 18575 return null; 18576 } 18577 function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) { 18578 let stat; 18579 try { 18580 candidates.push(unqualifiedPath); 18581 stat = opts.fakeFs.statSync(unqualifiedPath); 18582 } catch (error) { 18583 } 18584 if (stat && !stat.isDirectory()) 18585 return opts.fakeFs.realpathSync(unqualifiedPath); 18586 if (stat && stat.isDirectory()) { 18587 let pkgJson; 18588 try { 18589 pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, Filename.manifest), `utf8`)); 18590 } catch (error) { 18591 } 18592 let nextUnqualifiedPath; 18593 if (pkgJson && pkgJson.main) 18594 nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main); 18595 if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) { 18596 const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { extensions }); 18597 if (resolution !== null) { 18598 return resolution; 18599 } 18600 } 18601 } 18602 for (let i = 0, length = extensions.length; i < length; i++) { 18603 const candidateFile = `${unqualifiedPath}${extensions[i]}`; 18604 candidates.push(candidateFile); 18605 if (opts.fakeFs.existsSync(candidateFile)) { 18606 return candidateFile; 18607 } 18608 } 18609 if (stat && stat.isDirectory()) { 18610 for (let i = 0, length = extensions.length; i < length; i++) { 18611 const candidateFile = ppath.format({ dir: unqualifiedPath, name: `index`, ext: extensions[i] }); 18612 candidates.push(candidateFile); 18613 if (opts.fakeFs.existsSync(candidateFile)) { 18614 return candidateFile; 18615 } 18616 } 18617 } 18618 return null; 18619 } 18620 function makeFakeModule(path) { 18621 const fakeModule = new require$$0.Module(path, null); 18622 fakeModule.filename = path; 18623 fakeModule.paths = require$$0.Module._nodeModulePaths(path); 18624 return fakeModule; 18625 } 18626 function callNativeResolution(request, issuer) { 18627 if (issuer.endsWith(`/`)) 18628 issuer = ppath.join(issuer, `internal.js`); 18629 return require$$0.Module._resolveFilename(npath.fromPortablePath(request), makeFakeModule(npath.fromPortablePath(issuer)), false, { plugnplay: false }); 18630 } 18631 function isPathIgnored(path) { 18632 if (ignorePattern === null) 18633 return false; 18634 const subPath = ppath.contains(runtimeState.basePath, path); 18635 if (subPath === null) 18636 return false; 18637 if (ignorePattern.test(subPath.replace(/\/$/, ``))) { 18638 return true; 18639 } else { 18640 return false; 18641 } 18642 } 18643 const VERSIONS = { std: 3, resolveVirtual: 1, getAllLocators: 1 }; 18644 const topLevel = topLevelLocator; 18645 function getPackageInformation({ name, reference }) { 18646 const packageInformationStore = packageRegistry.get(name); 18647 if (!packageInformationStore) 18648 return null; 18649 const packageInformation = packageInformationStore.get(reference); 18650 if (!packageInformation) 18651 return null; 18652 return packageInformation; 18653 } 18654 function findPackageDependents({ name, reference }) { 18655 const dependents = []; 18656 for (const [dependentName, packageInformationStore] of packageRegistry) { 18657 if (dependentName === null) 18658 continue; 18659 for (const [dependentReference, packageInformation] of packageInformationStore) { 18660 if (dependentReference === null) 18661 continue; 18662 const dependencyReference = packageInformation.packageDependencies.get(name); 18663 if (dependencyReference !== reference) 18664 continue; 18665 if (dependentName === name && dependentReference === reference) 18666 continue; 18667 dependents.push({ 18668 name: dependentName, 18669 reference: dependentReference 18670 }); 18671 } 18672 } 18673 return dependents; 18674 } 18675 function findBrokenPeerDependencies(dependency, initialPackage) { 18676 const brokenPackages = /* @__PURE__ */ new Map(); 18677 const alreadyVisited = /* @__PURE__ */ new Set(); 18678 const traversal = (currentPackage) => { 18679 const identifier = JSON.stringify(currentPackage.name); 18680 if (alreadyVisited.has(identifier)) 18681 return; 18682 alreadyVisited.add(identifier); 18683 const dependents = findPackageDependents(currentPackage); 18684 for (const dependent of dependents) { 18685 const dependentInformation = getPackageInformationSafe(dependent); 18686 if (dependentInformation.packagePeers.has(dependency)) { 18687 traversal(dependent); 18688 } else { 18689 let brokenSet = brokenPackages.get(dependent.name); 18690 if (typeof brokenSet === `undefined`) 18691 brokenPackages.set(dependent.name, brokenSet = /* @__PURE__ */ new Set()); 18692 brokenSet.add(dependent.reference); 18693 } 18694 } 18695 }; 18696 traversal(initialPackage); 18697 const brokenList = []; 18698 for (const name of [...brokenPackages.keys()].sort()) 18699 for (const reference of [...brokenPackages.get(name)].sort()) 18700 brokenList.push({ name, reference }); 18701 return brokenList; 18702 } 18703 function findPackageLocator(location, { resolveIgnored = false, includeDiscardFromLookup = false } = {}) { 18704 if (isPathIgnored(location) && !resolveIgnored) 18705 return null; 18706 let relativeLocation = ppath.relative(runtimeState.basePath, location); 18707 if (!relativeLocation.match(isStrictRegExp)) 18708 relativeLocation = `./${relativeLocation}`; 18709 if (!relativeLocation.endsWith(`/`)) 18710 relativeLocation = `${relativeLocation}/`; 18711 do { 18712 const entry = packageLocatorsByLocations.get(relativeLocation); 18713 if (typeof entry === `undefined` || entry.discardFromLookup && !includeDiscardFromLookup) { 18714 relativeLocation = relativeLocation.substring(0, relativeLocation.lastIndexOf(`/`, relativeLocation.length - 2) + 1); 18715 continue; 18716 } 18717 return entry.locator; 18718 } while (relativeLocation !== ``); 18719 return null; 18720 } 18721 function tryReadFile(filePath) { 18722 try { 18723 return opts.fakeFs.readFileSync(npath.toPortablePath(filePath), `utf8`); 18724 } catch (err) { 18725 if (err.code === `ENOENT`) 18726 return void 0; 18727 throw err; 18728 } 18729 } 18730 function resolveToUnqualified(request, issuer, { considerBuiltins = true } = {}) { 18731 if (request.startsWith(`#`)) 18732 throw new Error(`resolveToUnqualified can not handle private import mappings`); 18733 if (request === `pnpapi`) 18734 return npath.toPortablePath(opts.pnpapiResolution); 18735 if (considerBuiltins && isBuiltinModule(request)) 18736 return null; 18737 const requestForDisplay = getPathForDisplay(request); 18738 const issuerForDisplay = issuer && getPathForDisplay(issuer); 18739 if (issuer && isPathIgnored(issuer)) { 18740 if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) { 18741 const result = callNativeResolution(request, issuer); 18742 if (result === false) { 18743 throw makeError( 18744 ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, 18745 `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) 18746 18747 Require request: "${requestForDisplay}" 18748 Required by: ${issuerForDisplay} 18749 `, 18750 { request: requestForDisplay, issuer: issuerForDisplay } 18751 ); 18752 } 18753 return npath.toPortablePath(result); 18754 } 18755 } 18756 let unqualifiedPath; 18757 const dependencyNameMatch = request.match(pathRegExp); 18758 if (!dependencyNameMatch) { 18759 if (ppath.isAbsolute(request)) { 18760 unqualifiedPath = ppath.normalize(request); 18761 } else { 18762 if (!issuer) { 18763 throw makeError( 18764 ErrorCode.API_ERROR, 18765 `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, 18766 { request: requestForDisplay, issuer: issuerForDisplay } 18767 ); 18768 } 18769 const absoluteIssuer = ppath.resolve(issuer); 18770 if (issuer.match(isDirRegExp)) { 18771 unqualifiedPath = ppath.normalize(ppath.join(absoluteIssuer, request)); 18772 } else { 18773 unqualifiedPath = ppath.normalize(ppath.join(ppath.dirname(absoluteIssuer), request)); 18774 } 18775 } 18776 } else { 18777 if (!issuer) { 18778 throw makeError( 18779 ErrorCode.API_ERROR, 18780 `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, 18781 { request: requestForDisplay, issuer: issuerForDisplay } 18782 ); 18783 } 18784 const [, dependencyName, subPath] = dependencyNameMatch; 18785 const issuerLocator = findPackageLocator(issuer); 18786 if (!issuerLocator) { 18787 const result = callNativeResolution(request, issuer); 18788 if (result === false) { 18789 throw makeError( 18790 ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, 18791 `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). 18792 18793 Require path: "${requestForDisplay}" 18794 Required by: ${issuerForDisplay} 18795 `, 18796 { request: requestForDisplay, issuer: issuerForDisplay } 18797 ); 18798 } 18799 return npath.toPortablePath(result); 18800 } 18801 const issuerInformation = getPackageInformationSafe(issuerLocator); 18802 let dependencyReference = issuerInformation.packageDependencies.get(dependencyName); 18803 let fallbackReference = null; 18804 if (dependencyReference == null) { 18805 if (issuerLocator.name !== null) { 18806 const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name); 18807 const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference); 18808 if (canUseFallbacks) { 18809 for (let t = 0, T = fallbackLocators.length; t < T; ++t) { 18810 const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]); 18811 const reference = fallbackInformation.packageDependencies.get(dependencyName); 18812 if (reference == null) 18813 continue; 18814 if (alwaysWarnOnFallback) 18815 fallbackReference = reference; 18816 else 18817 dependencyReference = reference; 18818 break; 18819 } 18820 if (runtimeState.enableTopLevelFallback) { 18821 if (dependencyReference == null && fallbackReference === null) { 18822 const reference = runtimeState.fallbackPool.get(dependencyName); 18823 if (reference != null) { 18824 fallbackReference = reference; 18825 } 18826 } 18827 } 18828 } 18829 } 18830 } 18831 let error = null; 18832 if (dependencyReference === null) { 18833 if (isDependencyTreeRoot(issuerLocator)) { 18834 error = makeError( 18835 ErrorCode.MISSING_PEER_DEPENDENCY, 18836 `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. 18837 18838 Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} 18839 Required by: ${issuerForDisplay} 18840 `, 18841 { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } 18842 ); 18843 } else { 18844 const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator); 18845 if (brokenAncestors.every((ancestor) => isDependencyTreeRoot(ancestor))) { 18846 error = makeError( 18847 ErrorCode.MISSING_PEER_DEPENDENCY, 18848 `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. 18849 18850 Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} 18851 Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) 18852 ${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} 18853 `).join(``)} 18854 `, 18855 { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } 18856 ); 18857 } else { 18858 error = makeError( 18859 ErrorCode.MISSING_PEER_DEPENDENCY, 18860 `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. 18861 18862 Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} 18863 Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) 18864 18865 ${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} 18866 `).join(``)} 18867 `, 18868 { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } 18869 ); 18870 } 18871 } 18872 } else if (dependencyReference === void 0) { 18873 if (!considerBuiltins && isBuiltinModule(request)) { 18874 if (isDependencyTreeRoot(issuerLocator)) { 18875 error = makeError( 18876 ErrorCode.UNDECLARED_DEPENDENCY, 18877 `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. 18878 18879 Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} 18880 Required by: ${issuerForDisplay} 18881 `, 18882 { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } 18883 ); 18884 } else { 18885 error = makeError( 18886 ErrorCode.UNDECLARED_DEPENDENCY, 18887 `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound. 18888 18889 Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} 18890 Required by: ${issuerForDisplay} 18891 `, 18892 { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } 18893 ); 18894 } 18895 } else { 18896 if (isDependencyTreeRoot(issuerLocator)) { 18897 error = makeError( 18898 ErrorCode.UNDECLARED_DEPENDENCY, 18899 `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. 18900 18901 Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} 18902 Required by: ${issuerForDisplay} 18903 `, 18904 { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } 18905 ); 18906 } else { 18907 error = makeError( 18908 ErrorCode.UNDECLARED_DEPENDENCY, 18909 `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. 18910 18911 Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} 18912 Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) 18913 `, 18914 { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } 18915 ); 18916 } 18917 } 18918 } 18919 if (dependencyReference == null) { 18920 if (fallbackReference === null || error === null) 18921 throw error || new Error(`Assertion failed: Expected an error to have been set`); 18922 dependencyReference = fallbackReference; 18923 const message = error.message.replace(/\n.*/g, ``); 18924 error.message = message; 18925 if (!emittedWarnings.has(message) && debugLevel !== 0) { 18926 emittedWarnings.add(message); 18927 process.emitWarning(error); 18928 } 18929 } 18930 const dependencyLocator = Array.isArray(dependencyReference) ? { name: dependencyReference[0], reference: dependencyReference[1] } : { name: dependencyName, reference: dependencyReference }; 18931 const dependencyInformation = getPackageInformationSafe(dependencyLocator); 18932 if (!dependencyInformation.packageLocation) { 18933 throw makeError( 18934 ErrorCode.MISSING_DEPENDENCY, 18935 `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. 18936 18937 Required package: ${dependencyLocator.name}@${dependencyLocator.reference}${dependencyLocator.name !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} 18938 Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) 18939 `, 18940 { request: requestForDisplay, issuer: issuerForDisplay, dependencyLocator: Object.assign({}, dependencyLocator) } 18941 ); 18942 } 18943 const dependencyLocation = dependencyInformation.packageLocation; 18944 if (subPath) { 18945 unqualifiedPath = ppath.join(dependencyLocation, subPath); 18946 } else { 18947 unqualifiedPath = dependencyLocation; 18948 } 18949 } 18950 return ppath.normalize(unqualifiedPath); 18951 } 18952 function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions) { 18953 if (isStrictRegExp.test(request)) 18954 return unqualifiedPath; 18955 const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions); 18956 if (unqualifiedExportPath) { 18957 return ppath.normalize(unqualifiedExportPath); 18958 } else { 18959 return unqualifiedPath; 18960 } 18961 } 18962 function resolveUnqualified(unqualifiedPath, { extensions = Object.keys(require$$0.Module._extensions) } = {}) { 18963 var _a, _b; 18964 const candidates = []; 18965 const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }); 18966 if (qualifiedPath) { 18967 return ppath.normalize(qualifiedPath); 18968 } else { 18969 reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate))); 18970 const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); 18971 const containingPackage = findPackageLocator(unqualifiedPath); 18972 if (containingPackage) { 18973 const { packageLocation } = getPackageInformationSafe(containingPackage); 18974 let exists = true; 18975 try { 18976 opts.fakeFs.accessSync(packageLocation); 18977 } catch (err) { 18978 if ((err == null ? void 0 : err.code) === `ENOENT`) { 18979 exists = false; 18980 } else { 18981 const readableError = ((_b = (_a = err == null ? void 0 : err.message) != null ? _a : err) != null ? _b : `empty exception thrown`).replace(/^[A-Z]/, ($0) => $0.toLowerCase()); 18982 throw makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${readableError}). 18983 18984 Missing package: ${containingPackage.name}@${containingPackage.reference} 18985 Expected package location: ${getPathForDisplay(packageLocation)} 18986 `, { unqualifiedPath: unqualifiedPathForDisplay, extensions }); 18987 } 18988 } 18989 if (!exists) { 18990 const errorMessage = packageLocation.includes(`/unplugged/`) ? `Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).` : `Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.`; 18991 throw makeError( 18992 ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, 18993 `${errorMessage} 18994 18995 Missing package: ${containingPackage.name}@${containingPackage.reference} 18996 Expected package location: ${getPathForDisplay(packageLocation)} 18997 `, 18998 { unqualifiedPath: unqualifiedPathForDisplay, extensions } 18999 ); 19000 } 19001 } 19002 throw makeError( 19003 ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, 19004 `Qualified path resolution failed: we looked for the following paths, but none could be accessed. 19005 19006 Source path: ${unqualifiedPathForDisplay} 19007 ${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} 19008 `).join(``)}`, 19009 { unqualifiedPath: unqualifiedPathForDisplay, extensions } 19010 ); 19011 } 19012 } 19013 function resolvePrivateRequest(request, issuer, opts2) { 19014 var _a; 19015 if (!issuer) 19016 throw new Error(`Assertion failed: An issuer is required to resolve private import mappings`); 19017 const resolved = packageImportsResolve({ 19018 name: request, 19019 base: url.pathToFileURL(npath.fromPortablePath(issuer)), 19020 conditions: (_a = opts2.conditions) != null ? _a : defaultExportsConditions, 19021 readFileSyncFn: tryReadFile 19022 }); 19023 if (resolved instanceof URL) { 19024 return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions }); 19025 } else { 19026 if (resolved.startsWith(`#`)) 19027 throw new Error(`Mapping from one private import to another isn't allowed`); 19028 return resolveRequest(resolved, issuer, opts2); 19029 } 19030 } 19031 function resolveRequest(request, issuer, opts2 = {}) { 19032 try { 19033 if (request.startsWith(`#`)) 19034 return resolvePrivateRequest(request, issuer, opts2); 19035 const { considerBuiltins, extensions, conditions } = opts2; 19036 const unqualifiedPath = resolveToUnqualified(request, issuer, { considerBuiltins }); 19037 if (request === `pnpapi`) 19038 return unqualifiedPath; 19039 if (unqualifiedPath === null) 19040 return null; 19041 const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; 19042 const remappedPath = (!considerBuiltins || !isBuiltinModule(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions) : unqualifiedPath; 19043 return resolveUnqualified(remappedPath, { extensions }); 19044 } catch (error) { 19045 if (Object.prototype.hasOwnProperty.call(error, `pnpCode`)) 19046 Object.assign(error.data, { request: getPathForDisplay(request), issuer: issuer && getPathForDisplay(issuer) }); 19047 throw error; 19048 } 19049 } 19050 function resolveVirtual(request) { 19051 const normalized = ppath.normalize(request); 19052 const resolved = VirtualFS.resolveVirtual(normalized); 19053 return resolved !== normalized ? resolved : null; 19054 } 19055 return { 19056 VERSIONS, 19057 topLevel, 19058 getLocator: (name, referencish) => { 19059 if (Array.isArray(referencish)) { 19060 return { name: referencish[0], reference: referencish[1] }; 19061 } else { 19062 return { name, reference: referencish }; 19063 } 19064 }, 19065 getDependencyTreeRoots: () => { 19066 return [...runtimeState.dependencyTreeRoots]; 19067 }, 19068 getAllLocators() { 19069 const locators = []; 19070 for (const [name, entry] of packageRegistry) 19071 for (const reference of entry.keys()) 19072 if (name !== null && reference !== null) 19073 locators.push({ name, reference }); 19074 return locators; 19075 }, 19076 getPackageInformation: (locator) => { 19077 const info = getPackageInformation(locator); 19078 if (info === null) 19079 return null; 19080 const packageLocation = npath.fromPortablePath(info.packageLocation); 19081 const nativeInfo = { ...info, packageLocation }; 19082 return nativeInfo; 19083 }, 19084 findPackageLocator: (path) => { 19085 return findPackageLocator(npath.toPortablePath(path)); 19086 }, 19087 resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts2) => { 19088 const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; 19089 const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts2); 19090 if (resolution === null) 19091 return null; 19092 return npath.fromPortablePath(resolution); 19093 }), 19094 resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts2) => { 19095 return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts2)); 19096 }), 19097 resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts2) => { 19098 const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; 19099 const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts2); 19100 if (resolution === null) 19101 return null; 19102 return npath.fromPortablePath(resolution); 19103 }), 19104 resolveVirtual: maybeLog(`resolveVirtual`, (path) => { 19105 const result = resolveVirtual(npath.toPortablePath(path)); 19106 if (result !== null) { 19107 return npath.fromPortablePath(result); 19108 } else { 19109 return null; 19110 } 19111 }) 19112 }; 19113 } 19114 19115 function makeManager(pnpapi, opts) { 19116 const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null)); 19117 const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath)); 19118 const apiMetadata = /* @__PURE__ */ new Map([ 19119 [initialApiPath, { 19120 cache: require$$0.Module._cache, 19121 instance: pnpapi, 19122 stats: initialApiStats, 19123 lastRefreshCheck: Date.now() 19124 }] 19125 ]); 19126 function loadApiInstance(pnpApiPath) { 19127 const nativePath = npath.fromPortablePath(pnpApiPath); 19128 const module = new require$$0.Module(nativePath, null); 19129 module.load(nativePath); 19130 return module.exports; 19131 } 19132 function refreshApiEntry(pnpApiPath, apiEntry) { 19133 const timeNow = Date.now(); 19134 if (timeNow - apiEntry.lastRefreshCheck < 500) 19135 return; 19136 apiEntry.lastRefreshCheck = timeNow; 19137 const stats = opts.fakeFs.statSync(pnpApiPath); 19138 if (stats.mtime > apiEntry.stats.mtime) { 19139 process.emitWarning(`[Warning] The runtime detected new informations in a PnP file; reloading the API instance (${npath.fromPortablePath(pnpApiPath)})`); 19140 apiEntry.stats = stats; 19141 apiEntry.instance = loadApiInstance(pnpApiPath); 19142 } 19143 } 19144 function getApiEntry(pnpApiPath, refresh = false) { 19145 let apiEntry = apiMetadata.get(pnpApiPath); 19146 if (typeof apiEntry !== `undefined`) { 19147 if (refresh) { 19148 refreshApiEntry(pnpApiPath, apiEntry); 19149 } 19150 } else { 19151 apiMetadata.set(pnpApiPath, apiEntry = { 19152 cache: {}, 19153 instance: loadApiInstance(pnpApiPath), 19154 stats: opts.fakeFs.statSync(pnpApiPath), 19155 lastRefreshCheck: Date.now() 19156 }); 19157 } 19158 return apiEntry; 19159 } 19160 const findApiPathCache = /* @__PURE__ */ new Map(); 19161 function addToCacheAndReturn(start, end, target) { 19162 if (target !== null) 19163 target = VirtualFS.resolveVirtual(target); 19164 let curr; 19165 let next = start; 19166 do { 19167 curr = next; 19168 findApiPathCache.set(curr, target); 19169 next = ppath.dirname(curr); 19170 } while (curr !== end); 19171 return target; 19172 } 19173 function findApiPathFor(modulePath) { 19174 let bestCandidate = null; 19175 for (const [apiPath, apiEntry] of apiMetadata) { 19176 const locator = apiEntry.instance.findPackageLocator(modulePath); 19177 if (!locator) 19178 continue; 19179 if (apiMetadata.size === 1) 19180 return apiPath; 19181 const packageInformation = apiEntry.instance.getPackageInformation(locator); 19182 if (!packageInformation) 19183 throw new Error(`Assertion failed: Couldn't get package information for '${modulePath}'`); 19184 if (!bestCandidate) 19185 bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [] }; 19186 if (packageInformation.packageLocation === bestCandidate.packageLocation) { 19187 bestCandidate.apiPaths.push(apiPath); 19188 } else if (packageInformation.packageLocation.length > bestCandidate.packageLocation.length) { 19189 bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [apiPath] }; 19190 } 19191 } 19192 if (bestCandidate) { 19193 if (bestCandidate.apiPaths.length === 1) 19194 return bestCandidate.apiPaths[0]; 19195 const controlSegment = bestCandidate.apiPaths.map((apiPath) => ` ${npath.fromPortablePath(apiPath)}`).join(` 19196 `); 19197 throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances. 19198 This is usually caused by using the global cache (enableGlobalCache: true) 19199 19200 Controlled by: 19201 ${controlSegment} 19202 `); 19203 } 19204 const start = ppath.resolve(npath.toPortablePath(modulePath)); 19205 let curr; 19206 let next = start; 19207 do { 19208 curr = next; 19209 const cached = findApiPathCache.get(curr); 19210 if (cached !== void 0) 19211 return addToCacheAndReturn(start, curr, cached); 19212 const cjsCandidate = ppath.join(curr, Filename.pnpCjs); 19213 if (opts.fakeFs.existsSync(cjsCandidate) && opts.fakeFs.statSync(cjsCandidate).isFile()) 19214 return addToCacheAndReturn(start, curr, cjsCandidate); 19215 const legacyCjsCandidate = ppath.join(curr, Filename.pnpJs); 19216 if (opts.fakeFs.existsSync(legacyCjsCandidate) && opts.fakeFs.statSync(legacyCjsCandidate).isFile()) 19217 return addToCacheAndReturn(start, curr, legacyCjsCandidate); 19218 next = ppath.dirname(curr); 19219 } while (curr !== PortablePath.root); 19220 return addToCacheAndReturn(start, curr, null); 19221 } 19222 function getApiPathFromParent(parent) { 19223 if (parent == null) 19224 return initialApiPath; 19225 if (typeof parent.pnpApiPath === `undefined`) { 19226 if (parent.filename !== null) { 19227 return parent.pnpApiPath = findApiPathFor(parent.filename); 19228 } else { 19229 return initialApiPath; 19230 } 19231 } 19232 if (parent.pnpApiPath !== null) 19233 return parent.pnpApiPath; 19234 return null; 19235 } 19236 return { 19237 getApiPathFromParent, 19238 findApiPathFor, 19239 getApiEntry 19240 }; 19241 } 19242 19243 const localFs = { ...fs__default.default }; 19244 const nodeFs = new NodeFS(localFs); 19245 const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState); 19246 const defaultPnpapiResolution = __filename; 19247 const defaultFsLayer = new VirtualFS({ 19248 baseFs: new ZipOpenFS({ 19249 baseFs: nodeFs, 19250 libzip: () => getLibzipSync(), 19251 maxOpenFiles: 80, 19252 readOnlyArchives: true 19253 }) 19254 }); 19255 class DynamicFS extends ProxiedFS { 19256 constructor() { 19257 super(ppath); 19258 this.baseFs = defaultFsLayer; 19259 } 19260 mapToBase(p) { 19261 return p; 19262 } 19263 mapFromBase(p) { 19264 return p; 19265 } 19266 } 19267 const dynamicFsLayer = new DynamicFS(); 19268 let manager; 19269 const defaultApi = Object.assign(makeApi(defaultRuntimeState, { 19270 fakeFs: dynamicFsLayer, 19271 pnpapiResolution: defaultPnpapiResolution 19272 }), { 19273 makeApi: ({ 19274 basePath = void 0, 19275 fakeFs = dynamicFsLayer, 19276 pnpapiResolution = defaultPnpapiResolution, 19277 ...rest 19278 }) => { 19279 const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState; 19280 return makeApi(apiRuntimeState, { 19281 fakeFs, 19282 pnpapiResolution, 19283 ...rest 19284 }); 19285 }, 19286 setup: (api) => { 19287 applyPatch(api || defaultApi, { 19288 fakeFs: defaultFsLayer, 19289 manager 19290 }); 19291 dynamicFsLayer.baseFs = new NodeFS(fs__default.default); 19292 } 19293 }); 19294 manager = makeManager(defaultApi, { 19295 fakeFs: dynamicFsLayer 19296 }); 19297 if (module.parent && module.parent.id === `internal/preload`) { 19298 defaultApi.setup(); 19299 if (module.filename) { 19300 delete require$$0__default.default._cache[module.filename]; 19301 } 19302 } 19303 if (process.mainModule === module) { 19304 const reportError = (code, message, data) => { 19305 process.stdout.write(`${JSON.stringify([{ code, message, data }, null])} 19306 `); 19307 }; 19308 const reportSuccess = (resolution) => { 19309 process.stdout.write(`${JSON.stringify([null, resolution])} 19310 `); 19311 }; 19312 const processResolution = (request, issuer) => { 19313 try { 19314 reportSuccess(defaultApi.resolveRequest(request, issuer)); 19315 } catch (error) { 19316 reportError(error.code, error.message, error.data); 19317 } 19318 }; 19319 const processRequest = (data) => { 19320 try { 19321 const [request, issuer] = JSON.parse(data); 19322 processResolution(request, issuer); 19323 } catch (error) { 19324 reportError(`INVALID_JSON`, error.message, error.data); 19325 } 19326 }; 19327 if (process.argv.length > 2) { 19328 if (process.argv.length !== 4) { 19329 process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} <request> <issuer> 19330 `); 19331 process.exitCode = 64; 19332 } else { 19333 processResolution(process.argv[2], process.argv[3]); 19334 } 19335 } else { 19336 let buffer = ``; 19337 const decoder = new StringDecoder__default.default.StringDecoder(); 19338 process.stdin.on(`data`, (chunk) => { 19339 buffer += decoder.write(chunk); 19340 do { 19341 const index = buffer.indexOf(` 19342 `); 19343 if (index === -1) 19344 break; 19345 const line = buffer.slice(0, index); 19346 buffer = buffer.slice(index + 1); 19347 processRequest(line); 19348 } while (true); 19349 }); 19350 } 19351 } 19352 19353 module.exports = defaultApi;