+978
-30
package-lock.json
+978
-30
package-lock.json
···
8
8
"name": "firehose-diff",
9
9
"version": "0.0.0",
10
10
"dependencies": {
11
+
"@emotion/react": "^11.14.0",
12
+
"@emotion/styled": "^11.14.0",
13
+
"@mui/material": "^7.1.0",
14
+
"@mui/x-charts": "^8.3.1",
11
15
"@skyware/firehose": "^0.5.1",
12
16
"react": "^19.1.0",
13
17
"react-dom": "^19.1.0"
···
97
101
"version": "7.27.1",
98
102
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
99
103
"integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
100
-
"dev": true,
101
104
"license": "MIT",
102
105
"dependencies": {
103
106
"@babel/helper-validator-identifier": "^7.27.1",
···
153
156
"version": "7.27.1",
154
157
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz",
155
158
"integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==",
156
-
"dev": true,
157
159
"license": "MIT",
158
160
"dependencies": {
159
161
"@babel/parser": "^7.27.1",
···
187
189
"version": "7.27.1",
188
190
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
189
191
"integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
190
-
"dev": true,
191
192
"license": "MIT",
192
193
"dependencies": {
193
194
"@babel/traverse": "^7.27.1",
···
229
230
"version": "7.27.1",
230
231
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
231
232
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
232
-
"dev": true,
233
233
"license": "MIT",
234
234
"engines": {
235
235
"node": ">=6.9.0"
···
239
239
"version": "7.27.1",
240
240
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
241
241
"integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
242
-
"dev": true,
243
242
"license": "MIT",
244
243
"engines": {
245
244
"node": ">=6.9.0"
···
273
272
"version": "7.27.2",
274
273
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz",
275
274
"integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==",
276
-
"dev": true,
277
275
"license": "MIT",
278
276
"dependencies": {
279
277
"@babel/types": "^7.27.1"
···
317
315
"@babel/core": "^7.0.0-0"
318
316
}
319
317
},
318
+
"node_modules/@babel/runtime": {
319
+
"version": "7.27.1",
320
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz",
321
+
"integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==",
322
+
"license": "MIT",
323
+
"engines": {
324
+
"node": ">=6.9.0"
325
+
}
326
+
},
320
327
"node_modules/@babel/template": {
321
328
"version": "7.27.2",
322
329
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
323
330
"integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
324
-
"dev": true,
325
331
"license": "MIT",
326
332
"dependencies": {
327
333
"@babel/code-frame": "^7.27.1",
···
336
342
"version": "7.27.1",
337
343
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz",
338
344
"integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==",
339
-
"dev": true,
340
345
"license": "MIT",
341
346
"dependencies": {
342
347
"@babel/code-frame": "^7.27.1",
···
355
360
"version": "11.12.0",
356
361
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
357
362
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
358
-
"dev": true,
359
363
"license": "MIT",
360
364
"engines": {
361
365
"node": ">=4"
···
365
369
"version": "7.27.1",
366
370
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz",
367
371
"integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==",
368
-
"dev": true,
369
372
"license": "MIT",
370
373
"dependencies": {
371
374
"@babel/helper-string-parser": "^7.27.1",
···
375
378
"node": ">=6.9.0"
376
379
}
377
380
},
381
+
"node_modules/@emotion/babel-plugin": {
382
+
"version": "11.13.5",
383
+
"resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz",
384
+
"integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==",
385
+
"license": "MIT",
386
+
"dependencies": {
387
+
"@babel/helper-module-imports": "^7.16.7",
388
+
"@babel/runtime": "^7.18.3",
389
+
"@emotion/hash": "^0.9.2",
390
+
"@emotion/memoize": "^0.9.0",
391
+
"@emotion/serialize": "^1.3.3",
392
+
"babel-plugin-macros": "^3.1.0",
393
+
"convert-source-map": "^1.5.0",
394
+
"escape-string-regexp": "^4.0.0",
395
+
"find-root": "^1.1.0",
396
+
"source-map": "^0.5.7",
397
+
"stylis": "4.2.0"
398
+
}
399
+
},
400
+
"node_modules/@emotion/babel-plugin/node_modules/convert-source-map": {
401
+
"version": "1.9.0",
402
+
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
403
+
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
404
+
"license": "MIT"
405
+
},
406
+
"node_modules/@emotion/cache": {
407
+
"version": "11.14.0",
408
+
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz",
409
+
"integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==",
410
+
"license": "MIT",
411
+
"dependencies": {
412
+
"@emotion/memoize": "^0.9.0",
413
+
"@emotion/sheet": "^1.4.0",
414
+
"@emotion/utils": "^1.4.2",
415
+
"@emotion/weak-memoize": "^0.4.0",
416
+
"stylis": "4.2.0"
417
+
}
418
+
},
419
+
"node_modules/@emotion/hash": {
420
+
"version": "0.9.2",
421
+
"resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
422
+
"integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
423
+
"license": "MIT"
424
+
},
425
+
"node_modules/@emotion/is-prop-valid": {
426
+
"version": "1.3.1",
427
+
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz",
428
+
"integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==",
429
+
"license": "MIT",
430
+
"dependencies": {
431
+
"@emotion/memoize": "^0.9.0"
432
+
}
433
+
},
434
+
"node_modules/@emotion/memoize": {
435
+
"version": "0.9.0",
436
+
"resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
437
+
"integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
438
+
"license": "MIT"
439
+
},
440
+
"node_modules/@emotion/react": {
441
+
"version": "11.14.0",
442
+
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz",
443
+
"integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
444
+
"license": "MIT",
445
+
"dependencies": {
446
+
"@babel/runtime": "^7.18.3",
447
+
"@emotion/babel-plugin": "^11.13.5",
448
+
"@emotion/cache": "^11.14.0",
449
+
"@emotion/serialize": "^1.3.3",
450
+
"@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
451
+
"@emotion/utils": "^1.4.2",
452
+
"@emotion/weak-memoize": "^0.4.0",
453
+
"hoist-non-react-statics": "^3.3.1"
454
+
},
455
+
"peerDependencies": {
456
+
"react": ">=16.8.0"
457
+
},
458
+
"peerDependenciesMeta": {
459
+
"@types/react": {
460
+
"optional": true
461
+
}
462
+
}
463
+
},
464
+
"node_modules/@emotion/serialize": {
465
+
"version": "1.3.3",
466
+
"resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
467
+
"integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
468
+
"license": "MIT",
469
+
"dependencies": {
470
+
"@emotion/hash": "^0.9.2",
471
+
"@emotion/memoize": "^0.9.0",
472
+
"@emotion/unitless": "^0.10.0",
473
+
"@emotion/utils": "^1.4.2",
474
+
"csstype": "^3.0.2"
475
+
}
476
+
},
477
+
"node_modules/@emotion/sheet": {
478
+
"version": "1.4.0",
479
+
"resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz",
480
+
"integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==",
481
+
"license": "MIT"
482
+
},
483
+
"node_modules/@emotion/styled": {
484
+
"version": "11.14.0",
485
+
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz",
486
+
"integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==",
487
+
"license": "MIT",
488
+
"dependencies": {
489
+
"@babel/runtime": "^7.18.3",
490
+
"@emotion/babel-plugin": "^11.13.5",
491
+
"@emotion/is-prop-valid": "^1.3.0",
492
+
"@emotion/serialize": "^1.3.3",
493
+
"@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
494
+
"@emotion/utils": "^1.4.2"
495
+
},
496
+
"peerDependencies": {
497
+
"@emotion/react": "^11.0.0-rc.0",
498
+
"react": ">=16.8.0"
499
+
},
500
+
"peerDependenciesMeta": {
501
+
"@types/react": {
502
+
"optional": true
503
+
}
504
+
}
505
+
},
506
+
"node_modules/@emotion/unitless": {
507
+
"version": "0.10.0",
508
+
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
509
+
"integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
510
+
"license": "MIT"
511
+
},
512
+
"node_modules/@emotion/use-insertion-effect-with-fallbacks": {
513
+
"version": "1.2.0",
514
+
"resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz",
515
+
"integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==",
516
+
"license": "MIT",
517
+
"peerDependencies": {
518
+
"react": ">=16.8.0"
519
+
}
520
+
},
521
+
"node_modules/@emotion/utils": {
522
+
"version": "1.4.2",
523
+
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
524
+
"integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==",
525
+
"license": "MIT"
526
+
},
527
+
"node_modules/@emotion/weak-memoize": {
528
+
"version": "0.4.0",
529
+
"resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz",
530
+
"integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
531
+
"license": "MIT"
532
+
},
378
533
"node_modules/@esbuild/aix-ppc64": {
379
534
"version": "0.25.4",
380
535
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz",
···
1021
1176
"version": "0.3.8",
1022
1177
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
1023
1178
"integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
1024
-
"dev": true,
1025
1179
"license": "MIT",
1026
1180
"dependencies": {
1027
1181
"@jridgewell/set-array": "^1.2.1",
···
1036
1190
"version": "3.1.2",
1037
1191
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
1038
1192
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
1039
-
"dev": true,
1040
1193
"license": "MIT",
1041
1194
"engines": {
1042
1195
"node": ">=6.0.0"
···
1046
1199
"version": "1.2.1",
1047
1200
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
1048
1201
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
1049
-
"dev": true,
1050
1202
"license": "MIT",
1051
1203
"engines": {
1052
1204
"node": ">=6.0.0"
···
1056
1208
"version": "1.5.0",
1057
1209
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
1058
1210
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
1059
-
"dev": true,
1060
1211
"license": "MIT"
1061
1212
},
1062
1213
"node_modules/@jridgewell/trace-mapping": {
1063
1214
"version": "0.3.25",
1064
1215
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
1065
1216
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
1066
-
"dev": true,
1067
1217
"license": "MIT",
1068
1218
"dependencies": {
1069
1219
"@jridgewell/resolve-uri": "^3.1.0",
···
1092
1242
"node": ">=18"
1093
1243
}
1094
1244
},
1245
+
"node_modules/@mui/core-downloads-tracker": {
1246
+
"version": "7.1.0",
1247
+
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.0.tgz",
1248
+
"integrity": "sha512-E0OqhZv548Qdc0PwWhLVA2zmjJZSTvaL4ZhoswmI8NJEC1tpW2js6LLP827jrW9MEiXYdz3QS6+hask83w74yQ==",
1249
+
"license": "MIT",
1250
+
"funding": {
1251
+
"type": "opencollective",
1252
+
"url": "https://opencollective.com/mui-org"
1253
+
}
1254
+
},
1255
+
"node_modules/@mui/material": {
1256
+
"version": "7.1.0",
1257
+
"resolved": "https://registry.npmjs.org/@mui/material/-/material-7.1.0.tgz",
1258
+
"integrity": "sha512-ahUJdrhEv+mCp4XHW+tHIEYzZMSRLg8z4AjUOsj44QpD1ZaMxQoVOG2xiHvLFdcsIPbgSRx1bg1eQSheHBgvtg==",
1259
+
"license": "MIT",
1260
+
"dependencies": {
1261
+
"@babel/runtime": "^7.27.1",
1262
+
"@mui/core-downloads-tracker": "^7.1.0",
1263
+
"@mui/system": "^7.1.0",
1264
+
"@mui/types": "^7.4.2",
1265
+
"@mui/utils": "^7.1.0",
1266
+
"@popperjs/core": "^2.11.8",
1267
+
"@types/react-transition-group": "^4.4.12",
1268
+
"clsx": "^2.1.1",
1269
+
"csstype": "^3.1.3",
1270
+
"prop-types": "^15.8.1",
1271
+
"react-is": "^19.1.0",
1272
+
"react-transition-group": "^4.4.5"
1273
+
},
1274
+
"engines": {
1275
+
"node": ">=14.0.0"
1276
+
},
1277
+
"funding": {
1278
+
"type": "opencollective",
1279
+
"url": "https://opencollective.com/mui-org"
1280
+
},
1281
+
"peerDependencies": {
1282
+
"@emotion/react": "^11.5.0",
1283
+
"@emotion/styled": "^11.3.0",
1284
+
"@mui/material-pigment-css": "^7.1.0",
1285
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
1286
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
1287
+
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
1288
+
},
1289
+
"peerDependenciesMeta": {
1290
+
"@emotion/react": {
1291
+
"optional": true
1292
+
},
1293
+
"@emotion/styled": {
1294
+
"optional": true
1295
+
},
1296
+
"@mui/material-pigment-css": {
1297
+
"optional": true
1298
+
},
1299
+
"@types/react": {
1300
+
"optional": true
1301
+
}
1302
+
}
1303
+
},
1304
+
"node_modules/@mui/private-theming": {
1305
+
"version": "7.1.0",
1306
+
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.1.0.tgz",
1307
+
"integrity": "sha512-4Kck4jxhqF6YxNwJdSae1WgDfXVg0lIH6JVJ7gtuFfuKcQCgomJxPvUEOySTFRPz1IZzwz5OAcToskRdffElDA==",
1308
+
"license": "MIT",
1309
+
"dependencies": {
1310
+
"@babel/runtime": "^7.27.1",
1311
+
"@mui/utils": "^7.1.0",
1312
+
"prop-types": "^15.8.1"
1313
+
},
1314
+
"engines": {
1315
+
"node": ">=14.0.0"
1316
+
},
1317
+
"funding": {
1318
+
"type": "opencollective",
1319
+
"url": "https://opencollective.com/mui-org"
1320
+
},
1321
+
"peerDependencies": {
1322
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
1323
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
1324
+
},
1325
+
"peerDependenciesMeta": {
1326
+
"@types/react": {
1327
+
"optional": true
1328
+
}
1329
+
}
1330
+
},
1331
+
"node_modules/@mui/styled-engine": {
1332
+
"version": "7.1.0",
1333
+
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.1.0.tgz",
1334
+
"integrity": "sha512-m0mJ0c6iRC+f9hMeRe0W7zZX1wme3oUX0+XTVHjPG7DJz6OdQ6K/ggEOq7ZdwilcpdsDUwwMfOmvO71qDkYd2w==",
1335
+
"license": "MIT",
1336
+
"dependencies": {
1337
+
"@babel/runtime": "^7.27.1",
1338
+
"@emotion/cache": "^11.13.5",
1339
+
"@emotion/serialize": "^1.3.3",
1340
+
"@emotion/sheet": "^1.4.0",
1341
+
"csstype": "^3.1.3",
1342
+
"prop-types": "^15.8.1"
1343
+
},
1344
+
"engines": {
1345
+
"node": ">=14.0.0"
1346
+
},
1347
+
"funding": {
1348
+
"type": "opencollective",
1349
+
"url": "https://opencollective.com/mui-org"
1350
+
},
1351
+
"peerDependencies": {
1352
+
"@emotion/react": "^11.4.1",
1353
+
"@emotion/styled": "^11.3.0",
1354
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
1355
+
},
1356
+
"peerDependenciesMeta": {
1357
+
"@emotion/react": {
1358
+
"optional": true
1359
+
},
1360
+
"@emotion/styled": {
1361
+
"optional": true
1362
+
}
1363
+
}
1364
+
},
1365
+
"node_modules/@mui/system": {
1366
+
"version": "7.1.0",
1367
+
"resolved": "https://registry.npmjs.org/@mui/system/-/system-7.1.0.tgz",
1368
+
"integrity": "sha512-iedAWgRJMCxeMHvkEhsDlbvkK+qKf9me6ofsf7twk/jfT4P1ImVf7Rwb5VubEA0sikrVL+1SkoZM41M4+LNAVA==",
1369
+
"license": "MIT",
1370
+
"dependencies": {
1371
+
"@babel/runtime": "^7.27.1",
1372
+
"@mui/private-theming": "^7.1.0",
1373
+
"@mui/styled-engine": "^7.1.0",
1374
+
"@mui/types": "^7.4.2",
1375
+
"@mui/utils": "^7.1.0",
1376
+
"clsx": "^2.1.1",
1377
+
"csstype": "^3.1.3",
1378
+
"prop-types": "^15.8.1"
1379
+
},
1380
+
"engines": {
1381
+
"node": ">=14.0.0"
1382
+
},
1383
+
"funding": {
1384
+
"type": "opencollective",
1385
+
"url": "https://opencollective.com/mui-org"
1386
+
},
1387
+
"peerDependencies": {
1388
+
"@emotion/react": "^11.5.0",
1389
+
"@emotion/styled": "^11.3.0",
1390
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
1391
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
1392
+
},
1393
+
"peerDependenciesMeta": {
1394
+
"@emotion/react": {
1395
+
"optional": true
1396
+
},
1397
+
"@emotion/styled": {
1398
+
"optional": true
1399
+
},
1400
+
"@types/react": {
1401
+
"optional": true
1402
+
}
1403
+
}
1404
+
},
1405
+
"node_modules/@mui/types": {
1406
+
"version": "7.4.2",
1407
+
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.2.tgz",
1408
+
"integrity": "sha512-edRc5JcLPsrlNFYyTPxds+d5oUovuUxnnDtpJUbP6WMeV4+6eaX/mqai1ZIWT62lCOe0nlrON0s9HDiv5en5bA==",
1409
+
"license": "MIT",
1410
+
"dependencies": {
1411
+
"@babel/runtime": "^7.27.1"
1412
+
},
1413
+
"peerDependencies": {
1414
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0"
1415
+
},
1416
+
"peerDependenciesMeta": {
1417
+
"@types/react": {
1418
+
"optional": true
1419
+
}
1420
+
}
1421
+
},
1422
+
"node_modules/@mui/utils": {
1423
+
"version": "7.1.0",
1424
+
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.1.0.tgz",
1425
+
"integrity": "sha512-/OM3S8kSHHmWNOP+NH9xEtpYSG10upXeQ0wLZnfDgmgadTAk5F4MQfFLyZ5FCRJENB3eRzltMmaNl6UtDnPovw==",
1426
+
"license": "MIT",
1427
+
"dependencies": {
1428
+
"@babel/runtime": "^7.27.1",
1429
+
"@mui/types": "^7.4.2",
1430
+
"@types/prop-types": "^15.7.14",
1431
+
"clsx": "^2.1.1",
1432
+
"prop-types": "^15.8.1",
1433
+
"react-is": "^19.1.0"
1434
+
},
1435
+
"engines": {
1436
+
"node": ">=14.0.0"
1437
+
},
1438
+
"funding": {
1439
+
"type": "opencollective",
1440
+
"url": "https://opencollective.com/mui-org"
1441
+
},
1442
+
"peerDependencies": {
1443
+
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
1444
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
1445
+
},
1446
+
"peerDependenciesMeta": {
1447
+
"@types/react": {
1448
+
"optional": true
1449
+
}
1450
+
}
1451
+
},
1452
+
"node_modules/@mui/x-charts": {
1453
+
"version": "8.3.1",
1454
+
"resolved": "https://registry.npmjs.org/@mui/x-charts/-/x-charts-8.3.1.tgz",
1455
+
"integrity": "sha512-jZClK40++ftcMwCeHKudGKmazd0MsgnrIP6RhYi2lH1kg0jK2upueokyxVIIxqquwWsQYE3WsflJBP61DvYXOQ==",
1456
+
"license": "MIT",
1457
+
"dependencies": {
1458
+
"@babel/runtime": "^7.27.1",
1459
+
"@mui/utils": "^7.0.2",
1460
+
"@mui/x-charts-vendor": "8.3.1",
1461
+
"@mui/x-internals": "8.3.1",
1462
+
"bezier-easing": "^2.1.0",
1463
+
"clsx": "^2.1.1",
1464
+
"prop-types": "^15.8.1",
1465
+
"reselect": "^5.1.1",
1466
+
"use-sync-external-store": "^1.5.0"
1467
+
},
1468
+
"engines": {
1469
+
"node": ">=14.0.0"
1470
+
},
1471
+
"peerDependencies": {
1472
+
"@emotion/react": "^11.9.0",
1473
+
"@emotion/styled": "^11.8.1",
1474
+
"@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0",
1475
+
"@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0",
1476
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
1477
+
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
1478
+
},
1479
+
"peerDependenciesMeta": {
1480
+
"@emotion/react": {
1481
+
"optional": true
1482
+
},
1483
+
"@emotion/styled": {
1484
+
"optional": true
1485
+
}
1486
+
}
1487
+
},
1488
+
"node_modules/@mui/x-charts-vendor": {
1489
+
"version": "8.3.1",
1490
+
"resolved": "https://registry.npmjs.org/@mui/x-charts-vendor/-/x-charts-vendor-8.3.1.tgz",
1491
+
"integrity": "sha512-UcUa7HDIpSfeVBYgeHewWoVALcB4Gg9we53l78j2cyadYBZOWdtLj8fezo9zAhxfZ5s9T+1yIyuD+CCnYJnUpQ==",
1492
+
"license": "MIT AND ISC",
1493
+
"dependencies": {
1494
+
"@babel/runtime": "^7.27.1",
1495
+
"@types/d3-color": "^3.1.3",
1496
+
"@types/d3-delaunay": "^6.0.4",
1497
+
"@types/d3-interpolate": "^3.0.4",
1498
+
"@types/d3-scale": "^4.0.9",
1499
+
"@types/d3-shape": "^3.1.7",
1500
+
"@types/d3-time": "^3.0.4",
1501
+
"@types/d3-timer": "^3.0.2",
1502
+
"d3-color": "^3.1.0",
1503
+
"d3-delaunay": "^6.0.4",
1504
+
"d3-interpolate": "^3.0.1",
1505
+
"d3-scale": "^4.0.2",
1506
+
"d3-shape": "^3.2.0",
1507
+
"d3-time": "^3.1.0",
1508
+
"d3-timer": "^3.0.1",
1509
+
"delaunator": "^5.0.1",
1510
+
"robust-predicates": "^3.0.2"
1511
+
}
1512
+
},
1513
+
"node_modules/@mui/x-internals": {
1514
+
"version": "8.3.1",
1515
+
"resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.3.1.tgz",
1516
+
"integrity": "sha512-8kIxT66cea63iEseEIHSWzKju2Wzl7MsWFoAUQEyRvYqOFa2j9Un2Vn/EH2vy9nm/MtMAYpwOE/nt68/KTIA2w==",
1517
+
"license": "MIT",
1518
+
"dependencies": {
1519
+
"@babel/runtime": "^7.27.1",
1520
+
"@mui/utils": "^7.0.2"
1521
+
},
1522
+
"engines": {
1523
+
"node": ">=14.0.0"
1524
+
},
1525
+
"funding": {
1526
+
"type": "opencollective",
1527
+
"url": "https://opencollective.com/mui-org"
1528
+
},
1529
+
"peerDependencies": {
1530
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
1531
+
}
1532
+
},
1095
1533
"node_modules/@nodelib/fs.scandir": {
1096
1534
"version": "2.1.5",
1097
1535
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
···
1128
1566
},
1129
1567
"engines": {
1130
1568
"node": ">= 8"
1569
+
}
1570
+
},
1571
+
"node_modules/@popperjs/core": {
1572
+
"version": "2.11.8",
1573
+
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
1574
+
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
1575
+
"license": "MIT",
1576
+
"funding": {
1577
+
"type": "opencollective",
1578
+
"url": "https://opencollective.com/popperjs"
1131
1579
}
1132
1580
},
1133
1581
"node_modules/@rollup/rollup-android-arm-eabi": {
···
1466
1914
"@babel/types": "^7.20.7"
1467
1915
}
1468
1916
},
1917
+
"node_modules/@types/d3-color": {
1918
+
"version": "3.1.3",
1919
+
"resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
1920
+
"integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
1921
+
"license": "MIT"
1922
+
},
1923
+
"node_modules/@types/d3-delaunay": {
1924
+
"version": "6.0.4",
1925
+
"resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
1926
+
"integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",
1927
+
"license": "MIT"
1928
+
},
1929
+
"node_modules/@types/d3-interpolate": {
1930
+
"version": "3.0.4",
1931
+
"resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
1932
+
"integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
1933
+
"license": "MIT",
1934
+
"dependencies": {
1935
+
"@types/d3-color": "*"
1936
+
}
1937
+
},
1938
+
"node_modules/@types/d3-path": {
1939
+
"version": "3.1.1",
1940
+
"resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
1941
+
"integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
1942
+
"license": "MIT"
1943
+
},
1944
+
"node_modules/@types/d3-scale": {
1945
+
"version": "4.0.9",
1946
+
"resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
1947
+
"integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
1948
+
"license": "MIT",
1949
+
"dependencies": {
1950
+
"@types/d3-time": "*"
1951
+
}
1952
+
},
1953
+
"node_modules/@types/d3-shape": {
1954
+
"version": "3.1.7",
1955
+
"resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
1956
+
"integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
1957
+
"license": "MIT",
1958
+
"dependencies": {
1959
+
"@types/d3-path": "*"
1960
+
}
1961
+
},
1962
+
"node_modules/@types/d3-time": {
1963
+
"version": "3.0.4",
1964
+
"resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
1965
+
"integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
1966
+
"license": "MIT"
1967
+
},
1968
+
"node_modules/@types/d3-timer": {
1969
+
"version": "3.0.2",
1970
+
"resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
1971
+
"integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
1972
+
"license": "MIT"
1973
+
},
1469
1974
"node_modules/@types/estree": {
1470
1975
"version": "1.0.7",
1471
1976
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
···
1480
1985
"dev": true,
1481
1986
"license": "MIT"
1482
1987
},
1988
+
"node_modules/@types/parse-json": {
1989
+
"version": "4.0.2",
1990
+
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
1991
+
"integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
1992
+
"license": "MIT"
1993
+
},
1994
+
"node_modules/@types/prop-types": {
1995
+
"version": "15.7.14",
1996
+
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
1997
+
"integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
1998
+
"license": "MIT"
1999
+
},
1483
2000
"node_modules/@types/react": {
1484
2001
"version": "19.1.4",
1485
2002
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.4.tgz",
1486
2003
"integrity": "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==",
1487
-
"dev": true,
1488
2004
"license": "MIT",
1489
2005
"dependencies": {
1490
2006
"csstype": "^3.0.2"
···
1498
2014
"license": "MIT",
1499
2015
"peerDependencies": {
1500
2016
"@types/react": "^19.0.0"
2017
+
}
2018
+
},
2019
+
"node_modules/@types/react-transition-group": {
2020
+
"version": "4.4.12",
2021
+
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz",
2022
+
"integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==",
2023
+
"license": "MIT",
2024
+
"peerDependencies": {
2025
+
"@types/react": "*"
1501
2026
}
1502
2027
},
1503
2028
"node_modules/@typescript-eslint/eslint-plugin": {
···
1826
2351
"dev": true,
1827
2352
"license": "Python-2.0"
1828
2353
},
2354
+
"node_modules/babel-plugin-macros": {
2355
+
"version": "3.1.0",
2356
+
"resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
2357
+
"integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
2358
+
"license": "MIT",
2359
+
"dependencies": {
2360
+
"@babel/runtime": "^7.12.5",
2361
+
"cosmiconfig": "^7.0.0",
2362
+
"resolve": "^1.19.0"
2363
+
},
2364
+
"engines": {
2365
+
"node": ">=10",
2366
+
"npm": ">=6"
2367
+
}
2368
+
},
1829
2369
"node_modules/balanced-match": {
1830
2370
"version": "1.0.2",
1831
2371
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1832
2372
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1833
2373
"dev": true,
2374
+
"license": "MIT"
2375
+
},
2376
+
"node_modules/bezier-easing": {
2377
+
"version": "2.1.0",
2378
+
"resolved": "https://registry.npmjs.org/bezier-easing/-/bezier-easing-2.1.0.tgz",
2379
+
"integrity": "sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==",
1834
2380
"license": "MIT"
1835
2381
},
1836
2382
"node_modules/body-parser": {
···
1956
2502
"version": "3.1.0",
1957
2503
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1958
2504
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1959
-
"dev": true,
1960
2505
"license": "MIT",
1961
2506
"engines": {
1962
2507
"node": ">=6"
···
2000
2545
"url": "https://github.com/chalk/chalk?sponsor=1"
2001
2546
}
2002
2547
},
2548
+
"node_modules/clsx": {
2549
+
"version": "2.1.1",
2550
+
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
2551
+
"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
2552
+
"license": "MIT",
2553
+
"engines": {
2554
+
"node": ">=6"
2555
+
}
2556
+
},
2003
2557
"node_modules/color-convert": {
2004
2558
"version": "2.0.1",
2005
2559
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
···
2091
2645
"node": ">= 0.10"
2092
2646
}
2093
2647
},
2648
+
"node_modules/cosmiconfig": {
2649
+
"version": "7.1.0",
2650
+
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
2651
+
"integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
2652
+
"license": "MIT",
2653
+
"dependencies": {
2654
+
"@types/parse-json": "^4.0.0",
2655
+
"import-fresh": "^3.2.1",
2656
+
"parse-json": "^5.0.0",
2657
+
"path-type": "^4.0.0",
2658
+
"yaml": "^1.10.0"
2659
+
},
2660
+
"engines": {
2661
+
"node": ">=10"
2662
+
}
2663
+
},
2664
+
"node_modules/cosmiconfig/node_modules/yaml": {
2665
+
"version": "1.10.2",
2666
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
2667
+
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
2668
+
"license": "ISC",
2669
+
"engines": {
2670
+
"node": ">= 6"
2671
+
}
2672
+
},
2094
2673
"node_modules/cross-spawn": {
2095
2674
"version": "7.0.6",
2096
2675
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
···
2110
2689
"version": "3.1.3",
2111
2690
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
2112
2691
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
2113
-
"dev": true,
2114
2692
"license": "MIT"
2115
2693
},
2694
+
"node_modules/d3-array": {
2695
+
"version": "3.2.4",
2696
+
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
2697
+
"integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
2698
+
"license": "ISC",
2699
+
"dependencies": {
2700
+
"internmap": "1 - 2"
2701
+
},
2702
+
"engines": {
2703
+
"node": ">=12"
2704
+
}
2705
+
},
2706
+
"node_modules/d3-color": {
2707
+
"version": "3.1.0",
2708
+
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
2709
+
"integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
2710
+
"license": "ISC",
2711
+
"engines": {
2712
+
"node": ">=12"
2713
+
}
2714
+
},
2715
+
"node_modules/d3-delaunay": {
2716
+
"version": "6.0.4",
2717
+
"resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
2718
+
"integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
2719
+
"license": "ISC",
2720
+
"dependencies": {
2721
+
"delaunator": "5"
2722
+
},
2723
+
"engines": {
2724
+
"node": ">=12"
2725
+
}
2726
+
},
2727
+
"node_modules/d3-format": {
2728
+
"version": "3.1.0",
2729
+
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
2730
+
"integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
2731
+
"license": "ISC",
2732
+
"engines": {
2733
+
"node": ">=12"
2734
+
}
2735
+
},
2736
+
"node_modules/d3-interpolate": {
2737
+
"version": "3.0.1",
2738
+
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
2739
+
"integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
2740
+
"license": "ISC",
2741
+
"dependencies": {
2742
+
"d3-color": "1 - 3"
2743
+
},
2744
+
"engines": {
2745
+
"node": ">=12"
2746
+
}
2747
+
},
2748
+
"node_modules/d3-path": {
2749
+
"version": "3.1.0",
2750
+
"resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
2751
+
"integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
2752
+
"license": "ISC",
2753
+
"engines": {
2754
+
"node": ">=12"
2755
+
}
2756
+
},
2757
+
"node_modules/d3-scale": {
2758
+
"version": "4.0.2",
2759
+
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
2760
+
"integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
2761
+
"license": "ISC",
2762
+
"dependencies": {
2763
+
"d3-array": "2.10.0 - 3",
2764
+
"d3-format": "1 - 3",
2765
+
"d3-interpolate": "1.2.0 - 3",
2766
+
"d3-time": "2.1.1 - 3",
2767
+
"d3-time-format": "2 - 4"
2768
+
},
2769
+
"engines": {
2770
+
"node": ">=12"
2771
+
}
2772
+
},
2773
+
"node_modules/d3-shape": {
2774
+
"version": "3.2.0",
2775
+
"resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
2776
+
"integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
2777
+
"license": "ISC",
2778
+
"dependencies": {
2779
+
"d3-path": "^3.1.0"
2780
+
},
2781
+
"engines": {
2782
+
"node": ">=12"
2783
+
}
2784
+
},
2785
+
"node_modules/d3-time": {
2786
+
"version": "3.1.0",
2787
+
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
2788
+
"integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
2789
+
"license": "ISC",
2790
+
"dependencies": {
2791
+
"d3-array": "2 - 3"
2792
+
},
2793
+
"engines": {
2794
+
"node": ">=12"
2795
+
}
2796
+
},
2797
+
"node_modules/d3-time-format": {
2798
+
"version": "4.1.0",
2799
+
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
2800
+
"integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
2801
+
"license": "ISC",
2802
+
"dependencies": {
2803
+
"d3-time": "1 - 3"
2804
+
},
2805
+
"engines": {
2806
+
"node": ">=12"
2807
+
}
2808
+
},
2809
+
"node_modules/d3-timer": {
2810
+
"version": "3.0.1",
2811
+
"resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
2812
+
"integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
2813
+
"license": "ISC",
2814
+
"engines": {
2815
+
"node": ">=12"
2816
+
}
2817
+
},
2116
2818
"node_modules/debug": {
2117
2819
"version": "4.4.1",
2118
2820
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
2119
2821
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
2120
-
"dev": true,
2121
2822
"license": "MIT",
2122
2823
"dependencies": {
2123
2824
"ms": "^2.1.3"
···
2138
2839
"dev": true,
2139
2840
"license": "MIT"
2140
2841
},
2842
+
"node_modules/delaunator": {
2843
+
"version": "5.0.1",
2844
+
"resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
2845
+
"integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
2846
+
"license": "ISC",
2847
+
"dependencies": {
2848
+
"robust-predicates": "^3.0.2"
2849
+
}
2850
+
},
2141
2851
"node_modules/depd": {
2142
2852
"version": "2.0.0",
2143
2853
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
···
2148
2858
"node": ">= 0.8"
2149
2859
}
2150
2860
},
2861
+
"node_modules/dom-helpers": {
2862
+
"version": "5.2.1",
2863
+
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
2864
+
"integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
2865
+
"license": "MIT",
2866
+
"dependencies": {
2867
+
"@babel/runtime": "^7.8.7",
2868
+
"csstype": "^3.0.2"
2869
+
}
2870
+
},
2151
2871
"node_modules/dunder-proto": {
2152
2872
"version": "1.0.1",
2153
2873
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
···
2185
2905
"license": "MIT",
2186
2906
"engines": {
2187
2907
"node": ">= 0.8"
2908
+
}
2909
+
},
2910
+
"node_modules/error-ex": {
2911
+
"version": "1.3.2",
2912
+
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
2913
+
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
2914
+
"license": "MIT",
2915
+
"dependencies": {
2916
+
"is-arrayish": "^0.2.1"
2188
2917
}
2189
2918
},
2190
2919
"node_modules/es-define-property": {
···
2282
3011
"version": "4.0.0",
2283
3012
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
2284
3013
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
2285
-
"dev": true,
2286
3014
"license": "MIT",
2287
3015
"engines": {
2288
3016
"node": ">=10"
···
2668
3396
"node": ">= 0.8"
2669
3397
}
2670
3398
},
3399
+
"node_modules/find-root": {
3400
+
"version": "1.1.0",
3401
+
"resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
3402
+
"integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
3403
+
"license": "MIT"
3404
+
},
2671
3405
"node_modules/find-up": {
2672
3406
"version": "5.0.0",
2673
3407
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
···
2745
3479
"version": "1.1.2",
2746
3480
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
2747
3481
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
2748
-
"dev": true,
2749
3482
"license": "MIT",
2750
3483
"funding": {
2751
3484
"url": "https://github.com/sponsors/ljharb"
···
2873
3606
"version": "2.0.2",
2874
3607
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
2875
3608
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
2876
-
"dev": true,
2877
3609
"license": "MIT",
2878
3610
"dependencies": {
2879
3611
"function-bind": "^1.1.2"
···
2882
3614
"node": ">= 0.4"
2883
3615
}
2884
3616
},
3617
+
"node_modules/hoist-non-react-statics": {
3618
+
"version": "3.3.2",
3619
+
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
3620
+
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
3621
+
"license": "BSD-3-Clause",
3622
+
"dependencies": {
3623
+
"react-is": "^16.7.0"
3624
+
}
3625
+
},
3626
+
"node_modules/hoist-non-react-statics/node_modules/react-is": {
3627
+
"version": "16.13.1",
3628
+
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
3629
+
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
3630
+
"license": "MIT"
3631
+
},
2885
3632
"node_modules/http-errors": {
2886
3633
"version": "2.0.0",
2887
3634
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
···
2926
3673
"version": "3.3.1",
2927
3674
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
2928
3675
"integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
2929
-
"dev": true,
2930
3676
"license": "MIT",
2931
3677
"dependencies": {
2932
3678
"parent-module": "^1.0.0",
···
2956
3702
"dev": true,
2957
3703
"license": "ISC"
2958
3704
},
3705
+
"node_modules/internmap": {
3706
+
"version": "2.0.3",
3707
+
"resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
3708
+
"integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
3709
+
"license": "ISC",
3710
+
"engines": {
3711
+
"node": ">=12"
3712
+
}
3713
+
},
2959
3714
"node_modules/ipaddr.js": {
2960
3715
"version": "1.9.1",
2961
3716
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
···
2966
3721
"node": ">= 0.10"
2967
3722
}
2968
3723
},
3724
+
"node_modules/is-arrayish": {
3725
+
"version": "0.2.1",
3726
+
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
3727
+
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
3728
+
"license": "MIT"
3729
+
},
3730
+
"node_modules/is-core-module": {
3731
+
"version": "2.16.1",
3732
+
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
3733
+
"integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
3734
+
"license": "MIT",
3735
+
"dependencies": {
3736
+
"hasown": "^2.0.2"
3737
+
},
3738
+
"engines": {
3739
+
"node": ">= 0.4"
3740
+
},
3741
+
"funding": {
3742
+
"url": "https://github.com/sponsors/ljharb"
3743
+
}
3744
+
},
2969
3745
"node_modules/is-extglob": {
2970
3746
"version": "2.1.1",
2971
3747
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
···
3017
3793
"version": "4.0.0",
3018
3794
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
3019
3795
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
3020
-
"dev": true,
3021
3796
"license": "MIT"
3022
3797
},
3023
3798
"node_modules/js-yaml": {
···
3037
3812
"version": "3.1.0",
3038
3813
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
3039
3814
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
3040
-
"dev": true,
3041
3815
"license": "MIT",
3042
3816
"bin": {
3043
3817
"jsesc": "bin/jsesc"
···
3053
3827
"dev": true,
3054
3828
"license": "MIT"
3055
3829
},
3830
+
"node_modules/json-parse-even-better-errors": {
3831
+
"version": "2.3.1",
3832
+
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
3833
+
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
3834
+
"license": "MIT"
3835
+
},
3056
3836
"node_modules/json-schema-traverse": {
3057
3837
"version": "0.4.1",
3058
3838
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
···
3104
3884
"node": ">= 0.8.0"
3105
3885
}
3106
3886
},
3887
+
"node_modules/lines-and-columns": {
3888
+
"version": "1.2.4",
3889
+
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
3890
+
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
3891
+
"license": "MIT"
3892
+
},
3107
3893
"node_modules/locate-path": {
3108
3894
"version": "6.0.0",
3109
3895
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
···
3127
3913
"dev": true,
3128
3914
"license": "MIT"
3129
3915
},
3916
+
"node_modules/loose-envify": {
3917
+
"version": "1.4.0",
3918
+
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
3919
+
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
3920
+
"license": "MIT",
3921
+
"dependencies": {
3922
+
"js-tokens": "^3.0.0 || ^4.0.0"
3923
+
},
3924
+
"bin": {
3925
+
"loose-envify": "cli.js"
3926
+
}
3927
+
},
3130
3928
"node_modules/lru-cache": {
3131
3929
"version": "5.1.1",
3132
3930
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
···
3234
4032
"version": "2.1.3",
3235
4033
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
3236
4034
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
3237
-
"dev": true,
3238
4035
"license": "MIT"
3239
4036
},
3240
4037
"node_modules/nanoevents": {
···
3293
4090
"version": "4.1.1",
3294
4091
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
3295
4092
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
3296
-
"dev": true,
3297
4093
"license": "MIT",
3298
4094
"engines": {
3299
4095
"node": ">=0.10.0"
···
3389
4185
"version": "1.0.1",
3390
4186
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
3391
4187
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
3392
-
"dev": true,
3393
4188
"license": "MIT",
3394
4189
"dependencies": {
3395
4190
"callsites": "^3.0.0"
···
3398
4193
"node": ">=6"
3399
4194
}
3400
4195
},
4196
+
"node_modules/parse-json": {
4197
+
"version": "5.2.0",
4198
+
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
4199
+
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
4200
+
"license": "MIT",
4201
+
"dependencies": {
4202
+
"@babel/code-frame": "^7.0.0",
4203
+
"error-ex": "^1.3.1",
4204
+
"json-parse-even-better-errors": "^2.3.0",
4205
+
"lines-and-columns": "^1.1.6"
4206
+
},
4207
+
"engines": {
4208
+
"node": ">=8"
4209
+
},
4210
+
"funding": {
4211
+
"url": "https://github.com/sponsors/sindresorhus"
4212
+
}
4213
+
},
3401
4214
"node_modules/parseurl": {
3402
4215
"version": "1.3.3",
3403
4216
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
···
3428
4241
"node": ">=8"
3429
4242
}
3430
4243
},
4244
+
"node_modules/path-parse": {
4245
+
"version": "1.0.7",
4246
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
4247
+
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
4248
+
"license": "MIT"
4249
+
},
3431
4250
"node_modules/path-to-regexp": {
3432
4251
"version": "8.2.0",
3433
4252
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz",
···
3438
4257
"node": ">=16"
3439
4258
}
3440
4259
},
4260
+
"node_modules/path-type": {
4261
+
"version": "4.0.0",
4262
+
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
4263
+
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
4264
+
"license": "MIT",
4265
+
"engines": {
4266
+
"node": ">=8"
4267
+
}
4268
+
},
3441
4269
"node_modules/picocolors": {
3442
4270
"version": "1.1.1",
3443
4271
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
3444
4272
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
3445
-
"dev": true,
3446
4273
"license": "ISC"
3447
4274
},
3448
4275
"node_modules/picomatch": {
···
3506
4333
"engines": {
3507
4334
"node": ">= 0.8.0"
3508
4335
}
4336
+
},
4337
+
"node_modules/prop-types": {
4338
+
"version": "15.8.1",
4339
+
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
4340
+
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
4341
+
"license": "MIT",
4342
+
"dependencies": {
4343
+
"loose-envify": "^1.4.0",
4344
+
"object-assign": "^4.1.1",
4345
+
"react-is": "^16.13.1"
4346
+
}
4347
+
},
4348
+
"node_modules/prop-types/node_modules/react-is": {
4349
+
"version": "16.13.1",
4350
+
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
4351
+
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
4352
+
"license": "MIT"
3509
4353
},
3510
4354
"node_modules/proxy-addr": {
3511
4355
"version": "2.0.7",
···
3615
4459
"react": "^19.1.0"
3616
4460
}
3617
4461
},
4462
+
"node_modules/react-is": {
4463
+
"version": "19.1.0",
4464
+
"resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz",
4465
+
"integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==",
4466
+
"license": "MIT"
4467
+
},
3618
4468
"node_modules/react-refresh": {
3619
4469
"version": "0.17.0",
3620
4470
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
···
3625
4475
"node": ">=0.10.0"
3626
4476
}
3627
4477
},
4478
+
"node_modules/react-transition-group": {
4479
+
"version": "4.4.5",
4480
+
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
4481
+
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
4482
+
"license": "BSD-3-Clause",
4483
+
"dependencies": {
4484
+
"@babel/runtime": "^7.5.5",
4485
+
"dom-helpers": "^5.0.1",
4486
+
"loose-envify": "^1.4.0",
4487
+
"prop-types": "^15.6.2"
4488
+
},
4489
+
"peerDependencies": {
4490
+
"react": ">=16.6.0",
4491
+
"react-dom": ">=16.6.0"
4492
+
}
4493
+
},
4494
+
"node_modules/reselect": {
4495
+
"version": "5.1.1",
4496
+
"resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
4497
+
"integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
4498
+
"license": "MIT"
4499
+
},
4500
+
"node_modules/resolve": {
4501
+
"version": "1.22.10",
4502
+
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
4503
+
"integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
4504
+
"license": "MIT",
4505
+
"dependencies": {
4506
+
"is-core-module": "^2.16.0",
4507
+
"path-parse": "^1.0.7",
4508
+
"supports-preserve-symlinks-flag": "^1.0.0"
4509
+
},
4510
+
"bin": {
4511
+
"resolve": "bin/resolve"
4512
+
},
4513
+
"engines": {
4514
+
"node": ">= 0.4"
4515
+
},
4516
+
"funding": {
4517
+
"url": "https://github.com/sponsors/ljharb"
4518
+
}
4519
+
},
3628
4520
"node_modules/resolve-from": {
3629
4521
"version": "4.0.0",
3630
4522
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
3631
4523
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
3632
-
"dev": true,
3633
4524
"license": "MIT",
3634
4525
"engines": {
3635
4526
"node": ">=4"
···
3645
4536
"iojs": ">=1.0.0",
3646
4537
"node": ">=0.10.0"
3647
4538
}
4539
+
},
4540
+
"node_modules/robust-predicates": {
4541
+
"version": "3.0.2",
4542
+
"resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
4543
+
"integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
4544
+
"license": "Unlicense"
3648
4545
},
3649
4546
"node_modules/rollup": {
3650
4547
"version": "4.40.2",
···
3916
4813
"url": "https://github.com/sponsors/ljharb"
3917
4814
}
3918
4815
},
4816
+
"node_modules/source-map": {
4817
+
"version": "0.5.7",
4818
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
4819
+
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
4820
+
"license": "BSD-3-Clause",
4821
+
"engines": {
4822
+
"node": ">=0.10.0"
4823
+
}
4824
+
},
3919
4825
"node_modules/source-map-js": {
3920
4826
"version": "1.2.1",
3921
4827
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
···
3949
4855
"url": "https://github.com/sponsors/sindresorhus"
3950
4856
}
3951
4857
},
4858
+
"node_modules/stylis": {
4859
+
"version": "4.2.0",
4860
+
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
4861
+
"integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==",
4862
+
"license": "MIT"
4863
+
},
3952
4864
"node_modules/supports-color": {
3953
4865
"version": "7.2.0",
3954
4866
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
···
3962
4874
"node": ">=8"
3963
4875
}
3964
4876
},
4877
+
"node_modules/supports-preserve-symlinks-flag": {
4878
+
"version": "1.0.0",
4879
+
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
4880
+
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
4881
+
"license": "MIT",
4882
+
"engines": {
4883
+
"node": ">= 0.4"
4884
+
},
4885
+
"funding": {
4886
+
"url": "https://github.com/sponsors/ljharb"
4887
+
}
4888
+
},
3965
4889
"node_modules/tinyglobby": {
3966
4890
"version": "0.2.13",
3967
4891
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
···
4159
5083
"punycode": "^2.1.0"
4160
5084
}
4161
5085
},
5086
+
"node_modules/use-sync-external-store": {
5087
+
"version": "1.5.0",
5088
+
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz",
5089
+
"integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==",
5090
+
"license": "MIT",
5091
+
"peerDependencies": {
5092
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
5093
+
}
5094
+
},
4162
5095
"node_modules/vary": {
4163
5096
"version": "1.1.2",
4164
5097
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
···
4311
5244
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
4312
5245
"dev": true,
4313
5246
"license": "ISC"
5247
+
},
5248
+
"node_modules/yaml": {
5249
+
"version": "2.8.0",
5250
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
5251
+
"integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
5252
+
"dev": true,
5253
+
"license": "ISC",
5254
+
"optional": true,
5255
+
"peer": true,
5256
+
"bin": {
5257
+
"yaml": "bin.mjs"
5258
+
},
5259
+
"engines": {
5260
+
"node": ">= 14.6"
5261
+
}
4314
5262
},
4315
5263
"node_modules/yocto-queue": {
4316
5264
"version": "0.1.0",
+4
package.json
+4
package.json
+2
-34
src/App.css
+2
-34
src/App.css
···
4
4
text-align: center;
5
5
}
6
6
7
-
.logo {
8
-
height: 6em;
9
-
padding: 1.5em;
10
-
will-change: filter;
11
-
transition: filter 300ms;
12
-
}
13
-
.logo:hover {
14
-
filter: drop-shadow(0 0 2em #646cffaa);
15
-
}
16
-
.logo.react:hover {
17
-
filter: drop-shadow(0 0 2em #61dafbaa);
18
-
}
19
-
20
-
@keyframes logo-spin {
21
-
from {
22
-
transform: rotate(0deg);
23
-
}
24
-
to {
25
-
transform: rotate(360deg);
26
-
}
27
-
}
28
-
29
-
@media (prefers-reduced-motion: no-preference) {
30
-
a:nth-of-type(2) .logo {
31
-
animation: logo-spin infinite 20s linear;
32
-
}
33
-
}
34
-
35
-
.card {
36
-
padding: 2em;
37
-
}
38
-
39
-
.read-the-docs {
40
-
color: #888;
7
+
h1 {
8
+
color: #fcf8c9;
41
9
}
+70
-3
src/App.tsx
+70
-3
src/App.tsx
···
1
-
import { useState } from 'react'
1
+
import { useEffect, useState } from 'react'
2
+
import { BarChart } from '@mui/x-charts/BarChart';
2
3
import './App.css'
4
+
import '@mui/x-charts-vendor/d3-scale'
3
5
import Relay from './Relay'
4
6
import knownRelays from './knownRelays'
5
7
8
+
const INTERVAL = 1600;
9
+
const SERIES_LEN = 6;
10
+
6
11
function App() {
7
12
const [relays, setRelays] = useState([]);
13
+
const [receiver, setReceiver] = useState(() => () => null);
14
+
const [rateBars, setRateBars] = useState({ series: [] });
15
+
16
+
useEffect(() => {
17
+
let lastChangeover = performance.now();
18
+
let currentCounts = {};
19
+
let series = [];
20
+
21
+
setReceiver(() => (url, type, event) => {
22
+
if (!currentCounts[url]) currentCounts[url] = 0;
23
+
currentCounts[url] += 1;
24
+
});
25
+
26
+
const nextBlock = setInterval(() => {
27
+
let now = performance.now();
28
+
let dt = now - lastChangeover;
29
+
if (series.length >= SERIES_LEN - 1) series.shift();
30
+
series.push({
31
+
t: now,
32
+
dt,
33
+
counts: currentCounts,
34
+
});
35
+
lastChangeover = now;
36
+
currentCounts = {};
37
+
}, INTERVAL);
38
+
39
+
const update = () => {
40
+
let now = performance.now();
41
+
let dt = (now - lastChangeover) / 1000;
42
+
const relays = Object.keys(series.at(-1)?.counts || {}).toSorted();
8
43
9
-
const recieveEvent = () => null;
44
+
setRateBars({
45
+
xAxis: [{
46
+
data: series.map(({ t }) => (-(now - t) / 1000).toFixed(1))
47
+
}],
48
+
series: relays.map(r => ({
49
+
label: r,
50
+
data: series.map(({ dt, counts }) => {
51
+
if (!counts[r]) return null;
52
+
return (counts[r] / (dt / 1000)).toFixed(1);
53
+
}),
54
+
})),
55
+
});
56
+
57
+
raf = requestAnimationFrame(update);
58
+
};
59
+
let raf = requestAnimationFrame(update);
60
+
61
+
return () => {
62
+
setReceiver(() => () => null);
63
+
clearInterval(nextBlock);
64
+
cancelAnimationFrame(raf);
65
+
};
66
+
}, []);
10
67
11
68
return (
12
69
<>
···
36
93
const { desc } = knownRelays.find(e => e.url === url);
37
94
return (
38
95
<div key={url}>
39
-
<Relay url={url} desc={desc} onRecievedEvent={(type, event) => recieveEvent(url, type, event)} />
96
+
<Relay
97
+
url={url}
98
+
desc={desc}
99
+
onRecieveEvent={(type, event) => receiver(url, type, event)}
100
+
/>
40
101
</div>
41
102
);
42
103
})}
104
+
</div>
105
+
<div className=".throughputs">
106
+
<BarChart
107
+
height={300}
108
+
{...rateBars}
109
+
/>
43
110
</div>
44
111
</>
45
112
)
+3
-3
src/Relay.tsx
+3
-3
src/Relay.tsx
···
4
4
5
5
type firehoseState = 'connecting' | 'connected' | 'errored' | 'closed';
6
6
7
-
function Relay({ url, desc, onRecievedEvent }) {
7
+
function Relay({ url, desc, onRecieveEvent }) {
8
8
const [state, setState] = useState('connecting');
9
9
const [commits, setCommits] = useState(0);
10
10
11
11
useEffect(() => {
12
12
const sendIt = (type, event) => {
13
-
onRecievedEvent(type, event);
13
+
onRecieveEvent(type, event);
14
14
setCommits(n => n + 1);
15
15
};
16
16
const firehose = new Firehose({ relay: url });
17
17
firehose.on('open', () => setState('connected'));
18
18
firehose.on('close', () => setState('closed'));
19
19
firehose.on('reconnect', (...args) => console.info('reconnect', ...args));
20
-
firehose.on('error', () => setState('errored'));
20
+
firehose.on('error', e => console.error(e) || setState('errored'));
21
21
firehose.on('websocketError', () => setState('errored'));
22
22
firehose.on('commit', (ev) => sendIt('commit', ev));
23
23
firehose.on('sync', (ev) => sendIt('sync', ev));
+1
-1
src/index.css
+1
-1
src/index.css
+15
-1
src/main.tsx
+15
-1
src/main.tsx
···
1
1
import { createRoot } from 'react-dom/client'
2
+
import { StyledEngineProvider } from '@mui/material/styles';
3
+
import { ThemeProvider, createTheme } from '@mui/material/styles';
2
4
import './index.css'
3
5
import App from './App.tsx'
4
6
5
-
createRoot(document.getElementById('root')!).render(<App />)
7
+
const theme = createTheme({
8
+
colorSchemes: {
9
+
dark: true,
10
+
},
11
+
});
12
+
13
+
createRoot(document.getElementById('root')!).render(
14
+
<StyledEngineProvider injectFirst>
15
+
<ThemeProvider theme={theme}>
16
+
<App />
17
+
</ThemeProvider>
18
+
</StyledEngineProvider>
19
+
)