Mirror of https://github.com/roostorg/coop github.com/roostorg/coop
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

[Express] Upgrade to express 5 (#283)

* [Express] Upgrade to express 5

* fix ci

* fix

authored by

Juan Mrad and committed by
GitHub
86090688 b10797e7

+660 -600
+38 -16
package-lock.json
··· 24 24 }, 25 25 "devDependencies": { 26 26 "@ianvs/prettier-plugin-sort-imports": "^4.1.0", 27 - "@types/express": "^4.17.10", 27 + "@types/express": "^5.0.3", 28 28 "@types/jest": "^26.0.20", 29 29 "@types/node": "^14.14.20", 30 30 "@types/passport": "^1.0.5", ··· 1857 1857 } 1858 1858 }, 1859 1859 "node_modules/@types/express": { 1860 - "version": "4.17.16", 1860 + "version": "5.0.6", 1861 + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", 1862 + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", 1861 1863 "dev": true, 1862 1864 "license": "MIT", 1863 1865 "dependencies": { 1864 1866 "@types/body-parser": "*", 1865 - "@types/express-serve-static-core": "^4.17.31", 1866 - "@types/qs": "*", 1867 - "@types/serve-static": "*" 1867 + "@types/express-serve-static-core": "^5.0.0", 1868 + "@types/serve-static": "^2" 1868 1869 } 1869 1870 }, 1870 1871 "node_modules/@types/express-serve-static-core": { 1871 - "version": "4.17.33", 1872 + "version": "5.1.1", 1873 + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", 1874 + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", 1872 1875 "dev": true, 1873 1876 "license": "MIT", 1874 1877 "dependencies": { 1875 1878 "@types/node": "*", 1876 1879 "@types/qs": "*", 1877 - "@types/range-parser": "*" 1880 + "@types/range-parser": "*", 1881 + "@types/send": "*" 1878 1882 } 1883 + }, 1884 + "node_modules/@types/http-errors": { 1885 + "version": "2.0.5", 1886 + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", 1887 + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", 1888 + "dev": true, 1889 + "license": "MIT" 1879 1890 }, 1880 1891 "node_modules/@types/istanbul-lib-coverage": { 1881 1892 "version": "2.0.4", ··· 1937 1948 "node": ">= 10.14.2" 1938 1949 } 1939 1950 }, 1940 - "node_modules/@types/mime": { 1941 - "version": "3.0.1", 1942 - "dev": true, 1943 - "license": "MIT" 1944 - }, 1945 1951 "node_modules/@types/node": { 1946 1952 "version": "14.18.36", 1947 1953 "license": "MIT" ··· 1955 1961 } 1956 1962 }, 1957 1963 "node_modules/@types/qs": { 1958 - "version": "6.9.7", 1964 + "version": "6.15.0", 1965 + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", 1966 + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", 1959 1967 "dev": true, 1960 1968 "license": "MIT" 1961 1969 }, 1962 1970 "node_modules/@types/range-parser": { 1963 - "version": "1.2.4", 1971 + "version": "1.2.7", 1972 + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", 1973 + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", 1964 1974 "dev": true, 1965 1975 "license": "MIT" 1966 1976 }, 1977 + "node_modules/@types/send": { 1978 + "version": "1.2.1", 1979 + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", 1980 + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", 1981 + "dev": true, 1982 + "license": "MIT", 1983 + "dependencies": { 1984 + "@types/node": "*" 1985 + } 1986 + }, 1967 1987 "node_modules/@types/serve-static": { 1968 - "version": "1.15.0", 1988 + "version": "2.2.0", 1989 + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", 1990 + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", 1969 1991 "dev": true, 1970 1992 "license": "MIT", 1971 1993 "dependencies": { 1972 - "@types/mime": "*", 1994 + "@types/http-errors": "*", 1973 1995 "@types/node": "*" 1974 1996 } 1975 1997 },
+1 -1
package.json
··· 41 41 }, 42 42 "devDependencies": { 43 43 "@ianvs/prettier-plugin-sort-imports": "^4.1.0", 44 - "@types/express": "^4.17.10", 44 + "@types/express": "^5.0.3", 45 45 "@types/jest": "^26.0.20", 46 46 "@types/node": "^14.14.20", 47 47 "@types/passport": "^1.0.5",
+5 -4
server/api.ts
··· 4 4 import { ApolloServer } from '@apollo/server'; 5 5 import { unwrapResolverError } from '@apollo/server/errors'; 6 6 import { ApolloServerPluginLandingPageDisabled } from '@apollo/server/plugin/disabled'; 7 - import { expressMiddleware } from '@as-integrations/express4'; 7 + import { expressMiddleware } from '@as-integrations/express5'; 8 8 import { makeExecutableSchema } from '@graphql-tools/schema'; 9 9 import { MapperKind, mapSchema } from '@graphql-tools/utils'; 10 10 import { MultiSamlStrategy } from '@node-saml/passport-saml'; ··· 160 160 { 161 161 passReqToCallback: true, 162 162 async getSamlOptions(req, done) { 163 - // orgId path param should be set in the /saml/* route handlers 164 - const orgId = req.params['orgId']; 163 + // orgId path param should be set in the /saml/* route handlers. 164 + const rawOrgId = req.params['orgId']; 165 + const orgId = typeof rawOrgId === 'string' ? rawOrgId : undefined; 165 166 166 167 if (!orgId) { 167 168 return done( ··· 254 255 255 256 app.post( 256 257 `/saml/login/:orgId/callback`, 257 - express.urlencoded({ extended: false }), 258 + express.urlencoded(), 258 259 passport.authenticate('saml', { 259 260 failureRedirect: '/', 260 261 failureFlash: true,
+592 -563
server/package-lock.json
··· 10 10 "license": "ISC", 11 11 "dependencies": { 12 12 "@apollo/server": "^5.5.0", 13 - "@as-integrations/express4": "^1.1.2", 13 + "@as-integrations/express5": "^1.1.2", 14 14 "@aws-sdk/client-s3": "^3.1017.0", 15 15 "@aws-sdk/client-secrets-manager": "^3.1017.0", 16 16 "@aws-sdk/client-ses": "^3.1017.0", ··· 33 33 "@types/connect-pg-simple": "^7.0.0", 34 34 "@types/cookie-parser": "^1.4.2", 35 35 "@types/debug": "^4.1.5", 36 - "@types/express": "^4.17.17", 36 + "@types/express": "^5.0.3", 37 37 "@types/express-session": "^1.17.4", 38 38 "@types/jsonwebtoken": "^9.0.10", 39 39 "@types/lodash": "^4.14.179", ··· 54 54 "dataloader": "^2.1.0", 55 55 "date-fns": "^2.30.0", 56 56 "eslint-plugin-switch-statement": "^0.0.11", 57 - "express": "^4.17.1", 57 + "express": "^5.1.0", 58 58 "express-session": "^1.17.2", 59 59 "fast-check": "^4.6.0", 60 60 "form-data": "^4.0.0", ··· 104 104 "@faker-js/faker": "^7.5.0", 105 105 "@types/cls-hooked": "^4.3.3", 106 106 "@types/cors": "^2.8.19", 107 + "@types/express-serve-static-core": "^5.1.1", 107 108 "@types/graphql-depth-limit": "^1.1.6", 108 109 "@types/jest": "^29.2.4", 109 110 "@types/js-yaml": "^4.0.5", ··· 412 413 "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" 413 414 } 414 415 }, 415 - "node_modules/@apollo/server/node_modules/body-parser": { 416 - "version": "2.2.2", 417 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", 418 - "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", 419 - "license": "MIT", 420 - "dependencies": { 421 - "bytes": "^3.1.2", 422 - "content-type": "^1.0.5", 423 - "debug": "^4.4.3", 424 - "http-errors": "^2.0.0", 425 - "iconv-lite": "^0.7.0", 426 - "on-finished": "^2.4.1", 427 - "qs": "^6.14.1", 428 - "raw-body": "^3.0.1", 429 - "type-is": "^2.0.1" 430 - }, 431 - "engines": { 432 - "node": ">=18" 433 - }, 434 - "funding": { 435 - "type": "opencollective", 436 - "url": "https://opencollective.com/express" 437 - } 438 - }, 439 - "node_modules/@apollo/server/node_modules/debug": { 440 - "version": "4.4.3", 441 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 442 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 443 - "license": "MIT", 444 - "dependencies": { 445 - "ms": "^2.1.3" 446 - }, 447 - "engines": { 448 - "node": ">=6.0" 449 - }, 450 - "peerDependenciesMeta": { 451 - "supports-color": { 452 - "optional": true 453 - } 454 - } 455 - }, 456 - "node_modules/@apollo/server/node_modules/finalhandler": { 457 - "version": "2.1.1", 458 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", 459 - "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", 460 - "license": "MIT", 461 - "dependencies": { 462 - "debug": "^4.4.0", 463 - "encodeurl": "^2.0.0", 464 - "escape-html": "^1.0.3", 465 - "on-finished": "^2.4.1", 466 - "parseurl": "^1.3.3", 467 - "statuses": "^2.0.1" 468 - }, 469 - "engines": { 470 - "node": ">= 18.0.0" 471 - }, 472 - "funding": { 473 - "type": "opencollective", 474 - "url": "https://opencollective.com/express" 475 - } 476 - }, 477 - "node_modules/@apollo/server/node_modules/iconv-lite": { 478 - "version": "0.7.2", 479 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", 480 - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", 481 - "license": "MIT", 482 - "dependencies": { 483 - "safer-buffer": ">= 2.1.2 < 3.0.0" 484 - }, 485 - "engines": { 486 - "node": ">=0.10.0" 487 - }, 488 - "funding": { 489 - "type": "opencollective", 490 - "url": "https://opencollective.com/express" 491 - } 492 - }, 493 416 "node_modules/@apollo/server/node_modules/lru-cache": { 494 417 "version": "11.3.5", 495 418 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", ··· 499 422 "node": "20 || >=22" 500 423 } 501 424 }, 502 - "node_modules/@apollo/server/node_modules/media-typer": { 503 - "version": "1.1.0", 504 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 505 - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", 506 - "license": "MIT", 507 - "engines": { 508 - "node": ">= 0.8" 509 - } 510 - }, 511 - "node_modules/@apollo/server/node_modules/mime-db": { 512 - "version": "1.54.0", 513 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 514 - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 515 - "license": "MIT", 516 - "engines": { 517 - "node": ">= 0.6" 518 - } 519 - }, 520 - "node_modules/@apollo/server/node_modules/mime-types": { 521 - "version": "3.0.2", 522 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", 523 - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", 524 - "license": "MIT", 525 - "dependencies": { 526 - "mime-db": "^1.54.0" 527 - }, 528 - "engines": { 529 - "node": ">=18" 530 - }, 531 - "funding": { 532 - "type": "opencollective", 533 - "url": "https://opencollective.com/express" 534 - } 535 - }, 536 - "node_modules/@apollo/server/node_modules/ms": { 537 - "version": "2.1.3", 538 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 539 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 540 - "license": "MIT" 541 - }, 542 - "node_modules/@apollo/server/node_modules/negotiator": { 543 - "version": "1.0.0", 544 - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", 545 - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", 546 - "license": "MIT", 547 - "engines": { 548 - "node": ">= 0.6" 549 - } 550 - }, 551 - "node_modules/@apollo/server/node_modules/raw-body": { 552 - "version": "3.0.2", 553 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", 554 - "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", 555 - "license": "MIT", 556 - "dependencies": { 557 - "bytes": "~3.1.2", 558 - "http-errors": "~2.0.1", 559 - "iconv-lite": "~0.7.0", 560 - "unpipe": "~1.0.0" 561 - }, 562 - "engines": { 563 - "node": ">= 0.10" 564 - } 565 - }, 566 - "node_modules/@apollo/server/node_modules/type-is": { 567 - "version": "2.0.1", 568 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", 569 - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", 570 - "license": "MIT", 571 - "dependencies": { 572 - "content-type": "^1.0.5", 573 - "media-typer": "^1.1.0", 574 - "mime-types": "^3.0.0" 575 - }, 576 - "engines": { 577 - "node": ">= 0.6" 578 - } 579 - }, 580 425 "node_modules/@apollo/server/node_modules/uuid": { 581 426 "version": "11.1.0", 582 427 "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", ··· 647 492 "node": ">=16" 648 493 } 649 494 }, 650 - "node_modules/@as-integrations/express4": { 495 + "node_modules/@as-integrations/express5": { 651 496 "version": "1.1.2", 652 - "resolved": "https://registry.npmjs.org/@as-integrations/express4/-/express4-1.1.2.tgz", 653 - "integrity": "sha512-PGeMcwoOKdYnZ4LtsmM7aLNoel3tbK8wKnfyahdRau1qb7wLbuaXB35zg3w34Ov4bm3WJtO3yzd8Bw5jVE+aIQ==", 497 + "resolved": "https://registry.npmjs.org/@as-integrations/express5/-/express5-1.1.2.tgz", 498 + "integrity": "sha512-BxfwtcWNf2CELDkuPQxi5Zl3WqY/dQVJYafeCBOGoFQjv5M0fjhxmAFZ9vKx/5YKKNeok4UY6PkFbHzmQrdxIA==", 654 499 "license": "MIT", 655 500 "engines": { 656 501 "node": ">=20" 657 502 }, 658 503 "peerDependencies": { 659 504 "@apollo/server": "^4.0.0 || ^5.0.0", 660 - "express": "^4.0.0" 505 + "express": "^5.0.0" 661 506 } 662 507 }, 663 508 "node_modules/@assemblyscript/loader": { ··· 3495 3340 "node": ">= 18" 3496 3341 } 3497 3342 }, 3498 - "node_modules/@node-saml/node-saml/node_modules/debug": { 3499 - "version": "4.4.3", 3500 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 3501 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 3502 - "license": "MIT", 3503 - "dependencies": { 3504 - "ms": "^2.1.3" 3505 - }, 3506 - "engines": { 3507 - "node": ">=6.0" 3508 - }, 3509 - "peerDependenciesMeta": { 3510 - "supports-color": { 3511 - "optional": true 3512 - } 3513 - } 3514 - }, 3515 - "node_modules/@node-saml/node-saml/node_modules/ms": { 3516 - "version": "2.1.3", 3517 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 3518 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 3519 - "license": "MIT" 3520 - }, 3521 3343 "node_modules/@node-saml/node-saml/node_modules/xml2js": { 3522 3344 "version": "0.6.2", 3523 3345 "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", ··· 3564 3386 }, 3565 3387 "engines": { 3566 3388 "node": ">= 18" 3567 - } 3568 - }, 3569 - "node_modules/@node-saml/passport-saml/node_modules/@types/express": { 3570 - "version": "4.17.25", 3571 - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", 3572 - "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", 3573 - "license": "MIT", 3574 - "dependencies": { 3575 - "@types/body-parser": "*", 3576 - "@types/express-serve-static-core": "^4.17.33", 3577 - "@types/qs": "*", 3578 - "@types/serve-static": "^1" 3579 3389 } 3580 3390 }, 3581 3391 "node_modules/@nodelib/fs.scandir": { ··· 10916 10726 "license": "MIT" 10917 10727 }, 10918 10728 "node_modules/@types/express": { 10919 - "version": "4.17.17", 10920 - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", 10921 - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", 10729 + "version": "5.0.6", 10730 + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", 10731 + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", 10732 + "license": "MIT", 10922 10733 "dependencies": { 10923 10734 "@types/body-parser": "*", 10924 - "@types/express-serve-static-core": "^4.17.33", 10925 - "@types/qs": "*", 10926 - "@types/serve-static": "*" 10735 + "@types/express-serve-static-core": "^5.0.0", 10736 + "@types/serve-static": "^2" 10927 10737 } 10928 10738 }, 10929 10739 "node_modules/@types/express-serve-static-core": { 10930 - "version": "4.17.35", 10931 - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", 10932 - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", 10740 + "version": "5.1.1", 10741 + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", 10742 + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", 10743 + "license": "MIT", 10933 10744 "dependencies": { 10934 10745 "@types/node": "*", 10935 10746 "@types/qs": "*", ··· 10943 10754 "integrity": "sha512-L25080PBYoRLu472HY/HNCxaXY8AaGgqGC8/p/8+BYMhG0RDOLQ1wpXOpAzr4Gi5TGozTKyJv5BVODM5UNyVMw==", 10944 10755 "dependencies": { 10945 10756 "@types/express": "*" 10757 + } 10758 + }, 10759 + "node_modules/@types/express/node_modules/@types/serve-static": { 10760 + "version": "2.2.0", 10761 + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", 10762 + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", 10763 + "license": "MIT", 10764 + "dependencies": { 10765 + "@types/http-errors": "*", 10766 + "@types/node": "*" 10946 10767 } 10947 10768 }, 10948 10769 "node_modules/@types/graceful-fs": { ··· 11159 10980 "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", 11160 10981 "dependencies": { 11161 10982 "@types/mime": "^1", 11162 - "@types/node": "*" 11163 - } 11164 - }, 11165 - "node_modules/@types/serve-static": { 11166 - "version": "1.15.2", 11167 - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", 11168 - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", 11169 - "dependencies": { 11170 - "@types/http-errors": "*", 11171 - "@types/mime": "*", 11172 10983 "@types/node": "*" 11173 10984 } 11174 10985 }, ··· 11509 11320 "node": "18 || 20 || >=22" 11510 11321 } 11511 11322 }, 11512 - "node_modules/@typescript-eslint/parser/node_modules/debug": { 11513 - "version": "4.4.3", 11514 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 11515 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 11516 - "dev": true, 11517 - "license": "MIT", 11518 - "dependencies": { 11519 - "ms": "^2.1.3" 11520 - }, 11521 - "engines": { 11522 - "node": ">=6.0" 11523 - }, 11524 - "peerDependenciesMeta": { 11525 - "supports-color": { 11526 - "optional": true 11527 - } 11528 - } 11529 - }, 11530 11323 "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { 11531 11324 "version": "5.0.1", 11532 11325 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", ··· 11556 11349 "url": "https://github.com/sponsors/isaacs" 11557 11350 } 11558 11351 }, 11559 - "node_modules/@typescript-eslint/parser/node_modules/ms": { 11560 - "version": "2.1.3", 11561 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 11562 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 11563 - "dev": true, 11564 - "license": "MIT" 11565 - }, 11566 11352 "node_modules/@typescript-eslint/parser/node_modules/ts-api-utils": { 11567 11353 "version": "2.5.0", 11568 11354 "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", ··· 11612 11398 "url": "https://opencollective.com/typescript-eslint" 11613 11399 } 11614 11400 }, 11615 - "node_modules/@typescript-eslint/project-service/node_modules/debug": { 11616 - "version": "4.4.3", 11617 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 11618 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 11619 - "dev": true, 11620 - "license": "MIT", 11621 - "dependencies": { 11622 - "ms": "^2.1.3" 11623 - }, 11624 - "engines": { 11625 - "node": ">=6.0" 11626 - }, 11627 - "peerDependenciesMeta": { 11628 - "supports-color": { 11629 - "optional": true 11630 - } 11631 - } 11632 - }, 11633 - "node_modules/@typescript-eslint/project-service/node_modules/ms": { 11634 - "version": "2.1.3", 11635 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 11636 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 11637 - "dev": true, 11638 - "license": "MIT" 11639 - }, 11640 11401 "node_modules/@typescript-eslint/scope-manager": { 11641 11402 "version": "7.18.0", 11642 11403 "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", ··· 11779 11540 "node": "18 || 20 || >=22" 11780 11541 } 11781 11542 }, 11782 - "node_modules/@typescript-eslint/type-utils/node_modules/debug": { 11783 - "version": "4.4.3", 11784 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 11785 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 11786 - "dev": true, 11787 - "license": "MIT", 11788 - "dependencies": { 11789 - "ms": "^2.1.3" 11790 - }, 11791 - "engines": { 11792 - "node": ">=6.0" 11793 - }, 11794 - "peerDependenciesMeta": { 11795 - "supports-color": { 11796 - "optional": true 11797 - } 11798 - } 11799 - }, 11800 11543 "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { 11801 11544 "version": "5.0.1", 11802 11545 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", ··· 11825 11568 "funding": { 11826 11569 "url": "https://github.com/sponsors/isaacs" 11827 11570 } 11828 - }, 11829 - "node_modules/@typescript-eslint/type-utils/node_modules/ms": { 11830 - "version": "2.1.3", 11831 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 11832 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 11833 - "dev": true, 11834 - "license": "MIT" 11835 11571 }, 11836 11572 "node_modules/@typescript-eslint/type-utils/node_modules/ts-api-utils": { 11837 11573 "version": "2.5.0", ··· 12036 11772 "node": "18 || 20 || >=22" 12037 11773 } 12038 11774 }, 12039 - "node_modules/@typescript-eslint/utils/node_modules/debug": { 12040 - "version": "4.4.3", 12041 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 12042 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 12043 - "dev": true, 12044 - "license": "MIT", 12045 - "dependencies": { 12046 - "ms": "^2.1.3" 12047 - }, 12048 - "engines": { 12049 - "node": ">=6.0" 12050 - }, 12051 - "peerDependenciesMeta": { 12052 - "supports-color": { 12053 - "optional": true 12054 - } 12055 - } 12056 - }, 12057 11775 "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { 12058 11776 "version": "5.0.1", 12059 11777 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", ··· 12082 11800 "funding": { 12083 11801 "url": "https://github.com/sponsors/isaacs" 12084 11802 } 12085 - }, 12086 - "node_modules/@typescript-eslint/utils/node_modules/ms": { 12087 - "version": "2.1.3", 12088 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 12089 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 12090 - "dev": true, 12091 - "license": "MIT" 12092 11803 }, 12093 11804 "node_modules/@typescript-eslint/utils/node_modules/ts-api-utils": { 12094 11805 "version": "2.5.0", ··· 12162 11873 } 12163 11874 }, 12164 11875 "node_modules/accepts": { 12165 - "version": "1.3.8", 12166 - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 12167 - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 11876 + "version": "2.0.0", 11877 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", 11878 + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", 11879 + "license": "MIT", 12168 11880 "dependencies": { 12169 - "mime-types": "~2.1.34", 12170 - "negotiator": "0.6.3" 11881 + "mime-types": "^3.0.0", 11882 + "negotiator": "^1.0.0" 12171 11883 }, 12172 11884 "engines": { 12173 11885 "node": ">= 0.6" 12174 11886 } 12175 11887 }, 11888 + "node_modules/accepts/node_modules/mime-db": { 11889 + "version": "1.54.0", 11890 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 11891 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 11892 + "license": "MIT", 11893 + "engines": { 11894 + "node": ">= 0.6" 11895 + } 11896 + }, 11897 + "node_modules/accepts/node_modules/mime-types": { 11898 + "version": "3.0.2", 11899 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", 11900 + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", 11901 + "license": "MIT", 11902 + "dependencies": { 11903 + "mime-db": "^1.54.0" 11904 + }, 11905 + "engines": { 11906 + "node": ">=18" 11907 + }, 11908 + "funding": { 11909 + "type": "opencollective", 11910 + "url": "https://opencollective.com/express" 11911 + } 11912 + }, 12176 11913 "node_modules/acorn": { 12177 11914 "version": "8.15.0", 12178 11915 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", ··· 12377 12114 "node_modules/array-flatten": { 12378 12115 "version": "1.1.1", 12379 12116 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 12380 - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 12117 + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", 12118 + "license": "MIT", 12119 + "optional": true 12381 12120 }, 12382 12121 "node_modules/array-includes": { 12383 12122 "version": "3.1.9", ··· 12723 12462 } 12724 12463 }, 12725 12464 "node_modules/body-parser": { 12726 - "version": "1.20.4", 12727 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", 12728 - "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", 12465 + "version": "2.2.2", 12466 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", 12467 + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", 12729 12468 "license": "MIT", 12730 12469 "dependencies": { 12731 - "bytes": "~3.1.2", 12732 - "content-type": "~1.0.5", 12733 - "debug": "2.6.9", 12734 - "depd": "2.0.0", 12735 - "destroy": "~1.2.0", 12736 - "http-errors": "~2.0.1", 12737 - "iconv-lite": "~0.4.24", 12738 - "on-finished": "~2.4.1", 12739 - "qs": "~6.14.0", 12740 - "raw-body": "~2.5.3", 12741 - "type-is": "~1.6.18", 12742 - "unpipe": "~1.0.0" 12470 + "bytes": "^3.1.2", 12471 + "content-type": "^1.0.5", 12472 + "debug": "^4.4.3", 12473 + "http-errors": "^2.0.0", 12474 + "iconv-lite": "^0.7.0", 12475 + "on-finished": "^2.4.1", 12476 + "qs": "^6.14.1", 12477 + "raw-body": "^3.0.1", 12478 + "type-is": "^2.0.1" 12743 12479 }, 12744 12480 "engines": { 12745 - "node": ">= 0.8", 12746 - "npm": "1.2.8000 || >= 1.4.16" 12747 - } 12748 - }, 12749 - "node_modules/body-parser/node_modules/debug": { 12750 - "version": "2.6.9", 12751 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 12752 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 12753 - "dependencies": { 12754 - "ms": "2.0.0" 12481 + "node": ">=18" 12482 + }, 12483 + "funding": { 12484 + "type": "opencollective", 12485 + "url": "https://opencollective.com/express" 12755 12486 } 12756 - }, 12757 - "node_modules/body-parser/node_modules/ms": { 12758 - "version": "2.0.0", 12759 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 12760 - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 12761 12487 }, 12762 12488 "node_modules/bowser": { 12763 12489 "version": "2.14.1", ··· 13172 12898 } 13173 12899 }, 13174 12900 "node_modules/content-disposition": { 13175 - "version": "0.5.4", 13176 - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 13177 - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 13178 - "dependencies": { 13179 - "safe-buffer": "5.2.1" 13180 - }, 12901 + "version": "1.1.0", 12902 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", 12903 + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", 12904 + "license": "MIT", 13181 12905 "engines": { 13182 - "node": ">= 0.6" 12906 + "node": ">=18" 12907 + }, 12908 + "funding": { 12909 + "type": "opencollective", 12910 + "url": "https://opencollective.com/express" 13183 12911 } 13184 12912 }, 13185 12913 "node_modules/content-type": { ··· 13460 13188 } 13461 13189 }, 13462 13190 "node_modules/debug": { 13463 - "version": "4.3.4", 13464 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 13465 - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 13191 + "version": "4.4.3", 13192 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 13193 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 13194 + "license": "MIT", 13466 13195 "dependencies": { 13467 - "ms": "2.1.2" 13196 + "ms": "^2.1.3" 13468 13197 }, 13469 13198 "engines": { 13470 13199 "node": ">=6.0" ··· 13583 13312 "version": "1.2.0", 13584 13313 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 13585 13314 "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", 13315 + "license": "MIT", 13316 + "optional": true, 13586 13317 "engines": { 13587 13318 "node": ">= 0.8", 13588 13319 "npm": "1.2.8000 || >= 1.4.16" ··· 14283 14014 "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" 14284 14015 } 14285 14016 }, 14286 - "node_modules/eslint-plugin-jsdoc/node_modules/debug": { 14287 - "version": "4.4.3", 14288 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 14289 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 14290 - "dev": true, 14291 - "license": "MIT", 14292 - "dependencies": { 14293 - "ms": "^2.1.3" 14294 - }, 14295 - "engines": { 14296 - "node": ">=6.0" 14297 - }, 14298 - "peerDependenciesMeta": { 14299 - "supports-color": { 14300 - "optional": true 14301 - } 14302 - } 14303 - }, 14304 14017 "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { 14305 14018 "version": "5.0.0", 14306 14019 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz", ··· 14331 14044 "funding": { 14332 14045 "url": "https://opencollective.com/eslint" 14333 14046 } 14334 - }, 14335 - "node_modules/eslint-plugin-jsdoc/node_modules/ms": { 14336 - "version": "2.1.3", 14337 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 14338 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 14339 - "dev": true, 14340 - "license": "MIT" 14341 14047 }, 14342 14048 "node_modules/eslint-plugin-node": { 14343 14049 "version": "11.1.0", ··· 14687 14393 } 14688 14394 }, 14689 14395 "node_modules/express": { 14690 - "version": "4.22.1", 14691 - "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", 14692 - "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", 14396 + "version": "5.2.1", 14397 + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", 14398 + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", 14693 14399 "license": "MIT", 14694 14400 "dependencies": { 14695 - "accepts": "~1.3.8", 14696 - "array-flatten": "1.1.1", 14697 - "body-parser": "~1.20.3", 14698 - "content-disposition": "~0.5.4", 14699 - "content-type": "~1.0.4", 14700 - "cookie": "~0.7.1", 14701 - "cookie-signature": "~1.0.6", 14702 - "debug": "2.6.9", 14703 - "depd": "2.0.0", 14704 - "encodeurl": "~2.0.0", 14705 - "escape-html": "~1.0.3", 14706 - "etag": "~1.8.1", 14707 - "finalhandler": "~1.3.1", 14708 - "fresh": "~0.5.2", 14709 - "http-errors": "~2.0.0", 14710 - "merge-descriptors": "1.0.3", 14711 - "methods": "~1.1.2", 14712 - "on-finished": "~2.4.1", 14713 - "parseurl": "~1.3.3", 14714 - "path-to-regexp": "~0.1.12", 14715 - "proxy-addr": "~2.0.7", 14716 - "qs": "~6.14.0", 14717 - "range-parser": "~1.2.1", 14718 - "safe-buffer": "5.2.1", 14719 - "send": "~0.19.0", 14720 - "serve-static": "~1.16.2", 14721 - "setprototypeof": "1.2.0", 14722 - "statuses": "~2.0.1", 14723 - "type-is": "~1.6.18", 14724 - "utils-merge": "1.0.1", 14725 - "vary": "~1.1.2" 14401 + "accepts": "^2.0.0", 14402 + "body-parser": "^2.2.1", 14403 + "content-disposition": "^1.0.0", 14404 + "content-type": "^1.0.5", 14405 + "cookie": "^0.7.1", 14406 + "cookie-signature": "^1.2.1", 14407 + "debug": "^4.4.0", 14408 + "depd": "^2.0.0", 14409 + "encodeurl": "^2.0.0", 14410 + "escape-html": "^1.0.3", 14411 + "etag": "^1.8.1", 14412 + "finalhandler": "^2.1.0", 14413 + "fresh": "^2.0.0", 14414 + "http-errors": "^2.0.0", 14415 + "merge-descriptors": "^2.0.0", 14416 + "mime-types": "^3.0.0", 14417 + "on-finished": "^2.4.1", 14418 + "once": "^1.4.0", 14419 + "parseurl": "^1.3.3", 14420 + "proxy-addr": "^2.0.7", 14421 + "qs": "^6.14.0", 14422 + "range-parser": "^1.2.1", 14423 + "router": "^2.2.0", 14424 + "send": "^1.1.0", 14425 + "serve-static": "^2.2.0", 14426 + "statuses": "^2.0.1", 14427 + "type-is": "^2.0.1", 14428 + "vary": "^1.1.2" 14726 14429 }, 14727 14430 "engines": { 14728 - "node": ">= 0.10.0" 14431 + "node": ">= 18" 14729 14432 }, 14730 14433 "funding": { 14731 14434 "type": "opencollective", ··· 14764 14467 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 14765 14468 "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 14766 14469 }, 14767 - "node_modules/express/node_modules/debug": { 14768 - "version": "2.6.9", 14769 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 14770 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 14470 + "node_modules/express/node_modules/cookie-signature": { 14471 + "version": "1.2.2", 14472 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", 14473 + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", 14474 + "license": "MIT", 14475 + "engines": { 14476 + "node": ">=6.6.0" 14477 + } 14478 + }, 14479 + "node_modules/express/node_modules/mime-db": { 14480 + "version": "1.54.0", 14481 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 14482 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 14483 + "license": "MIT", 14484 + "engines": { 14485 + "node": ">= 0.6" 14486 + } 14487 + }, 14488 + "node_modules/express/node_modules/mime-types": { 14489 + "version": "3.0.2", 14490 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", 14491 + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", 14492 + "license": "MIT", 14771 14493 "dependencies": { 14772 - "ms": "2.0.0" 14494 + "mime-db": "^1.54.0" 14495 + }, 14496 + "engines": { 14497 + "node": ">=18" 14498 + }, 14499 + "funding": { 14500 + "type": "opencollective", 14501 + "url": "https://opencollective.com/express" 14773 14502 } 14774 - }, 14775 - "node_modules/express/node_modules/ms": { 14776 - "version": "2.0.0", 14777 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 14778 - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 14779 14503 }, 14780 14504 "node_modules/extend": { 14781 14505 "version": "3.0.2", ··· 15008 14732 } 15009 14733 }, 15010 14734 "node_modules/finalhandler": { 15011 - "version": "1.3.2", 15012 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", 15013 - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", 14735 + "version": "2.1.1", 14736 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", 14737 + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", 15014 14738 "license": "MIT", 15015 14739 "dependencies": { 15016 - "debug": "2.6.9", 15017 - "encodeurl": "~2.0.0", 15018 - "escape-html": "~1.0.3", 15019 - "on-finished": "~2.4.1", 15020 - "parseurl": "~1.3.3", 15021 - "statuses": "~2.0.2", 15022 - "unpipe": "~1.0.0" 14740 + "debug": "^4.4.0", 14741 + "encodeurl": "^2.0.0", 14742 + "escape-html": "^1.0.3", 14743 + "on-finished": "^2.4.1", 14744 + "parseurl": "^1.3.3", 14745 + "statuses": "^2.0.1" 15023 14746 }, 15024 14747 "engines": { 15025 - "node": ">= 0.8" 15026 - } 15027 - }, 15028 - "node_modules/finalhandler/node_modules/debug": { 15029 - "version": "2.6.9", 15030 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 15031 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 15032 - "license": "MIT", 15033 - "dependencies": { 15034 - "ms": "2.0.0" 14748 + "node": ">= 18.0.0" 14749 + }, 14750 + "funding": { 14751 + "type": "opencollective", 14752 + "url": "https://opencollective.com/express" 15035 14753 } 15036 - }, 15037 - "node_modules/finalhandler/node_modules/ms": { 15038 - "version": "2.0.0", 15039 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 15040 - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", 15041 - "license": "MIT" 15042 14754 }, 15043 14755 "node_modules/find-up": { 15044 14756 "version": "5.0.0", ··· 15206 14918 } 15207 14919 }, 15208 14920 "node_modules/fresh": { 15209 - "version": "0.5.2", 15210 - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 15211 - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", 14921 + "version": "2.0.0", 14922 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", 14923 + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", 15212 14924 "license": "MIT", 15213 14925 "engines": { 15214 - "node": ">= 0.6" 14926 + "node": ">= 0.8" 15215 14927 } 15216 14928 }, 15217 14929 "node_modules/from": { ··· 15685 15397 "ws": "7.x || 8.x" 15686 15398 } 15687 15399 }, 15400 + "node_modules/graphql-passport/node_modules/accepts": { 15401 + "version": "1.3.8", 15402 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 15403 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 15404 + "license": "MIT", 15405 + "optional": true, 15406 + "dependencies": { 15407 + "mime-types": "~2.1.34", 15408 + "negotiator": "0.6.3" 15409 + }, 15410 + "engines": { 15411 + "node": ">= 0.6" 15412 + } 15413 + }, 15414 + "node_modules/graphql-passport/node_modules/body-parser": { 15415 + "version": "1.20.4", 15416 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", 15417 + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", 15418 + "license": "MIT", 15419 + "optional": true, 15420 + "dependencies": { 15421 + "bytes": "~3.1.2", 15422 + "content-type": "~1.0.5", 15423 + "debug": "2.6.9", 15424 + "depd": "2.0.0", 15425 + "destroy": "~1.2.0", 15426 + "http-errors": "~2.0.1", 15427 + "iconv-lite": "~0.4.24", 15428 + "on-finished": "~2.4.1", 15429 + "qs": "~6.14.0", 15430 + "raw-body": "~2.5.3", 15431 + "type-is": "~1.6.18", 15432 + "unpipe": "~1.0.0" 15433 + }, 15434 + "engines": { 15435 + "node": ">= 0.8", 15436 + "npm": "1.2.8000 || >= 1.4.16" 15437 + } 15438 + }, 15439 + "node_modules/graphql-passport/node_modules/content-disposition": { 15440 + "version": "0.5.4", 15441 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 15442 + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 15443 + "license": "MIT", 15444 + "optional": true, 15445 + "dependencies": { 15446 + "safe-buffer": "5.2.1" 15447 + }, 15448 + "engines": { 15449 + "node": ">= 0.6" 15450 + } 15451 + }, 15452 + "node_modules/graphql-passport/node_modules/debug": { 15453 + "version": "2.6.9", 15454 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 15455 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 15456 + "license": "MIT", 15457 + "optional": true, 15458 + "dependencies": { 15459 + "ms": "2.0.0" 15460 + } 15461 + }, 15462 + "node_modules/graphql-passport/node_modules/debug/node_modules/ms": { 15463 + "version": "2.0.0", 15464 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 15465 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", 15466 + "license": "MIT", 15467 + "optional": true 15468 + }, 15469 + "node_modules/graphql-passport/node_modules/express": { 15470 + "version": "4.22.1", 15471 + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", 15472 + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", 15473 + "license": "MIT", 15474 + "optional": true, 15475 + "dependencies": { 15476 + "accepts": "~1.3.8", 15477 + "array-flatten": "1.1.1", 15478 + "body-parser": "~1.20.3", 15479 + "content-disposition": "~0.5.4", 15480 + "content-type": "~1.0.4", 15481 + "cookie": "~0.7.1", 15482 + "cookie-signature": "~1.0.6", 15483 + "debug": "2.6.9", 15484 + "depd": "2.0.0", 15485 + "encodeurl": "~2.0.0", 15486 + "escape-html": "~1.0.3", 15487 + "etag": "~1.8.1", 15488 + "finalhandler": "~1.3.1", 15489 + "fresh": "~0.5.2", 15490 + "http-errors": "~2.0.0", 15491 + "merge-descriptors": "1.0.3", 15492 + "methods": "~1.1.2", 15493 + "on-finished": "~2.4.1", 15494 + "parseurl": "~1.3.3", 15495 + "path-to-regexp": "~0.1.12", 15496 + "proxy-addr": "~2.0.7", 15497 + "qs": "~6.14.0", 15498 + "range-parser": "~1.2.1", 15499 + "safe-buffer": "5.2.1", 15500 + "send": "~0.19.0", 15501 + "serve-static": "~1.16.2", 15502 + "setprototypeof": "1.2.0", 15503 + "statuses": "~2.0.1", 15504 + "type-is": "~1.6.18", 15505 + "utils-merge": "1.0.1", 15506 + "vary": "~1.1.2" 15507 + }, 15508 + "engines": { 15509 + "node": ">= 0.10.0" 15510 + }, 15511 + "funding": { 15512 + "type": "opencollective", 15513 + "url": "https://opencollective.com/express" 15514 + } 15515 + }, 15516 + "node_modules/graphql-passport/node_modules/finalhandler": { 15517 + "version": "1.3.2", 15518 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", 15519 + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", 15520 + "license": "MIT", 15521 + "optional": true, 15522 + "dependencies": { 15523 + "debug": "2.6.9", 15524 + "encodeurl": "~2.0.0", 15525 + "escape-html": "~1.0.3", 15526 + "on-finished": "~2.4.1", 15527 + "parseurl": "~1.3.3", 15528 + "statuses": "~2.0.2", 15529 + "unpipe": "~1.0.0" 15530 + }, 15531 + "engines": { 15532 + "node": ">= 0.8" 15533 + } 15534 + }, 15535 + "node_modules/graphql-passport/node_modules/fresh": { 15536 + "version": "0.5.2", 15537 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 15538 + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", 15539 + "license": "MIT", 15540 + "optional": true, 15541 + "engines": { 15542 + "node": ">= 0.6" 15543 + } 15544 + }, 15688 15545 "node_modules/graphql-passport/node_modules/graphql": { 15689 15546 "version": "15.8.0", 15690 15547 "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", ··· 15694 15551 "node": ">= 10.x" 15695 15552 } 15696 15553 }, 15554 + "node_modules/graphql-passport/node_modules/iconv-lite": { 15555 + "version": "0.4.24", 15556 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 15557 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 15558 + "license": "MIT", 15559 + "optional": true, 15560 + "dependencies": { 15561 + "safer-buffer": ">= 2.1.2 < 3" 15562 + }, 15563 + "engines": { 15564 + "node": ">=0.10.0" 15565 + } 15566 + }, 15567 + "node_modules/graphql-passport/node_modules/media-typer": { 15568 + "version": "0.3.0", 15569 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 15570 + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", 15571 + "license": "MIT", 15572 + "optional": true, 15573 + "engines": { 15574 + "node": ">= 0.6" 15575 + } 15576 + }, 15577 + "node_modules/graphql-passport/node_modules/merge-descriptors": { 15578 + "version": "1.0.3", 15579 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", 15580 + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", 15581 + "license": "MIT", 15582 + "optional": true, 15583 + "funding": { 15584 + "url": "https://github.com/sponsors/sindresorhus" 15585 + } 15586 + }, 15587 + "node_modules/graphql-passport/node_modules/negotiator": { 15588 + "version": "0.6.3", 15589 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 15590 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 15591 + "license": "MIT", 15592 + "optional": true, 15593 + "engines": { 15594 + "node": ">= 0.6" 15595 + } 15596 + }, 15597 + "node_modules/graphql-passport/node_modules/path-to-regexp": { 15598 + "version": "0.1.13", 15599 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", 15600 + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", 15601 + "license": "MIT", 15602 + "optional": true 15603 + }, 15604 + "node_modules/graphql-passport/node_modules/raw-body": { 15605 + "version": "2.5.3", 15606 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", 15607 + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", 15608 + "license": "MIT", 15609 + "optional": true, 15610 + "dependencies": { 15611 + "bytes": "~3.1.2", 15612 + "http-errors": "~2.0.1", 15613 + "iconv-lite": "~0.4.24", 15614 + "unpipe": "~1.0.0" 15615 + }, 15616 + "engines": { 15617 + "node": ">= 0.8" 15618 + } 15619 + }, 15620 + "node_modules/graphql-passport/node_modules/send": { 15621 + "version": "0.19.2", 15622 + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", 15623 + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", 15624 + "license": "MIT", 15625 + "optional": true, 15626 + "dependencies": { 15627 + "debug": "2.6.9", 15628 + "depd": "2.0.0", 15629 + "destroy": "1.2.0", 15630 + "encodeurl": "~2.0.0", 15631 + "escape-html": "~1.0.3", 15632 + "etag": "~1.8.1", 15633 + "fresh": "~0.5.2", 15634 + "http-errors": "~2.0.1", 15635 + "mime": "1.6.0", 15636 + "ms": "2.1.3", 15637 + "on-finished": "~2.4.1", 15638 + "range-parser": "~1.2.1", 15639 + "statuses": "~2.0.2" 15640 + }, 15641 + "engines": { 15642 + "node": ">= 0.8.0" 15643 + } 15644 + }, 15645 + "node_modules/graphql-passport/node_modules/serve-static": { 15646 + "version": "1.16.3", 15647 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", 15648 + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", 15649 + "license": "MIT", 15650 + "optional": true, 15651 + "dependencies": { 15652 + "encodeurl": "~2.0.0", 15653 + "escape-html": "~1.0.3", 15654 + "parseurl": "~1.3.3", 15655 + "send": "~0.19.1" 15656 + }, 15657 + "engines": { 15658 + "node": ">= 0.8.0" 15659 + } 15660 + }, 15661 + "node_modules/graphql-passport/node_modules/type-is": { 15662 + "version": "1.6.18", 15663 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 15664 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 15665 + "license": "MIT", 15666 + "optional": true, 15667 + "dependencies": { 15668 + "media-typer": "0.3.0", 15669 + "mime-types": "~2.1.24" 15670 + }, 15671 + "engines": { 15672 + "node": ">= 0.6" 15673 + } 15674 + }, 15697 15675 "node_modules/graphql-scalars": { 15698 15676 "version": "1.22.2", 15699 15677 "resolved": "https://registry.npmjs.org/graphql-scalars/-/graphql-scalars-1.22.2.tgz", ··· 15938 15916 } 15939 15917 }, 15940 15918 "node_modules/iconv-lite": { 15941 - "version": "0.4.24", 15942 - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 15943 - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 15919 + "version": "0.7.2", 15920 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", 15921 + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", 15944 15922 "license": "MIT", 15945 15923 "dependencies": { 15946 - "safer-buffer": ">= 2.1.2 < 3" 15924 + "safer-buffer": ">= 2.1.2 < 3.0.0" 15947 15925 }, 15948 15926 "engines": { 15949 15927 "node": ">=0.10.0" 15928 + }, 15929 + "funding": { 15930 + "type": "opencollective", 15931 + "url": "https://opencollective.com/express" 15950 15932 } 15951 15933 }, 15952 15934 "node_modules/ignore": { ··· 16368 16350 "funding": { 16369 16351 "url": "https://github.com/sponsors/ljharb" 16370 16352 } 16353 + }, 16354 + "node_modules/is-promise": { 16355 + "version": "4.0.0", 16356 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", 16357 + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", 16358 + "license": "MIT" 16371 16359 }, 16372 16360 "node_modules/is-regex": { 16373 16361 "version": "1.2.1", ··· 17752 17740 } 17753 17741 }, 17754 17742 "node_modules/media-typer": { 17755 - "version": "0.3.0", 17756 - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 17757 - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", 17743 + "version": "1.1.0", 17744 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 17745 + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", 17746 + "license": "MIT", 17758 17747 "engines": { 17759 - "node": ">= 0.6" 17748 + "node": ">= 0.8" 17760 17749 } 17761 17750 }, 17762 17751 "node_modules/merge-descriptors": { 17763 - "version": "1.0.3", 17764 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", 17765 - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", 17752 + "version": "2.0.0", 17753 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", 17754 + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", 17766 17755 "license": "MIT", 17756 + "engines": { 17757 + "node": ">=18" 17758 + }, 17767 17759 "funding": { 17768 17760 "url": "https://github.com/sponsors/sindresorhus" 17769 17761 } ··· 17787 17779 "version": "1.1.2", 17788 17780 "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 17789 17781 "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", 17782 + "devOptional": true, 17790 17783 "engines": { 17791 17784 "node": ">= 0.6" 17792 17785 } ··· 17821 17814 "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 17822 17815 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 17823 17816 "license": "MIT", 17817 + "optional": true, 17824 17818 "bin": { 17825 17819 "mime": "cli.js" 17826 17820 }, ··· 17918 17912 } 17919 17913 }, 17920 17914 "node_modules/ms": { 17921 - "version": "2.1.2", 17922 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 17923 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 17915 + "version": "2.1.3", 17916 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 17917 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 17918 + "license": "MIT" 17924 17919 }, 17925 17920 "node_modules/msgpackr": { 17926 17921 "version": "1.11.5", ··· 17959 17954 "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" 17960 17955 }, 17961 17956 "node_modules/negotiator": { 17962 - "version": "0.6.3", 17963 - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 17964 - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 17957 + "version": "1.0.0", 17958 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", 17959 + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", 17960 + "license": "MIT", 17965 17961 "engines": { 17966 17962 "node": ">= 0.6" 17967 17963 } ··· 18619 18615 "license": "ISC" 18620 18616 }, 18621 18617 "node_modules/path-to-regexp": { 18622 - "version": "0.1.13", 18623 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", 18624 - "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", 18625 - "license": "MIT" 18618 + "version": "8.4.2", 18619 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", 18620 + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", 18621 + "license": "MIT", 18622 + "funding": { 18623 + "type": "opencollective", 18624 + "url": "https://opencollective.com/express" 18625 + } 18626 18626 }, 18627 18627 "node_modules/path-type": { 18628 18628 "version": "4.0.0", ··· 19154 19154 } 19155 19155 }, 19156 19156 "node_modules/raw-body": { 19157 - "version": "2.5.3", 19158 - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", 19159 - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", 19157 + "version": "3.0.2", 19158 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", 19159 + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", 19160 19160 "license": "MIT", 19161 19161 "dependencies": { 19162 19162 "bytes": "~3.1.2", 19163 19163 "http-errors": "~2.0.1", 19164 - "iconv-lite": "~0.4.24", 19164 + "iconv-lite": "~0.7.0", 19165 19165 "unpipe": "~1.0.0" 19166 19166 }, 19167 19167 "engines": { 19168 - "node": ">= 0.8" 19168 + "node": ">= 0.10" 19169 19169 } 19170 19170 }, 19171 19171 "node_modules/react-is": { ··· 19472 19472 "url": "https://github.com/sponsors/isaacs" 19473 19473 } 19474 19474 }, 19475 + "node_modules/router": { 19476 + "version": "2.2.0", 19477 + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", 19478 + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", 19479 + "license": "MIT", 19480 + "dependencies": { 19481 + "debug": "^4.4.0", 19482 + "depd": "^2.0.0", 19483 + "is-promise": "^4.0.0", 19484 + "parseurl": "^1.3.3", 19485 + "path-to-regexp": "^8.0.0" 19486 + }, 19487 + "engines": { 19488 + "node": ">= 18" 19489 + } 19490 + }, 19475 19491 "node_modules/run-parallel": { 19476 19492 "version": "1.2.0", 19477 19493 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", ··· 19602 19618 "node_modules/safer-buffer": { 19603 19619 "version": "2.1.2", 19604 19620 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 19605 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 19621 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 19622 + "license": "MIT" 19606 19623 }, 19607 19624 "node_modules/sax": { 19608 19625 "version": "1.4.4", ··· 19626 19643 } 19627 19644 }, 19628 19645 "node_modules/send": { 19629 - "version": "0.19.2", 19630 - "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", 19631 - "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", 19646 + "version": "1.2.1", 19647 + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", 19648 + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", 19632 19649 "license": "MIT", 19633 19650 "dependencies": { 19634 - "debug": "2.6.9", 19635 - "depd": "2.0.0", 19636 - "destroy": "1.2.0", 19637 - "encodeurl": "~2.0.0", 19638 - "escape-html": "~1.0.3", 19639 - "etag": "~1.8.1", 19640 - "fresh": "~0.5.2", 19641 - "http-errors": "~2.0.1", 19642 - "mime": "1.6.0", 19643 - "ms": "2.1.3", 19644 - "on-finished": "~2.4.1", 19645 - "range-parser": "~1.2.1", 19646 - "statuses": "~2.0.2" 19651 + "debug": "^4.4.3", 19652 + "encodeurl": "^2.0.0", 19653 + "escape-html": "^1.0.3", 19654 + "etag": "^1.8.1", 19655 + "fresh": "^2.0.0", 19656 + "http-errors": "^2.0.1", 19657 + "mime-types": "^3.0.2", 19658 + "ms": "^2.1.3", 19659 + "on-finished": "^2.4.1", 19660 + "range-parser": "^1.2.1", 19661 + "statuses": "^2.0.2" 19647 19662 }, 19648 19663 "engines": { 19649 - "node": ">= 0.8.0" 19664 + "node": ">= 18" 19665 + }, 19666 + "funding": { 19667 + "type": "opencollective", 19668 + "url": "https://opencollective.com/express" 19650 19669 } 19651 19670 }, 19652 - "node_modules/send/node_modules/debug": { 19653 - "version": "2.6.9", 19654 - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 19655 - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 19671 + "node_modules/send/node_modules/mime-db": { 19672 + "version": "1.54.0", 19673 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 19674 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 19675 + "license": "MIT", 19676 + "engines": { 19677 + "node": ">= 0.6" 19678 + } 19679 + }, 19680 + "node_modules/send/node_modules/mime-types": { 19681 + "version": "3.0.2", 19682 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", 19683 + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", 19656 19684 "license": "MIT", 19657 19685 "dependencies": { 19658 - "ms": "2.0.0" 19686 + "mime-db": "^1.54.0" 19687 + }, 19688 + "engines": { 19689 + "node": ">=18" 19690 + }, 19691 + "funding": { 19692 + "type": "opencollective", 19693 + "url": "https://opencollective.com/express" 19659 19694 } 19660 - }, 19661 - "node_modules/send/node_modules/debug/node_modules/ms": { 19662 - "version": "2.0.0", 19663 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 19664 - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", 19665 - "license": "MIT" 19666 - }, 19667 - "node_modules/send/node_modules/ms": { 19668 - "version": "2.1.3", 19669 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 19670 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 19671 - "license": "MIT" 19672 19695 }, 19673 19696 "node_modules/sequelize": { 19674 19697 "version": "6.37.8", ··· 19741 19764 } 19742 19765 }, 19743 19766 "node_modules/serve-static": { 19744 - "version": "1.16.3", 19745 - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", 19746 - "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", 19767 + "version": "2.2.1", 19768 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", 19769 + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", 19747 19770 "license": "MIT", 19748 19771 "dependencies": { 19749 - "encodeurl": "~2.0.0", 19750 - "escape-html": "~1.0.3", 19751 - "parseurl": "~1.3.3", 19752 - "send": "~0.19.1" 19772 + "encodeurl": "^2.0.0", 19773 + "escape-html": "^1.0.3", 19774 + "parseurl": "^1.3.3", 19775 + "send": "^1.2.0" 19753 19776 }, 19754 19777 "engines": { 19755 - "node": ">= 0.8.0" 19778 + "node": ">= 18" 19779 + }, 19780 + "funding": { 19781 + "type": "opencollective", 19782 + "url": "https://opencollective.com/express" 19756 19783 } 19757 19784 }, 19758 19785 "node_modules/set-function-length": { ··· 20851 20878 } 20852 20879 }, 20853 20880 "node_modules/type-is": { 20854 - "version": "1.6.18", 20855 - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 20856 - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 20881 + "version": "2.0.1", 20882 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", 20883 + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", 20884 + "license": "MIT", 20857 20885 "dependencies": { 20858 - "media-typer": "0.3.0", 20859 - "mime-types": "~2.1.24" 20886 + "content-type": "^1.0.5", 20887 + "media-typer": "^1.1.0", 20888 + "mime-types": "^3.0.0" 20860 20889 }, 20861 20890 "engines": { 20862 20891 "node": ">= 0.6" 20892 + } 20893 + }, 20894 + "node_modules/type-is/node_modules/mime-db": { 20895 + "version": "1.54.0", 20896 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 20897 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 20898 + "license": "MIT", 20899 + "engines": { 20900 + "node": ">= 0.6" 20901 + } 20902 + }, 20903 + "node_modules/type-is/node_modules/mime-types": { 20904 + "version": "3.0.2", 20905 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", 20906 + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", 20907 + "license": "MIT", 20908 + "dependencies": { 20909 + "mime-db": "^1.54.0" 20910 + }, 20911 + "engines": { 20912 + "node": ">=18" 20913 + }, 20914 + "funding": { 20915 + "type": "opencollective", 20916 + "url": "https://opencollective.com/express" 20863 20917 } 20864 20918 }, 20865 20919 "node_modules/typed-array-buffer": { ··· 21058 21112 "node": "18 || 20 || >=22" 21059 21113 } 21060 21114 }, 21061 - "node_modules/typescript-eslint/node_modules/debug": { 21062 - "version": "4.4.3", 21063 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 21064 - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 21065 - "dev": true, 21066 - "license": "MIT", 21067 - "dependencies": { 21068 - "ms": "^2.1.3" 21069 - }, 21070 - "engines": { 21071 - "node": ">=6.0" 21072 - }, 21073 - "peerDependenciesMeta": { 21074 - "supports-color": { 21075 - "optional": true 21076 - } 21077 - } 21078 - }, 21079 21115 "node_modules/typescript-eslint/node_modules/eslint-visitor-keys": { 21080 21116 "version": "5.0.1", 21081 21117 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", ··· 21104 21140 "funding": { 21105 21141 "url": "https://github.com/sponsors/isaacs" 21106 21142 } 21107 - }, 21108 - "node_modules/typescript-eslint/node_modules/ms": { 21109 - "version": "2.1.3", 21110 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 21111 - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 21112 - "dev": true, 21113 - "license": "MIT" 21114 21143 }, 21115 21144 "node_modules/typescript-eslint/node_modules/ts-api-utils": { 21116 21145 "version": "2.5.0",
+6 -4
server/package.json
··· 24 24 "license": "ISC", 25 25 "dependencies": { 26 26 "@apollo/server": "^5.5.0", 27 - "@as-integrations/express4": "^1.1.2", 27 + "@as-integrations/express5": "^1.1.2", 28 28 "@aws-sdk/client-s3": "^3.1017.0", 29 29 "@aws-sdk/client-secrets-manager": "^3.1017.0", 30 30 "@aws-sdk/client-ses": "^3.1017.0", ··· 47 47 "@types/connect-pg-simple": "^7.0.0", 48 48 "@types/cookie-parser": "^1.4.2", 49 49 "@types/debug": "^4.1.5", 50 - "@types/express": "^4.17.17", 50 + "@types/express": "^5.0.3", 51 51 "@types/express-session": "^1.17.4", 52 52 "@types/jsonwebtoken": "^9.0.10", 53 53 "@types/lodash": "^4.14.179", ··· 68 68 "dataloader": "^2.1.0", 69 69 "date-fns": "^2.30.0", 70 70 "eslint-plugin-switch-statement": "^0.0.11", 71 - "express": "^4.17.1", 71 + "express": "^5.1.0", 72 72 "express-session": "^1.17.2", 73 73 "fast-check": "^4.6.0", 74 74 "form-data": "^4.0.0", ··· 118 118 "@faker-js/faker": "^7.5.0", 119 119 "@types/cls-hooked": "^4.3.3", 120 120 "@types/cors": "^2.8.19", 121 + "@types/express-serve-static-core": "^5.1.1", 121 122 "@types/graphql-depth-limit": "^1.1.6", 122 123 "@types/jest": "^29.2.4", 123 124 "@types/js-yaml": "^4.0.5", ··· 156 157 "classNameTemplate": "{classname}", 157 158 "titleTemplate": "{title}" 158 159 }, 159 - "//": "Use an override to remove the @types/restify dependency, b/c it conflicts w/ pino-http. And a fork of retry-axios that has fixed type defs for TS's new module resolution algorithm.", 160 + "//": "Use an override to remove the @types/restify dependency, b/c it conflicts w/ pino-http. And a fork of retry-axios that has fixed type defs for TS's new module resolution algorithm. Also pin @types/express to v5 across the dep tree so transitive deps (e.g. @node-saml/passport-saml) don't drag in v4 types alongside our v5 types.", 160 161 "overrides": { 161 162 "@types/restify": "npm:pino@8.6.0", 163 + "@types/express": "$@types/express", 162 164 "@googlemaps/google-maps-services-js@^3.3.16": { 163 165 "retry-axios": "npm:@ethanresnick/retry-axios@2.6.1" 164 166 }
+12 -10
server/routes/index.test.ts
··· 45 45 next(new Error('error after send.')); 46 46 }); 47 47 48 - // We have to move this new route to be before the catch all 404 route, 49 - // which makes it tricky. So we put it right after the three handlers that 50 - // express adds automatically (to parse query params, create the request 51 - // object, and (iiuc) normalize trailing path slashes), but before all our 52 - // handlers. 53 - const stack = server._router.stack as unknown[]; 48 + // Move the new route before the `/api/v1` sub-app mount, otherwise 49 + // requests to `/api/v1/error` fall through to the sub-app's 404 handler. 50 + type Layer = { name: string }; 51 + const stack = server.router.stack as Layer[]; 54 52 const newlyAddedErrorRoute = stack.at(-1); 55 53 if (newlyAddedErrorRoute === undefined) { 56 54 throw new Error('expected route on stack'); 57 55 } 56 + const apiMountIdx = stack.findIndex((l) => l.name === 'mounted_app'); 57 + if (apiMountIdx === -1) { 58 + throw new Error('expected /api/v1 sub-app mount on stack'); 59 + } 58 60 const withoutLast = stack.slice(0, -1); 59 61 // eslint-disable-next-line functional/immutable-data -- express test-only router reordering 60 - server._router.stack = [ 61 - ...withoutLast.slice(0, 3), 62 + server.router.stack = [ 63 + ...withoutLast.slice(0, apiMountIdx), 62 64 newlyAddedErrorRoute, 63 - ...withoutLast.slice(3), 64 - ] as typeof server._router.stack; 65 + ...withoutLast.slice(apiMountIdx), 66 + ] as typeof server.router.stack; 65 67 66 68 try { 67 69 const resp = await request.get('/api/v1/error');
+3 -1
server/routes/integration_logos/serveIntegrationLogo.ts
··· 12 12 _deps: Dependencies, 13 13 ): RequestHandlerWithBodies<Record<string, never>, undefined> { 14 14 return (req, res, next) => { 15 - const integrationId = req.params['integrationId']; 15 + const rawIntegrationId = req.params['integrationId']; 16 + const integrationId = 17 + typeof rawIntegrationId === 'string' ? rawIntegrationId : undefined; 16 18 if (!integrationId || integrationId.length === 0) { 17 19 return next( 18 20 makeNotFoundError('Missing integration id.', { shouldErrorSpan: true }),
+3 -1
server/routes/integration_logos/serveIntegrationLogoWithBackground.ts
··· 11 11 _deps: Dependencies, 12 12 ): RequestHandlerWithBodies<Record<string, never>, undefined> { 13 13 return (req, res, next) => { 14 - const integrationId = req.params['integrationId']; 14 + const rawIntegrationId = req.params['integrationId']; 15 + const integrationId = 16 + typeof rawIntegrationId === 'string' ? rawIntegrationId : undefined; 15 17 if (!integrationId || integrationId.length === 0) { 16 18 return next( 17 19 makeNotFoundError('Missing integration id.', { shouldErrorSpan: true }),