Encrypted, ephemeral, private memos on atproto

feat(mcp): stub module

graham.systems de3bda94 78c19868

verified
Changed files
+1628 -5
packages
+1494 -5
deno.lock
··· 1 1 { 2 2 "version": "5", 3 3 "specifiers": { 4 + "jsr:@logtape/logtape@^1.2.0": "1.2.0", 4 5 "jsr:@noble/ciphers@^2.0.1": "2.0.1", 5 6 "jsr:@noble/curves@2.0": "2.0.1", 6 7 "jsr:@noble/hashes@2": "2.0.1", ··· 8 9 "jsr:@noble/hashes@^2.0.1": "2.0.1", 9 10 "jsr:@noble/post-quantum@~0.5.2": "0.5.2", 10 11 "jsr:@puregarlic/randimal@^1.1.1": "1.1.1", 11 - "jsr:@std/assert@^1.0.14": "1.0.14", 12 + "jsr:@std/assert@^1.0.14": "1.0.15", 13 + "jsr:@std/cli@^1.0.23": "1.0.23", 12 14 "jsr:@std/expect@^1.0.17": "1.0.17", 13 - "jsr:@std/internal@^1.0.10": "1.0.10", 15 + "jsr:@std/internal@^1.0.10": "1.0.12", 16 + "jsr:@std/internal@^1.0.12": "1.0.12", 14 17 "npm:@atcute/atproto@^3.1.9": "3.1.9", 15 18 "npm:@atcute/client@^4.0.5": "4.0.5", 16 19 "npm:@atcute/jetstream@^1.1.2": "1.1.2", ··· 18 21 "npm:@atcute/lex-cli@^2.3.1": "2.3.1", 19 22 "npm:@atcute/lexicons@^1.2.2": "1.2.2", 20 23 "npm:@atcute/tid@^1.0.3": "1.0.3", 21 - "npm:@atproto/lexicon@~0.5.1": "0.5.1" 24 + "npm:@atproto/lexicon@~0.5.1": "0.5.1", 25 + "npm:@modelcontextprotocol/inspector@*": "0.15.0", 26 + "npm:@modelcontextprotocol/sdk@^1.21.1": "1.21.1_ajv@8.17.1_express@5.1.0_zod@3.25.76", 27 + "npm:fetch-to-node@^2.1.0": "2.1.0", 28 + "npm:zod@^3.25.76": "3.25.76" 22 29 }, 23 30 "jsr": { 31 + "@logtape/logtape@1.2.0": { 32 + "integrity": "8e1d3af5c91966cc5689cfb17081a36bccfdff28ff6314769185661f5147e74d" 33 + }, 24 34 "@noble/ciphers@2.0.1": { 25 35 "integrity": "1d28df773a29684c85844d27eefbb7cad3e4ce62849b63dae3024baf66cf769f" 26 36 }, ··· 46 56 "@std/assert@1.0.14": { 47 57 "integrity": "68d0d4a43b365abc927f45a9b85c639ea18a9fab96ad92281e493e4ed84abaa4", 48 58 "dependencies": [ 49 - "jsr:@std/internal" 59 + "jsr:@std/internal@^1.0.10" 60 + ] 61 + }, 62 + "@std/assert@1.0.15": { 63 + "integrity": "d64018e951dbdfab9777335ecdb000c0b4e3df036984083be219ce5941e4703b", 64 + "dependencies": [ 65 + "jsr:@std/internal@^1.0.12" 66 + ] 67 + }, 68 + "@std/cli@1.0.23": { 69 + "integrity": "bf95b7a9425ba2af1ae5a6359daf58c508f2decf711a76ed2993cd352498ccca", 70 + "dependencies": [ 71 + "jsr:@std/internal@^1.0.12" 50 72 ] 51 73 }, 52 74 "@std/expect@1.0.17": { 53 75 "integrity": "316b47dd65c33e3151344eb3267bf42efba17d1415425f07ed96185d67fc04d9", 54 76 "dependencies": [ 55 77 "jsr:@std/assert", 56 - "jsr:@std/internal" 78 + "jsr:@std/internal@^1.0.10" 57 79 ] 58 80 }, 59 81 "@std/internal@1.0.10": { 60 82 "integrity": "e3be62ce42cab0e177c27698e5d9800122f67b766a0bea6ca4867886cbde8cf7" 83 + }, 84 + "@std/internal@1.0.12": { 85 + "integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027" 61 86 } 62 87 }, 63 88 "npm": { ··· 146 171 "@badrap/valita@0.4.6": { 147 172 "integrity": "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==" 148 173 }, 174 + "@cspotcode/source-map-support@0.8.1": { 175 + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 176 + "dependencies": [ 177 + "@jridgewell/trace-mapping" 178 + ] 179 + }, 180 + "@floating-ui/core@1.7.2": { 181 + "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==", 182 + "dependencies": [ 183 + "@floating-ui/utils" 184 + ] 185 + }, 186 + "@floating-ui/dom@1.7.2": { 187 + "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==", 188 + "dependencies": [ 189 + "@floating-ui/core", 190 + "@floating-ui/utils" 191 + ] 192 + }, 193 + "@floating-ui/react-dom@2.1.4_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 194 + "integrity": "sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw==", 195 + "dependencies": [ 196 + "@floating-ui/dom", 197 + "react", 198 + "react-dom" 199 + ] 200 + }, 201 + "@floating-ui/utils@0.2.10": { 202 + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==" 203 + }, 204 + "@jridgewell/resolve-uri@3.1.2": { 205 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" 206 + }, 207 + "@jridgewell/sourcemap-codec@1.5.4": { 208 + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" 209 + }, 210 + "@jridgewell/trace-mapping@0.3.9": { 211 + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 212 + "dependencies": [ 213 + "@jridgewell/resolve-uri", 214 + "@jridgewell/sourcemap-codec" 215 + ] 216 + }, 149 217 "@mary-ext/event-iterator@1.0.0": { 150 218 "integrity": "sha512-l6gCPsWJ8aRCe/s7/oCmero70kDHgIK5m4uJvYgwEYTqVxoBOIXbKr5tnkLqUHEg6mNduB4IWvms3h70Hp9ADQ==", 151 219 "dependencies": [ ··· 155 223 "@mary-ext/simple-event-emitter@1.0.0": { 156 224 "integrity": "sha512-meA/zJZKIN1RVBNEYIbjufkUrW7/tRjHH60FjolpG1ixJKo76TB208qefQLNdOVDA7uIG0CGEDuhmMirtHKLAg==" 157 225 }, 226 + "@modelcontextprotocol/inspector-cli@0.15.0": { 227 + "integrity": "sha512-mZxRqxYub6qFi3oypLI63yCm9TAxlTO8asE9FeAU4+HFlvKxQrujcfpckcWjqGKhZ0uVH1YUE+VwDx70nz+I5w==", 228 + "dependencies": [ 229 + "@modelcontextprotocol/sdk", 230 + "commander", 231 + "spawn-rx" 232 + ], 233 + "bin": true 234 + }, 235 + "@modelcontextprotocol/inspector-client@0.15.0_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 236 + "integrity": "sha512-zIKxvp5HX1yE+kPOhI42/TVNuM9/RYEizdVmlpov7H38Mg9DeN9DptHYrsVLy8ZEJD1XFAu/eLl+ZtS3ceANNg==", 237 + "dependencies": [ 238 + "@modelcontextprotocol/sdk", 239 + "@radix-ui/react-checkbox", 240 + "@radix-ui/react-dialog", 241 + "@radix-ui/react-icons", 242 + "@radix-ui/react-label", 243 + "@radix-ui/react-popover", 244 + "@radix-ui/react-select", 245 + "@radix-ui/react-slot", 246 + "@radix-ui/react-tabs", 247 + "@radix-ui/react-toast", 248 + "@radix-ui/react-tooltip", 249 + "ajv@6.12.6", 250 + "class-variance-authority", 251 + "clsx", 252 + "cmdk", 253 + "lucide-react", 254 + "pkce-challenge@4.1.0", 255 + "prismjs", 256 + "react", 257 + "react-dom", 258 + "react-simple-code-editor", 259 + "serve-handler", 260 + "tailwind-merge", 261 + "tailwindcss-animate", 262 + "zod" 263 + ], 264 + "bin": true 265 + }, 266 + "@modelcontextprotocol/inspector-server@0.15.0": { 267 + "integrity": "sha512-x1qtDEUeSHURtBH1/WN30NX7O/Imb3u2IoY+T2YCf4mGiB24eo4hEudiZmnuKSDGwDs4BAj2keiFeL3/EwkH9w==", 268 + "dependencies": [ 269 + "@modelcontextprotocol/sdk", 270 + "cors", 271 + "express", 272 + "ws", 273 + "zod" 274 + ], 275 + "bin": true 276 + }, 277 + "@modelcontextprotocol/inspector@0.15.0": { 278 + "integrity": "sha512-PN1R7InR48Y6wU8s/vHWc0KOYAjlYQkgCpjUQsNFB078ebdv+empkMI6d1Gg+UIRx8mTrwtbBgv0A6ookGG+0w==", 279 + "dependencies": [ 280 + "@modelcontextprotocol/inspector-cli", 281 + "@modelcontextprotocol/inspector-client", 282 + "@modelcontextprotocol/inspector-server", 283 + "@modelcontextprotocol/sdk", 284 + "concurrently", 285 + "open", 286 + "shell-quote", 287 + "spawn-rx", 288 + "ts-node", 289 + "zod" 290 + ], 291 + "bin": true 292 + }, 293 + "@modelcontextprotocol/sdk@1.21.1_ajv@8.17.1_express@5.1.0_zod@3.25.76": { 294 + "integrity": "sha512-UyLFcJLDvUuZbGnaQqXFT32CpPpGj7VS19roLut6gkQVhb439xUzYWbsUvdI3ZPL+2hnFosuugtYWE0Mcs1rmQ==", 295 + "dependencies": [ 296 + "ajv@8.17.1", 297 + "ajv-formats", 298 + "content-type", 299 + "cors", 300 + "cross-spawn", 301 + "eventsource", 302 + "eventsource-parser", 303 + "express", 304 + "express-rate-limit", 305 + "pkce-challenge@5.0.0", 306 + "raw-body", 307 + "zod", 308 + "zod-to-json-schema" 309 + ] 310 + }, 158 311 "@optique/core@0.6.2": { 159 312 "integrity": "sha512-HTxIHJ8xLOSZotiU6Zc5BCJv+SJ8DMYmuiQM+7tjF7RolJn/pdZNe7M78G3+DgXL9lIf82l8aGcilmgVYRQnGQ==" 160 313 }, ··· 164 317 "@optique/core" 165 318 ] 166 319 }, 320 + "@radix-ui/number@1.1.1": { 321 + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==" 322 + }, 323 + "@radix-ui/primitive@1.1.2": { 324 + "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==" 325 + }, 326 + "@radix-ui/react-arrow@1.1.7_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 327 + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", 328 + "dependencies": [ 329 + "@radix-ui/react-primitive", 330 + "react", 331 + "react-dom" 332 + ] 333 + }, 334 + "@radix-ui/react-checkbox@1.3.2_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 335 + "integrity": "sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==", 336 + "dependencies": [ 337 + "@radix-ui/primitive", 338 + "@radix-ui/react-compose-refs", 339 + "@radix-ui/react-context", 340 + "@radix-ui/react-presence", 341 + "@radix-ui/react-primitive", 342 + "@radix-ui/react-use-controllable-state", 343 + "@radix-ui/react-use-previous", 344 + "@radix-ui/react-use-size", 345 + "react", 346 + "react-dom" 347 + ] 348 + }, 349 + "@radix-ui/react-collection@1.1.7_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 350 + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", 351 + "dependencies": [ 352 + "@radix-ui/react-compose-refs", 353 + "@radix-ui/react-context", 354 + "@radix-ui/react-primitive", 355 + "@radix-ui/react-slot", 356 + "react", 357 + "react-dom" 358 + ] 359 + }, 360 + "@radix-ui/react-compose-refs@1.1.2_react@18.3.1": { 361 + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", 362 + "dependencies": [ 363 + "react" 364 + ] 365 + }, 366 + "@radix-ui/react-context@1.1.2_react@18.3.1": { 367 + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", 368 + "dependencies": [ 369 + "react" 370 + ] 371 + }, 372 + "@radix-ui/react-dialog@1.1.14_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 373 + "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==", 374 + "dependencies": [ 375 + "@radix-ui/primitive", 376 + "@radix-ui/react-compose-refs", 377 + "@radix-ui/react-context", 378 + "@radix-ui/react-dismissable-layer", 379 + "@radix-ui/react-focus-guards", 380 + "@radix-ui/react-focus-scope", 381 + "@radix-ui/react-id", 382 + "@radix-ui/react-portal", 383 + "@radix-ui/react-presence", 384 + "@radix-ui/react-primitive", 385 + "@radix-ui/react-slot", 386 + "@radix-ui/react-use-controllable-state", 387 + "aria-hidden", 388 + "react", 389 + "react-dom", 390 + "react-remove-scroll" 391 + ] 392 + }, 393 + "@radix-ui/react-direction@1.1.1_react@18.3.1": { 394 + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", 395 + "dependencies": [ 396 + "react" 397 + ] 398 + }, 399 + "@radix-ui/react-dismissable-layer@1.1.10_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 400 + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", 401 + "dependencies": [ 402 + "@radix-ui/primitive", 403 + "@radix-ui/react-compose-refs", 404 + "@radix-ui/react-primitive", 405 + "@radix-ui/react-use-callback-ref", 406 + "@radix-ui/react-use-escape-keydown", 407 + "react", 408 + "react-dom" 409 + ] 410 + }, 411 + "@radix-ui/react-focus-guards@1.1.2_react@18.3.1": { 412 + "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", 413 + "dependencies": [ 414 + "react" 415 + ] 416 + }, 417 + "@radix-ui/react-focus-scope@1.1.7_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 418 + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", 419 + "dependencies": [ 420 + "@radix-ui/react-compose-refs", 421 + "@radix-ui/react-primitive", 422 + "@radix-ui/react-use-callback-ref", 423 + "react", 424 + "react-dom" 425 + ] 426 + }, 427 + "@radix-ui/react-icons@1.3.2_react@18.3.1": { 428 + "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==", 429 + "dependencies": [ 430 + "react" 431 + ] 432 + }, 433 + "@radix-ui/react-id@1.1.1_react@18.3.1": { 434 + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", 435 + "dependencies": [ 436 + "@radix-ui/react-use-layout-effect", 437 + "react" 438 + ] 439 + }, 440 + "@radix-ui/react-label@2.1.7_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 441 + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", 442 + "dependencies": [ 443 + "@radix-ui/react-primitive", 444 + "react", 445 + "react-dom" 446 + ] 447 + }, 448 + "@radix-ui/react-popover@1.1.14_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 449 + "integrity": "sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==", 450 + "dependencies": [ 451 + "@radix-ui/primitive", 452 + "@radix-ui/react-compose-refs", 453 + "@radix-ui/react-context", 454 + "@radix-ui/react-dismissable-layer", 455 + "@radix-ui/react-focus-guards", 456 + "@radix-ui/react-focus-scope", 457 + "@radix-ui/react-id", 458 + "@radix-ui/react-popper", 459 + "@radix-ui/react-portal", 460 + "@radix-ui/react-presence", 461 + "@radix-ui/react-primitive", 462 + "@radix-ui/react-slot", 463 + "@radix-ui/react-use-controllable-state", 464 + "aria-hidden", 465 + "react", 466 + "react-dom", 467 + "react-remove-scroll" 468 + ] 469 + }, 470 + "@radix-ui/react-popper@1.2.7_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 471 + "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==", 472 + "dependencies": [ 473 + "@floating-ui/react-dom", 474 + "@radix-ui/react-arrow", 475 + "@radix-ui/react-compose-refs", 476 + "@radix-ui/react-context", 477 + "@radix-ui/react-primitive", 478 + "@radix-ui/react-use-callback-ref", 479 + "@radix-ui/react-use-layout-effect", 480 + "@radix-ui/react-use-rect", 481 + "@radix-ui/react-use-size", 482 + "@radix-ui/rect", 483 + "react", 484 + "react-dom" 485 + ] 486 + }, 487 + "@radix-ui/react-portal@1.1.9_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 488 + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", 489 + "dependencies": [ 490 + "@radix-ui/react-primitive", 491 + "@radix-ui/react-use-layout-effect", 492 + "react", 493 + "react-dom" 494 + ] 495 + }, 496 + "@radix-ui/react-presence@1.1.4_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 497 + "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", 498 + "dependencies": [ 499 + "@radix-ui/react-compose-refs", 500 + "@radix-ui/react-use-layout-effect", 501 + "react", 502 + "react-dom" 503 + ] 504 + }, 505 + "@radix-ui/react-primitive@2.1.3_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 506 + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", 507 + "dependencies": [ 508 + "@radix-ui/react-slot", 509 + "react", 510 + "react-dom" 511 + ] 512 + }, 513 + "@radix-ui/react-roving-focus@1.1.10_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 514 + "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==", 515 + "dependencies": [ 516 + "@radix-ui/primitive", 517 + "@radix-ui/react-collection", 518 + "@radix-ui/react-compose-refs", 519 + "@radix-ui/react-context", 520 + "@radix-ui/react-direction", 521 + "@radix-ui/react-id", 522 + "@radix-ui/react-primitive", 523 + "@radix-ui/react-use-callback-ref", 524 + "@radix-ui/react-use-controllable-state", 525 + "react", 526 + "react-dom" 527 + ] 528 + }, 529 + "@radix-ui/react-select@2.2.5_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 530 + "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==", 531 + "dependencies": [ 532 + "@radix-ui/number", 533 + "@radix-ui/primitive", 534 + "@radix-ui/react-collection", 535 + "@radix-ui/react-compose-refs", 536 + "@radix-ui/react-context", 537 + "@radix-ui/react-direction", 538 + "@radix-ui/react-dismissable-layer", 539 + "@radix-ui/react-focus-guards", 540 + "@radix-ui/react-focus-scope", 541 + "@radix-ui/react-id", 542 + "@radix-ui/react-popper", 543 + "@radix-ui/react-portal", 544 + "@radix-ui/react-primitive", 545 + "@radix-ui/react-slot", 546 + "@radix-ui/react-use-callback-ref", 547 + "@radix-ui/react-use-controllable-state", 548 + "@radix-ui/react-use-layout-effect", 549 + "@radix-ui/react-use-previous", 550 + "@radix-ui/react-visually-hidden", 551 + "aria-hidden", 552 + "react", 553 + "react-dom", 554 + "react-remove-scroll" 555 + ] 556 + }, 557 + "@radix-ui/react-slot@1.2.3_react@18.3.1": { 558 + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", 559 + "dependencies": [ 560 + "@radix-ui/react-compose-refs", 561 + "react" 562 + ] 563 + }, 564 + "@radix-ui/react-tabs@1.1.12_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 565 + "integrity": "sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==", 566 + "dependencies": [ 567 + "@radix-ui/primitive", 568 + "@radix-ui/react-context", 569 + "@radix-ui/react-direction", 570 + "@radix-ui/react-id", 571 + "@radix-ui/react-presence", 572 + "@radix-ui/react-primitive", 573 + "@radix-ui/react-roving-focus", 574 + "@radix-ui/react-use-controllable-state", 575 + "react", 576 + "react-dom" 577 + ] 578 + }, 579 + "@radix-ui/react-toast@1.2.14_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 580 + "integrity": "sha512-nAP5FBxBJGQ/YfUB+r+O6USFVkWq3gAInkxyEnmvEV5jtSbfDhfa4hwX8CraCnbjMLsE7XSf/K75l9xXY7joWg==", 581 + "dependencies": [ 582 + "@radix-ui/primitive", 583 + "@radix-ui/react-collection", 584 + "@radix-ui/react-compose-refs", 585 + "@radix-ui/react-context", 586 + "@radix-ui/react-dismissable-layer", 587 + "@radix-ui/react-portal", 588 + "@radix-ui/react-presence", 589 + "@radix-ui/react-primitive", 590 + "@radix-ui/react-use-callback-ref", 591 + "@radix-ui/react-use-controllable-state", 592 + "@radix-ui/react-use-layout-effect", 593 + "@radix-ui/react-visually-hidden", 594 + "react", 595 + "react-dom" 596 + ] 597 + }, 598 + "@radix-ui/react-tooltip@1.2.7_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 599 + "integrity": "sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==", 600 + "dependencies": [ 601 + "@radix-ui/primitive", 602 + "@radix-ui/react-compose-refs", 603 + "@radix-ui/react-context", 604 + "@radix-ui/react-dismissable-layer", 605 + "@radix-ui/react-id", 606 + "@radix-ui/react-popper", 607 + "@radix-ui/react-portal", 608 + "@radix-ui/react-presence", 609 + "@radix-ui/react-primitive", 610 + "@radix-ui/react-slot", 611 + "@radix-ui/react-use-controllable-state", 612 + "@radix-ui/react-visually-hidden", 613 + "react", 614 + "react-dom" 615 + ] 616 + }, 617 + "@radix-ui/react-use-callback-ref@1.1.1_react@18.3.1": { 618 + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", 619 + "dependencies": [ 620 + "react" 621 + ] 622 + }, 623 + "@radix-ui/react-use-controllable-state@1.2.2_react@18.3.1": { 624 + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", 625 + "dependencies": [ 626 + "@radix-ui/react-use-effect-event", 627 + "@radix-ui/react-use-layout-effect", 628 + "react" 629 + ] 630 + }, 631 + "@radix-ui/react-use-effect-event@0.0.2_react@18.3.1": { 632 + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", 633 + "dependencies": [ 634 + "@radix-ui/react-use-layout-effect", 635 + "react" 636 + ] 637 + }, 638 + "@radix-ui/react-use-escape-keydown@1.1.1_react@18.3.1": { 639 + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", 640 + "dependencies": [ 641 + "@radix-ui/react-use-callback-ref", 642 + "react" 643 + ] 644 + }, 645 + "@radix-ui/react-use-layout-effect@1.1.1_react@18.3.1": { 646 + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", 647 + "dependencies": [ 648 + "react" 649 + ] 650 + }, 651 + "@radix-ui/react-use-previous@1.1.1_react@18.3.1": { 652 + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", 653 + "dependencies": [ 654 + "react" 655 + ] 656 + }, 657 + "@radix-ui/react-use-rect@1.1.1_react@18.3.1": { 658 + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", 659 + "dependencies": [ 660 + "@radix-ui/rect", 661 + "react" 662 + ] 663 + }, 664 + "@radix-ui/react-use-size@1.1.1_react@18.3.1": { 665 + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", 666 + "dependencies": [ 667 + "@radix-ui/react-use-layout-effect", 668 + "react" 669 + ] 670 + }, 671 + "@radix-ui/react-visually-hidden@1.2.3_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 672 + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", 673 + "dependencies": [ 674 + "@radix-ui/react-primitive", 675 + "react", 676 + "react-dom" 677 + ] 678 + }, 679 + "@radix-ui/rect@1.1.1": { 680 + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==" 681 + }, 167 682 "@standard-schema/spec@1.0.0": { 168 683 "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==" 169 684 }, 685 + "@tsconfig/node10@1.0.11": { 686 + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" 687 + }, 688 + "@tsconfig/node12@1.0.11": { 689 + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" 690 + }, 691 + "@tsconfig/node14@1.0.3": { 692 + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" 693 + }, 694 + "@tsconfig/node16@1.0.4": { 695 + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" 696 + }, 697 + "@types/node@24.2.0": { 698 + "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", 699 + "dependencies": [ 700 + "undici-types" 701 + ] 702 + }, 703 + "accepts@2.0.0": { 704 + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", 705 + "dependencies": [ 706 + "mime-types@3.0.1", 707 + "negotiator" 708 + ] 709 + }, 710 + "acorn-walk@8.3.4": { 711 + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", 712 + "dependencies": [ 713 + "acorn" 714 + ] 715 + }, 716 + "acorn@8.15.0": { 717 + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", 718 + "bin": true 719 + }, 720 + "ajv-formats@3.0.1_ajv@8.17.1": { 721 + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", 722 + "dependencies": [ 723 + "ajv@8.17.1" 724 + ], 725 + "optionalPeers": [ 726 + "ajv@8.17.1" 727 + ] 728 + }, 729 + "ajv@6.12.6": { 730 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 731 + "dependencies": [ 732 + "fast-deep-equal", 733 + "fast-json-stable-stringify", 734 + "json-schema-traverse@0.4.1", 735 + "uri-js" 736 + ] 737 + }, 738 + "ajv@8.17.1": { 739 + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", 740 + "dependencies": [ 741 + "fast-deep-equal", 742 + "fast-uri", 743 + "json-schema-traverse@1.0.0", 744 + "require-from-string" 745 + ] 746 + }, 747 + "ansi-regex@5.0.1": { 748 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 749 + }, 750 + "ansi-styles@4.3.0": { 751 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 752 + "dependencies": [ 753 + "color-convert" 754 + ] 755 + }, 756 + "arg@4.1.3": { 757 + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" 758 + }, 759 + "aria-hidden@1.2.6": { 760 + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", 761 + "dependencies": [ 762 + "tslib" 763 + ] 764 + }, 765 + "balanced-match@1.0.2": { 766 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 767 + }, 768 + "body-parser@2.2.0": { 769 + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", 770 + "dependencies": [ 771 + "bytes@3.1.2", 772 + "content-type", 773 + "debug", 774 + "http-errors", 775 + "iconv-lite@0.6.3", 776 + "on-finished", 777 + "qs", 778 + "raw-body", 779 + "type-is" 780 + ] 781 + }, 782 + "brace-expansion@1.1.12": { 783 + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", 784 + "dependencies": [ 785 + "balanced-match", 786 + "concat-map" 787 + ] 788 + }, 789 + "bundle-name@4.1.0": { 790 + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", 791 + "dependencies": [ 792 + "run-applescript" 793 + ] 794 + }, 795 + "bytes@3.0.0": { 796 + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" 797 + }, 798 + "bytes@3.1.2": { 799 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 800 + }, 801 + "call-bind-apply-helpers@1.0.2": { 802 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 803 + "dependencies": [ 804 + "es-errors", 805 + "function-bind" 806 + ] 807 + }, 808 + "call-bound@1.0.4": { 809 + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", 810 + "dependencies": [ 811 + "call-bind-apply-helpers", 812 + "get-intrinsic" 813 + ] 814 + }, 815 + "chalk@4.1.2": { 816 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 817 + "dependencies": [ 818 + "ansi-styles", 819 + "supports-color@7.2.0" 820 + ] 821 + }, 822 + "class-variance-authority@0.7.1": { 823 + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", 824 + "dependencies": [ 825 + "clsx" 826 + ] 827 + }, 828 + "cliui@8.0.1": { 829 + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 830 + "dependencies": [ 831 + "string-width", 832 + "strip-ansi", 833 + "wrap-ansi" 834 + ] 835 + }, 836 + "clsx@2.1.1": { 837 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" 838 + }, 839 + "cmdk@1.1.1_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 840 + "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==", 841 + "dependencies": [ 842 + "@radix-ui/react-compose-refs", 843 + "@radix-ui/react-dialog", 844 + "@radix-ui/react-id", 845 + "@radix-ui/react-primitive", 846 + "react", 847 + "react-dom" 848 + ] 849 + }, 850 + "color-convert@2.0.1": { 851 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 852 + "dependencies": [ 853 + "color-name" 854 + ] 855 + }, 856 + "color-name@1.1.4": { 857 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 858 + }, 859 + "commander@13.1.0": { 860 + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==" 861 + }, 862 + "concat-map@0.0.1": { 863 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 864 + }, 865 + "concurrently@9.2.0": { 866 + "integrity": "sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==", 867 + "dependencies": [ 868 + "chalk", 869 + "lodash", 870 + "rxjs", 871 + "shell-quote", 872 + "supports-color@8.1.1", 873 + "tree-kill", 874 + "yargs" 875 + ], 876 + "bin": true 877 + }, 878 + "content-disposition@0.5.2": { 879 + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" 880 + }, 881 + "content-disposition@1.0.0": { 882 + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", 883 + "dependencies": [ 884 + "safe-buffer" 885 + ] 886 + }, 887 + "content-type@1.0.5": { 888 + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" 889 + }, 890 + "cookie-signature@1.2.2": { 891 + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==" 892 + }, 893 + "cookie@0.7.2": { 894 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" 895 + }, 896 + "cors@2.8.5": { 897 + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", 898 + "dependencies": [ 899 + "object-assign", 900 + "vary" 901 + ] 902 + }, 903 + "create-require@1.1.1": { 904 + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" 905 + }, 906 + "cross-spawn@7.0.6": { 907 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 908 + "dependencies": [ 909 + "path-key", 910 + "shebang-command", 911 + "which" 912 + ] 913 + }, 914 + "debug@4.4.3": { 915 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 916 + "dependencies": [ 917 + "ms" 918 + ] 919 + }, 920 + "default-browser-id@5.0.0": { 921 + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==" 922 + }, 923 + "default-browser@5.2.1": { 924 + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", 925 + "dependencies": [ 926 + "bundle-name", 927 + "default-browser-id" 928 + ] 929 + }, 930 + "define-lazy-prop@3.0.0": { 931 + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" 932 + }, 933 + "depd@2.0.0": { 934 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" 935 + }, 936 + "detect-node-es@1.1.0": { 937 + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" 938 + }, 939 + "diff@4.0.2": { 940 + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" 941 + }, 942 + "dunder-proto@1.0.1": { 943 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 944 + "dependencies": [ 945 + "call-bind-apply-helpers", 946 + "es-errors", 947 + "gopd" 948 + ] 949 + }, 950 + "ee-first@1.1.1": { 951 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 952 + }, 953 + "emoji-regex@8.0.0": { 954 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 955 + }, 956 + "encodeurl@2.0.0": { 957 + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" 958 + }, 959 + "es-define-property@1.0.1": { 960 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" 961 + }, 962 + "es-errors@1.3.0": { 963 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" 964 + }, 965 + "es-object-atoms@1.1.1": { 966 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 967 + "dependencies": [ 968 + "es-errors" 969 + ] 970 + }, 971 + "escalade@3.2.0": { 972 + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" 973 + }, 974 + "escape-html@1.0.3": { 975 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 976 + }, 170 977 "esm-env@1.2.2": { 171 978 "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==" 172 979 }, 980 + "etag@1.8.1": { 981 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" 982 + }, 173 983 "event-target-polyfill@0.0.4": { 174 984 "integrity": "sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ==" 175 985 }, 986 + "eventsource-parser@3.0.6": { 987 + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==" 988 + }, 989 + "eventsource@3.0.7": { 990 + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", 991 + "dependencies": [ 992 + "eventsource-parser" 993 + ] 994 + }, 995 + "express-rate-limit@7.5.1_express@5.1.0": { 996 + "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", 997 + "dependencies": [ 998 + "express" 999 + ] 1000 + }, 1001 + "express@5.1.0": { 1002 + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", 1003 + "dependencies": [ 1004 + "accepts", 1005 + "body-parser", 1006 + "content-disposition@1.0.0", 1007 + "content-type", 1008 + "cookie", 1009 + "cookie-signature", 1010 + "debug", 1011 + "encodeurl", 1012 + "escape-html", 1013 + "etag", 1014 + "finalhandler", 1015 + "fresh", 1016 + "http-errors", 1017 + "merge-descriptors", 1018 + "mime-types@3.0.1", 1019 + "on-finished", 1020 + "once", 1021 + "parseurl", 1022 + "proxy-addr", 1023 + "qs", 1024 + "range-parser@1.2.1", 1025 + "router", 1026 + "send", 1027 + "serve-static", 1028 + "statuses", 1029 + "type-is", 1030 + "vary" 1031 + ] 1032 + }, 1033 + "fast-deep-equal@3.1.3": { 1034 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 1035 + }, 1036 + "fast-json-stable-stringify@2.1.0": { 1037 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 1038 + }, 1039 + "fast-uri@3.1.0": { 1040 + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==" 1041 + }, 1042 + "fetch-to-node@2.1.0": { 1043 + "integrity": "sha512-Wq05j6LE1GrWpT2t1YbCkyFY6xKRJq3hx/oRJdWEJpZlik3g25MmdJS6RFm49iiMJw6zpZuBOrgihOgy2jGyAA==" 1044 + }, 1045 + "finalhandler@2.1.0": { 1046 + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", 1047 + "dependencies": [ 1048 + "debug", 1049 + "encodeurl", 1050 + "escape-html", 1051 + "on-finished", 1052 + "parseurl", 1053 + "statuses" 1054 + ] 1055 + }, 1056 + "forwarded@0.2.0": { 1057 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 1058 + }, 1059 + "fresh@2.0.0": { 1060 + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==" 1061 + }, 1062 + "function-bind@1.1.2": { 1063 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" 1064 + }, 1065 + "get-caller-file@2.0.5": { 1066 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 1067 + }, 1068 + "get-intrinsic@1.3.0": { 1069 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 1070 + "dependencies": [ 1071 + "call-bind-apply-helpers", 1072 + "es-define-property", 1073 + "es-errors", 1074 + "es-object-atoms", 1075 + "function-bind", 1076 + "get-proto", 1077 + "gopd", 1078 + "has-symbols", 1079 + "hasown", 1080 + "math-intrinsics" 1081 + ] 1082 + }, 1083 + "get-nonce@1.0.1": { 1084 + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" 1085 + }, 1086 + "get-proto@1.0.1": { 1087 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 1088 + "dependencies": [ 1089 + "dunder-proto", 1090 + "es-object-atoms" 1091 + ] 1092 + }, 1093 + "gopd@1.2.0": { 1094 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" 1095 + }, 176 1096 "graphemer@1.4.0": { 177 1097 "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" 178 1098 }, 1099 + "has-flag@4.0.0": { 1100 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 1101 + }, 1102 + "has-symbols@1.1.0": { 1103 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" 1104 + }, 1105 + "hasown@2.0.2": { 1106 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 1107 + "dependencies": [ 1108 + "function-bind" 1109 + ] 1110 + }, 1111 + "http-errors@2.0.0": { 1112 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 1113 + "dependencies": [ 1114 + "depd", 1115 + "inherits", 1116 + "setprototypeof", 1117 + "statuses", 1118 + "toidentifier" 1119 + ] 1120 + }, 1121 + "iconv-lite@0.6.3": { 1122 + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 1123 + "dependencies": [ 1124 + "safer-buffer" 1125 + ] 1126 + }, 1127 + "iconv-lite@0.7.0": { 1128 + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", 1129 + "dependencies": [ 1130 + "safer-buffer" 1131 + ] 1132 + }, 1133 + "inherits@2.0.4": { 1134 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1135 + }, 1136 + "ipaddr.js@1.9.1": { 1137 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1138 + }, 1139 + "is-docker@3.0.0": { 1140 + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", 1141 + "bin": true 1142 + }, 1143 + "is-fullwidth-code-point@3.0.0": { 1144 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1145 + }, 1146 + "is-inside-container@1.0.0": { 1147 + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 1148 + "dependencies": [ 1149 + "is-docker" 1150 + ], 1151 + "bin": true 1152 + }, 1153 + "is-promise@4.0.0": { 1154 + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" 1155 + }, 1156 + "is-wsl@3.1.0": { 1157 + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", 1158 + "dependencies": [ 1159 + "is-inside-container" 1160 + ] 1161 + }, 1162 + "isexe@2.0.0": { 1163 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 1164 + }, 179 1165 "iso-datestring-validator@2.2.2": { 180 1166 "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==" 181 1167 }, 1168 + "js-tokens@4.0.0": { 1169 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1170 + }, 1171 + "json-schema-traverse@0.4.1": { 1172 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 1173 + }, 1174 + "json-schema-traverse@1.0.0": { 1175 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 1176 + }, 1177 + "lodash@4.17.21": { 1178 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 1179 + }, 1180 + "loose-envify@1.4.0": { 1181 + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1182 + "dependencies": [ 1183 + "js-tokens" 1184 + ], 1185 + "bin": true 1186 + }, 1187 + "lucide-react@0.523.0_react@18.3.1": { 1188 + "integrity": "sha512-rUjQoy7egZT9XYVXBK1je9ckBnNp7qzRZOhLQx5RcEp2dCGlXo+mv6vf7Am4LimEcFBJIIZzSGfgTqc9QCrPSw==", 1189 + "dependencies": [ 1190 + "react" 1191 + ] 1192 + }, 1193 + "make-error@1.3.6": { 1194 + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" 1195 + }, 1196 + "math-intrinsics@1.1.0": { 1197 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" 1198 + }, 1199 + "media-typer@1.1.0": { 1200 + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" 1201 + }, 1202 + "merge-descriptors@2.0.0": { 1203 + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==" 1204 + }, 1205 + "mime-db@1.33.0": { 1206 + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" 1207 + }, 1208 + "mime-db@1.54.0": { 1209 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==" 1210 + }, 1211 + "mime-types@2.1.18": { 1212 + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", 1213 + "dependencies": [ 1214 + "mime-db@1.33.0" 1215 + ] 1216 + }, 1217 + "mime-types@3.0.1": { 1218 + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", 1219 + "dependencies": [ 1220 + "mime-db@1.54.0" 1221 + ] 1222 + }, 1223 + "minimatch@3.1.2": { 1224 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1225 + "dependencies": [ 1226 + "brace-expansion" 1227 + ] 1228 + }, 1229 + "ms@2.1.3": { 1230 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1231 + }, 182 1232 "multiformats@9.9.0": { 183 1233 "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" 184 1234 }, 1235 + "negotiator@1.0.0": { 1236 + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==" 1237 + }, 1238 + "object-assign@4.1.1": { 1239 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 1240 + }, 1241 + "object-inspect@1.13.4": { 1242 + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" 1243 + }, 1244 + "on-finished@2.4.1": { 1245 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 1246 + "dependencies": [ 1247 + "ee-first" 1248 + ] 1249 + }, 1250 + "once@1.4.0": { 1251 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1252 + "dependencies": [ 1253 + "wrappy" 1254 + ] 1255 + }, 1256 + "open@10.1.2": { 1257 + "integrity": "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==", 1258 + "dependencies": [ 1259 + "default-browser", 1260 + "define-lazy-prop", 1261 + "is-inside-container", 1262 + "is-wsl" 1263 + ] 1264 + }, 1265 + "parseurl@1.3.3": { 1266 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1267 + }, 185 1268 "partysocket@1.1.6": { 186 1269 "integrity": "sha512-LkEk8N9hMDDsDT0iDK0zuwUDFVrVMUXFXCeN3850Ng8wtjPqPBeJlwdeY6ROlJSEh3tPoTTasXoSBYH76y118w==", 187 1270 "dependencies": [ 188 1271 "event-target-polyfill" 189 1272 ] 190 1273 }, 1274 + "path-is-inside@1.0.2": { 1275 + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" 1276 + }, 1277 + "path-key@3.1.1": { 1278 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 1279 + }, 1280 + "path-to-regexp@3.3.0": { 1281 + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==" 1282 + }, 1283 + "path-to-regexp@8.3.0": { 1284 + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==" 1285 + }, 191 1286 "picocolors@1.1.1": { 192 1287 "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" 193 1288 }, 1289 + "pkce-challenge@4.1.0": { 1290 + "integrity": "sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ==" 1291 + }, 1292 + "pkce-challenge@5.0.0": { 1293 + "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==" 1294 + }, 194 1295 "prettier@3.6.2": { 195 1296 "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", 196 1297 "bin": true 197 1298 }, 1299 + "prismjs@1.30.0": { 1300 + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==" 1301 + }, 1302 + "proxy-addr@2.0.7": { 1303 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1304 + "dependencies": [ 1305 + "forwarded", 1306 + "ipaddr.js" 1307 + ] 1308 + }, 1309 + "punycode@2.3.1": { 1310 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" 1311 + }, 1312 + "qs@6.14.0": { 1313 + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", 1314 + "dependencies": [ 1315 + "side-channel" 1316 + ] 1317 + }, 1318 + "range-parser@1.2.0": { 1319 + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==" 1320 + }, 1321 + "range-parser@1.2.1": { 1322 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1323 + }, 1324 + "raw-body@3.0.1": { 1325 + "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==", 1326 + "dependencies": [ 1327 + "bytes@3.1.2", 1328 + "http-errors", 1329 + "iconv-lite@0.7.0", 1330 + "unpipe" 1331 + ] 1332 + }, 1333 + "react-dom@18.3.1_react@18.3.1": { 1334 + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", 1335 + "dependencies": [ 1336 + "loose-envify", 1337 + "react", 1338 + "scheduler" 1339 + ] 1340 + }, 1341 + "react-remove-scroll-bar@2.3.8_react@18.3.1": { 1342 + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", 1343 + "dependencies": [ 1344 + "react", 1345 + "react-style-singleton", 1346 + "tslib" 1347 + ] 1348 + }, 1349 + "react-remove-scroll@2.7.1_react@18.3.1": { 1350 + "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", 1351 + "dependencies": [ 1352 + "react", 1353 + "react-remove-scroll-bar", 1354 + "react-style-singleton", 1355 + "tslib", 1356 + "use-callback-ref", 1357 + "use-sidecar" 1358 + ] 1359 + }, 1360 + "react-simple-code-editor@0.14.1_react@18.3.1_react-dom@18.3.1__react@18.3.1": { 1361 + "integrity": "sha512-BR5DtNRy+AswWJECyA17qhUDvrrCZ6zXOCfkQY5zSmb96BVUbpVAv03WpcjcwtCwiLbIANx3gebHOcXYn1EHow==", 1362 + "dependencies": [ 1363 + "react", 1364 + "react-dom" 1365 + ] 1366 + }, 1367 + "react-style-singleton@2.2.3_react@18.3.1": { 1368 + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", 1369 + "dependencies": [ 1370 + "get-nonce", 1371 + "react", 1372 + "tslib" 1373 + ] 1374 + }, 1375 + "react@18.3.1": { 1376 + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", 1377 + "dependencies": [ 1378 + "loose-envify" 1379 + ] 1380 + }, 1381 + "require-directory@2.1.1": { 1382 + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" 1383 + }, 1384 + "require-from-string@2.0.2": { 1385 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" 1386 + }, 1387 + "router@2.2.0": { 1388 + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", 1389 + "dependencies": [ 1390 + "debug", 1391 + "depd", 1392 + "is-promise", 1393 + "parseurl", 1394 + "path-to-regexp@8.3.0" 1395 + ] 1396 + }, 1397 + "run-applescript@7.0.0": { 1398 + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==" 1399 + }, 1400 + "rxjs@7.8.2": { 1401 + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", 1402 + "dependencies": [ 1403 + "tslib" 1404 + ] 1405 + }, 1406 + "safe-buffer@5.2.1": { 1407 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1408 + }, 1409 + "safer-buffer@2.1.2": { 1410 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1411 + }, 1412 + "scheduler@0.23.2": { 1413 + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", 1414 + "dependencies": [ 1415 + "loose-envify" 1416 + ] 1417 + }, 1418 + "send@1.2.0": { 1419 + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", 1420 + "dependencies": [ 1421 + "debug", 1422 + "encodeurl", 1423 + "escape-html", 1424 + "etag", 1425 + "fresh", 1426 + "http-errors", 1427 + "mime-types@3.0.1", 1428 + "ms", 1429 + "on-finished", 1430 + "range-parser@1.2.1", 1431 + "statuses" 1432 + ] 1433 + }, 1434 + "serve-handler@6.1.6": { 1435 + "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", 1436 + "dependencies": [ 1437 + "bytes@3.0.0", 1438 + "content-disposition@0.5.2", 1439 + "mime-types@2.1.18", 1440 + "minimatch", 1441 + "path-is-inside", 1442 + "path-to-regexp@3.3.0", 1443 + "range-parser@1.2.0" 1444 + ] 1445 + }, 1446 + "serve-static@2.2.0": { 1447 + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", 1448 + "dependencies": [ 1449 + "encodeurl", 1450 + "escape-html", 1451 + "parseurl", 1452 + "send" 1453 + ] 1454 + }, 1455 + "setprototypeof@1.2.0": { 1456 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 1457 + }, 1458 + "shebang-command@2.0.0": { 1459 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1460 + "dependencies": [ 1461 + "shebang-regex" 1462 + ] 1463 + }, 1464 + "shebang-regex@3.0.0": { 1465 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 1466 + }, 1467 + "shell-quote@1.8.3": { 1468 + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==" 1469 + }, 1470 + "side-channel-list@1.0.0": { 1471 + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", 1472 + "dependencies": [ 1473 + "es-errors", 1474 + "object-inspect" 1475 + ] 1476 + }, 1477 + "side-channel-map@1.0.1": { 1478 + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", 1479 + "dependencies": [ 1480 + "call-bound", 1481 + "es-errors", 1482 + "get-intrinsic", 1483 + "object-inspect" 1484 + ] 1485 + }, 1486 + "side-channel-weakmap@1.0.2": { 1487 + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", 1488 + "dependencies": [ 1489 + "call-bound", 1490 + "es-errors", 1491 + "get-intrinsic", 1492 + "object-inspect", 1493 + "side-channel-map" 1494 + ] 1495 + }, 1496 + "side-channel@1.1.0": { 1497 + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", 1498 + "dependencies": [ 1499 + "es-errors", 1500 + "object-inspect", 1501 + "side-channel-list", 1502 + "side-channel-map", 1503 + "side-channel-weakmap" 1504 + ] 1505 + }, 1506 + "spawn-rx@5.1.2": { 1507 + "integrity": "sha512-/y7tJKALVZ1lPzeZZB9jYnmtrL7d0N2zkorii5a7r7dhHkWIuLTzZpZzMJLK1dmYRgX/NCc4iarTO3F7BS2c/A==", 1508 + "dependencies": [ 1509 + "debug", 1510 + "rxjs" 1511 + ] 1512 + }, 1513 + "statuses@2.0.1": { 1514 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" 1515 + }, 1516 + "string-width@4.2.3": { 1517 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1518 + "dependencies": [ 1519 + "emoji-regex", 1520 + "is-fullwidth-code-point", 1521 + "strip-ansi" 1522 + ] 1523 + }, 1524 + "strip-ansi@6.0.1": { 1525 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1526 + "dependencies": [ 1527 + "ansi-regex" 1528 + ] 1529 + }, 1530 + "supports-color@7.2.0": { 1531 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1532 + "dependencies": [ 1533 + "has-flag" 1534 + ] 1535 + }, 1536 + "supports-color@8.1.1": { 1537 + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 1538 + "dependencies": [ 1539 + "has-flag" 1540 + ] 1541 + }, 1542 + "tailwind-merge@2.6.0": { 1543 + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==" 1544 + }, 1545 + "tailwindcss-animate@1.0.7_tailwindcss@4.1.11": { 1546 + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", 1547 + "dependencies": [ 1548 + "tailwindcss" 1549 + ] 1550 + }, 1551 + "tailwindcss@4.1.11": { 1552 + "integrity": "sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==" 1553 + }, 1554 + "toidentifier@1.0.1": { 1555 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 1556 + }, 1557 + "tree-kill@1.2.2": { 1558 + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", 1559 + "bin": true 1560 + }, 1561 + "ts-node@10.9.2_@types+node@24.2.0_typescript@5.8.3": { 1562 + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", 1563 + "dependencies": [ 1564 + "@cspotcode/source-map-support", 1565 + "@tsconfig/node10", 1566 + "@tsconfig/node12", 1567 + "@tsconfig/node14", 1568 + "@tsconfig/node16", 1569 + "@types/node", 1570 + "acorn", 1571 + "acorn-walk", 1572 + "arg", 1573 + "create-require", 1574 + "diff", 1575 + "make-error", 1576 + "typescript", 1577 + "v8-compile-cache-lib", 1578 + "yn" 1579 + ], 1580 + "bin": true 1581 + }, 1582 + "tslib@2.8.1": { 1583 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" 1584 + }, 198 1585 "type-fest@4.41.0": { 199 1586 "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==" 200 1587 }, 1588 + "type-is@2.0.1": { 1589 + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", 1590 + "dependencies": [ 1591 + "content-type", 1592 + "media-typer", 1593 + "mime-types@3.0.1" 1594 + ] 1595 + }, 1596 + "typescript@5.8.3": { 1597 + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", 1598 + "bin": true 1599 + }, 201 1600 "uint8arrays@3.0.0": { 202 1601 "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", 203 1602 "dependencies": [ 204 1603 "multiformats" 205 1604 ] 206 1605 }, 1606 + "undici-types@7.10.0": { 1607 + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==" 1608 + }, 1609 + "unpipe@1.0.0": { 1610 + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" 1611 + }, 1612 + "uri-js@4.4.1": { 1613 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1614 + "dependencies": [ 1615 + "punycode" 1616 + ] 1617 + }, 1618 + "use-callback-ref@1.3.3_react@18.3.1": { 1619 + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", 1620 + "dependencies": [ 1621 + "react", 1622 + "tslib" 1623 + ] 1624 + }, 1625 + "use-sidecar@1.1.3_react@18.3.1": { 1626 + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", 1627 + "dependencies": [ 1628 + "detect-node-es", 1629 + "react", 1630 + "tslib" 1631 + ] 1632 + }, 1633 + "v8-compile-cache-lib@3.0.1": { 1634 + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" 1635 + }, 1636 + "vary@1.1.2": { 1637 + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 1638 + }, 1639 + "which@2.0.2": { 1640 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1641 + "dependencies": [ 1642 + "isexe" 1643 + ], 1644 + "bin": true 1645 + }, 1646 + "wrap-ansi@7.0.0": { 1647 + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1648 + "dependencies": [ 1649 + "ansi-styles", 1650 + "string-width", 1651 + "strip-ansi" 1652 + ] 1653 + }, 1654 + "wrappy@1.0.2": { 1655 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1656 + }, 1657 + "ws@8.18.3": { 1658 + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==" 1659 + }, 1660 + "y18n@5.0.8": { 1661 + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" 1662 + }, 1663 + "yargs-parser@21.1.1": { 1664 + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" 1665 + }, 1666 + "yargs@17.7.2": { 1667 + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", 1668 + "dependencies": [ 1669 + "cliui", 1670 + "escalade", 1671 + "get-caller-file", 1672 + "require-directory", 1673 + "string-width", 1674 + "y18n", 1675 + "yargs-parser" 1676 + ] 1677 + }, 1678 + "yn@3.1.1": { 1679 + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" 1680 + }, 207 1681 "yocto-queue@1.2.1": { 208 1682 "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==" 1683 + }, 1684 + "zod-to-json-schema@3.24.6_zod@3.25.76": { 1685 + "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", 1686 + "dependencies": [ 1687 + "zod" 1688 + ] 209 1689 }, 210 1690 "zod@3.25.76": { 211 1691 "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==" ··· 240 1720 "npm:@atcute/lex-cli@^2.3.1", 241 1721 "npm:@atcute/lexicons@^1.2.2", 242 1722 "npm:@atproto/lexicon@~0.5.1" 1723 + ] 1724 + }, 1725 + "packages/mcp": { 1726 + "dependencies": [ 1727 + "jsr:@logtape/logtape@^1.2.0", 1728 + "jsr:@std/cli@^1.0.23", 1729 + "npm:@modelcontextprotocol/sdk@^1.21.1", 1730 + "npm:fetch-to-node@^2.1.0", 1731 + "npm:zod@^3.25.76" 243 1732 ] 244 1733 }, 245 1734 "packages/producer": {
+26
packages/mcp/deno.jsonc
··· 1 + { 2 + "name": "@cistern/mcp", 3 + "version": "1.0.0", 4 + "license": "MIT", 5 + "exports": { 6 + ".": "./index.ts" 7 + }, 8 + "tasks": { 9 + "inspector": "npx @modelcontextprotocol/inspector", 10 + "http": "deno -P --allow-net ./index.ts --http", 11 + "stdio": "deno -P ./index.ts", 12 + "stdio:inspect": "npx @modelcontextprotocol/inspector deno task stdio" 13 + }, 14 + "permissions": { 15 + "default": { 16 + "env": true 17 + } 18 + }, 19 + "imports": { 20 + "@logtape/logtape": "jsr:@logtape/logtape@^1.2.0", 21 + "@modelcontextprotocol/sdk": "npm:@modelcontextprotocol/sdk@^1.21.1", 22 + "@std/cli": "jsr:@std/cli@^1.0.23", 23 + "fetch-to-node": "npm:fetch-to-node@^2.1.0", 24 + "zod": "npm:zod@^3.25.76" 25 + } 26 + }
+75
packages/mcp/index.ts
··· 1 + import { parseArgs } from "@std/cli"; 2 + import { configure, getConsoleSink, getLogger } from "@logtape/logtape"; 3 + import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; 4 + import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; 5 + import { toFetchResponse, toReqRes } from "fetch-to-node"; 6 + 7 + import { createServer } from "./server.ts"; 8 + 9 + async function main() { 10 + await configure({ 11 + sinks: { console: getConsoleSink() }, 12 + loggers: [ 13 + { category: "cistern-mcp", lowestLevel: "trace", sinks: ["console"] }, 14 + ], 15 + }); 16 + 17 + const logger = getLogger("cistern-mcp"); 18 + const args = parseArgs(Deno.args, { 19 + boolean: ["http"], 20 + }); 21 + 22 + const server = createServer(); 23 + 24 + if (!args.http) { 25 + logger.info("starting in stdio server"); 26 + 27 + const transport = new StdioServerTransport(); 28 + await server.connect(transport); 29 + } else { 30 + logger.info("starting in streamable HTTP server"); 31 + 32 + const transport = new StreamableHTTPServerTransport({ 33 + sessionIdGenerator: crypto.randomUUID, 34 + }); 35 + 36 + Deno.serve( 37 + { 38 + onListen(addr) { 39 + logger.info("http server listening at {hostname} on port {port}", { 40 + ...addr, 41 + }); 42 + }, 43 + onError(error) { 44 + logger.error( 45 + "unexpected route error: {error?.message}", 46 + error as Record<string, unknown>, 47 + ); 48 + 49 + return new Response(null, { status: 500 }); 50 + }, 51 + }, 52 + async function handler(request: Request): Promise<Response> { 53 + const PATH = new URLPattern({ pathname: "/mcp" }); 54 + 55 + if (!PATH.exec(request.url)) { 56 + logger.info("not found", { 57 + status: 404, 58 + url: request.url, 59 + }); 60 + 61 + return new Response(null, { status: 404 }); 62 + } 63 + 64 + const { req, res } = toReqRes(request); 65 + 66 + await server.connect(transport); 67 + await transport.handleRequest(req, res); 68 + 69 + return await toFetchResponse(res); 70 + }, 71 + ); 72 + } 73 + } 74 + 75 + await main();
+33
packages/mcp/server.ts
··· 1 + import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; 2 + import { getLogger } from "@logtape/logtape"; 3 + import { z } from "zod"; 4 + 5 + export function createServer() { 6 + const logger = getLogger("cistern-mcp"); 7 + const server = new McpServer({ 8 + name: "cistern-mcp", 9 + version: "1.0.0", 10 + }); 11 + 12 + server.registerTool( 13 + "add", 14 + { 15 + title: "Addition Tool", 16 + description: "Add two numbers", 17 + inputSchema: { a: z.string(), b: z.string() }, 18 + outputSchema: { result: z.number() }, 19 + }, 20 + ({ a, b }) => { 21 + logger.trace("Addition Tool called", { a, b }); 22 + 23 + const output = { result: a + b }; 24 + 25 + return Promise.resolve({ 26 + content: [{ type: "text", text: JSON.stringify(output) }], 27 + structuredContent: output, 28 + }); 29 + }, 30 + ); 31 + 32 + return server; 33 + }