Uh oh!
There was an error while loading. Please reload this page.
⚡ Bolt: Replace bcryptjs with native bcrypt - #6
Conversation
- Replaced bcryptjs with bcrypt in backend/package.json - Updated backend/src/routes/auth.ts to use bcrypt - Fixed pre-existing type errors in backend/src/routes/notes.ts for Express 5 compatibility - Documented performance gains in .jules/bolt.md Co-authored-by: davidraehles <6085055+davidraehles@users.noreply.github.com>
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
Pull request overview
This PR optimizes authentication performance by replacing the pure JavaScript bcryptjs library with the native C++ bcrypt library, yielding significant performance improvements (~38% faster hashing, ~27% faster password comparison). The PR also fixes pre-existing TypeScript type errors in the notes routes where req.params.id was causing type mismatches with Prisma.
Changes:
- Replaced bcryptjs with native bcrypt (v6.0.0) for significant performance gains by offloading cryptographic operations to the Node.js thread pool
- Fixed TypeScript type errors in notes routes by explicitly casting
req.params.idto string - Added performance learnings documentation in .jules/bolt.md
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| backend/package.json | Updated dependencies: replaced bcryptjs with bcrypt@6.0.0 and @types/bcryptjs with @types/bcrypt@6.0.0 |
| backend/src/routes/auth.ts | Changed import from bcryptjs to bcrypt (API-compatible) |
| backend/src/routes/notes.ts | Fixed type errors by explicitly casting req.params.id to string in PUT and DELETE routes |
| backend/pnpm-lock.yaml | New lockfile with bcrypt@6.0.0 and its native dependencies (node-addon-api, node-gyp-build) |
| .jules/bolt.md | Added performance learnings documentation comparing bcryptjs vs bcrypt benchmarks |
Files not reviewed (1)
- backend/pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| lockfileVersion: '9.0' | ||
| settings: | ||
| autoInstallPeers: true | ||
| excludeLinksFromLockfile: false | ||
| importers: | ||
| .: | ||
| dependencies: | ||
| '@prisma/client': | ||
| specifier: ^6.19.0 | ||
| version: 6.19.2(prisma@6.19.2(typescript@5.9.3))(typescript@5.9.3) | ||
| bcrypt: | ||
| specifier: ^6.0.0 | ||
| version: 6.0.0 | ||
| cors: | ||
| specifier: ^2.8.5 | ||
| version: 2.8.6 | ||
| dotenv: | ||
| specifier: ^17.2.3 | ||
| version: 17.3.1 | ||
| express: | ||
| specifier: ^5.1.0 | ||
| version: 5.2.1 | ||
| jsonwebtoken: | ||
| specifier: ^9.0.2 | ||
| version: 9.0.3 | ||
| devDependencies: | ||
| '@types/bcrypt': | ||
| specifier: ^6.0.0 | ||
| version: 6.0.0 | ||
| '@types/cors': | ||
| specifier: ^2.8.19 | ||
| version: 2.8.19 | ||
| '@types/express': | ||
| specifier: ^5.0.5 | ||
| version: 5.0.6 | ||
| '@types/jsonwebtoken': | ||
| specifier: ^9.0.10 | ||
| version: 9.0.10 | ||
| '@types/node': | ||
| specifier: ^24.10.1 | ||
| version: 24.10.13 | ||
| nodemon: | ||
| specifier: ^3.1.11 | ||
| version: 3.1.11 | ||
| prisma: | ||
| specifier: ^6.19.0 | ||
| version: 6.19.2(typescript@5.9.3) | ||
| ts-node: | ||
| specifier: ^10.9.2 | ||
| version: 10.9.2(@types/node@24.10.13)(typescript@5.9.3) | ||
| typescript: | ||
| specifier: ^5.9.3 | ||
| version: 5.9.3 | ||
| packages: | ||
| '@cspotcode/source-map-support@0.8.1': | ||
| resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} | ||
| engines: {node: '>=12'} | ||
| '@jridgewell/resolve-uri@3.1.2': | ||
| resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} | ||
| engines: {node: '>=6.0.0'} | ||
| '@jridgewell/sourcemap-codec@1.5.5': | ||
| resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} | ||
| '@jridgewell/trace-mapping@0.3.9': | ||
| resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} | ||
| '@prisma/client@6.19.2': | ||
| resolution: {integrity: sha512-gR2EMvfK/aTxsuooaDA32D8v+us/8AAet+C3J1cc04SW35FPdZYgLF+iN4NDLUgAaUGTKdAB0CYenu1TAgGdMg==} | ||
| engines: {node: '>=18.18'} | ||
| peerDependencies: | ||
| prisma: '*' | ||
| typescript: '>=5.1.0' | ||
| peerDependenciesMeta: | ||
| prisma: | ||
| optional: true | ||
| typescript: | ||
| optional: true | ||
| '@prisma/config@6.19.2': | ||
| resolution: {integrity: sha512-kadBGDl+aUswv/zZMk9Mx0C8UZs1kjao8H9/JpI4Wh4SHZaM7zkTwiKn/iFLfRg+XtOAo/Z/c6pAYhijKl0nzQ==} | ||
| '@prisma/debug@6.19.2': | ||
| resolution: {integrity: sha512-lFnEZsLdFLmEVCVNdskLDCL8Uup41GDfU0LUfquw+ercJC8ODTuL0WNKgOKmYxCJVvFwf0OuZBzW99DuWmoH2A==} | ||
| '@prisma/engines-version@7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7': | ||
| resolution: {integrity: sha512-03bgb1VD5gvuumNf+7fVGBzfpJPjmqV423l/WxsWk2cNQ42JD0/SsFBPhN6z8iAvdHs07/7ei77SKu7aZfq8bA==} | ||
| '@prisma/engines@6.19.2': | ||
| resolution: {integrity: sha512-TTkJ8r+uk/uqczX40wb+ODG0E0icVsMgwCTyTHXehaEfb0uo80M9g1aW1tEJrxmFHeOZFXdI2sTA1j1AgcHi4A==} | ||
| '@prisma/fetch-engine@6.19.2': | ||
| resolution: {integrity: sha512-h4Ff4Pho+SR1S8XerMCC12X//oY2bG3Iug/fUnudfcXEUnIeRiBdXHFdGlGOgQ3HqKgosTEhkZMvGM9tWtYC+Q==} | ||
| '@prisma/get-platform@6.19.2': | ||
| resolution: {integrity: sha512-PGLr06JUSTqIvztJtAzIxOwtWKtJm5WwOG6xpsgD37Rc84FpfUBGLKz65YpJBGtkRQGXTYEFie7pYALocC3MtA==} | ||
| '@standard-schema/spec@1.1.0': | ||
| resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} | ||
| '@tsconfig/node10@1.0.12': | ||
| resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} | ||
| '@tsconfig/node12@1.0.11': | ||
| resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} | ||
| '@tsconfig/node14@1.0.3': | ||
| resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} | ||
| '@tsconfig/node16@1.0.4': | ||
| resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} | ||
| '@types/bcrypt@6.0.0': | ||
| resolution: {integrity: sha512-/oJGukuH3D2+D+3H4JWLaAsJ/ji86dhRidzZ/Od7H/i8g+aCmvkeCc6Ni/f9uxGLSQVCRZkX2/lqEFG2BvWtlQ==} | ||
| '@types/body-parser@1.19.6': | ||
| resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} | ||
| '@types/connect@3.4.38': | ||
| resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} | ||
| '@types/cors@2.8.19': | ||
| resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} | ||
| '@types/express-serve-static-core@5.1.1': | ||
| resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} | ||
| '@types/express@5.0.6': | ||
| resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} | ||
| '@types/http-errors@2.0.5': | ||
| resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} | ||
| '@types/jsonwebtoken@9.0.10': | ||
| resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} | ||
| '@types/ms@2.1.0': | ||
| resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} | ||
| '@types/node@24.10.13': | ||
| resolution: {integrity: sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==} | ||
| '@types/qs@6.14.0': | ||
| resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} | ||
| '@types/range-parser@1.2.7': | ||
| resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} | ||
| '@types/send@1.2.1': | ||
| resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} | ||
| '@types/serve-static@2.2.0': | ||
| resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} | ||
| accepts@2.0.0: | ||
| resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} | ||
| engines: {node: '>= 0.6'} | ||
| acorn-walk@8.3.4: | ||
| resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} | ||
| engines: {node: '>=0.4.0'} | ||
| acorn@8.15.0: | ||
| resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} | ||
| engines: {node: '>=0.4.0'} | ||
| hasBin: true | ||
| anymatch@3.1.3: | ||
| resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} | ||
| engines: {node: '>= 8'} | ||
| arg@4.1.3: | ||
| resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} | ||
| balanced-match@1.0.2: | ||
| resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} | ||
| bcrypt@6.0.0: | ||
| resolution: {integrity: sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg==} | ||
| engines: {node: '>= 18'} | ||
| binary-extensions@2.3.0: | ||
| resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} | ||
| engines: {node: '>=8'} | ||
| body-parser@2.2.2: | ||
| resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} | ||
| engines: {node: '>=18'} | ||
| brace-expansion@1.1.12: | ||
| resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} | ||
| braces@3.0.3: | ||
| resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} | ||
| engines: {node: '>=8'} | ||
| buffer-equal-constant-time@1.0.1: | ||
| resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} | ||
| bytes@3.1.2: | ||
| resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} | ||
| engines: {node: '>= 0.8'} | ||
| c12@3.1.0: | ||
| resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==} | ||
| peerDependencies: | ||
| magicast: ^0.3.5 | ||
| peerDependenciesMeta: | ||
| magicast: | ||
| optional: true | ||
| call-bind-apply-helpers@1.0.2: | ||
| resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} | ||
| engines: {node: '>= 0.4'} | ||
| call-bound@1.0.4: | ||
| resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} | ||
| engines: {node: '>= 0.4'} | ||
| chokidar@3.6.0: | ||
| resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} | ||
| engines: {node: '>= 8.10.0'} | ||
| chokidar@4.0.3: | ||
| resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} | ||
| engines: {node: '>= 14.16.0'} | ||
| citty@0.1.6: | ||
| resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} | ||
| citty@0.2.1: | ||
| resolution: {integrity: sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg==} | ||
| concat-map@0.0.1: | ||
| resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} | ||
| confbox@0.2.4: | ||
| resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} | ||
| consola@3.4.2: | ||
| resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} | ||
| engines: {node: ^14.18.0 || >=16.10.0} | ||
| content-disposition@1.0.1: | ||
| resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} | ||
| engines: {node: '>=18'} | ||
| content-type@1.0.5: | ||
| resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} | ||
| engines: {node: '>= 0.6'} | ||
| cookie-signature@1.2.2: | ||
| resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} | ||
| engines: {node: '>=6.6.0'} | ||
| cookie@0.7.2: | ||
| resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} | ||
| engines: {node: '>= 0.6'} | ||
| cors@2.8.6: | ||
| resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} | ||
| engines: {node: '>= 0.10'} | ||
| create-require@1.1.1: | ||
| resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} | ||
| debug@4.4.3: | ||
| resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} | ||
| engines: {node: '>=6.0'} | ||
| peerDependencies: | ||
| supports-color: '*' | ||
| peerDependenciesMeta: | ||
| supports-color: | ||
| optional: true | ||
| deepmerge-ts@7.1.5: | ||
| resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==} | ||
| engines: {node: '>=16.0.0'} | ||
| defu@6.1.4: | ||
| resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} | ||
| depd@2.0.0: | ||
| resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} | ||
| engines: {node: '>= 0.8'} | ||
| destr@2.0.5: | ||
| resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} | ||
| diff@4.0.4: | ||
| resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} | ||
| engines: {node: '>=0.3.1'} | ||
| dotenv@16.6.1: | ||
| resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} | ||
| engines: {node: '>=12'} | ||
| dotenv@17.3.1: | ||
| resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} | ||
| engines: {node: '>=12'} | ||
| dunder-proto@1.0.1: | ||
| resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} | ||
| engines: {node: '>= 0.4'} | ||
| ecdsa-sig-formatter@1.0.11: | ||
| resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} | ||
| ee-first@1.1.1: | ||
| resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} | ||
| effect@3.18.4: | ||
| resolution: {integrity: sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA==} | ||
| empathic@2.0.0: | ||
| resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} | ||
| engines: {node: '>=14'} | ||
| encodeurl@2.0.0: | ||
| resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} | ||
| engines: {node: '>= 0.8'} | ||
| es-define-property@1.0.1: | ||
| resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} | ||
| engines: {node: '>= 0.4'} | ||
| es-errors@1.3.0: | ||
| resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} | ||
| engines: {node: '>= 0.4'} | ||
| es-object-atoms@1.1.1: | ||
| resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} | ||
| engines: {node: '>= 0.4'} | ||
| escape-html@1.0.3: | ||
| resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} | ||
| etag@1.8.1: | ||
| resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} | ||
| engines: {node: '>= 0.6'} | ||
| express@5.2.1: | ||
| resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} | ||
| engines: {node: '>= 18'} | ||
| exsolve@1.0.8: | ||
| resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} | ||
| fast-check@3.23.2: | ||
| resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} | ||
| engines: {node: '>=8.0.0'} | ||
| fill-range@7.1.1: | ||
| resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} | ||
| engines: {node: '>=8'} | ||
| finalhandler@2.1.1: | ||
| resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} | ||
| engines: {node: '>= 18.0.0'} | ||
| forwarded@0.2.0: | ||
| resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} | ||
| engines: {node: '>= 0.6'} | ||
| fresh@2.0.0: | ||
| resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} | ||
| engines: {node: '>= 0.8'} | ||
| fsevents@2.3.3: | ||
| resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} | ||
| engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} | ||
| os: [darwin] | ||
| function-bind@1.1.2: | ||
| resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} | ||
| get-intrinsic@1.3.0: | ||
| resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} | ||
| engines: {node: '>= 0.4'} | ||
| get-proto@1.0.1: | ||
| resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} | ||
| engines: {node: '>= 0.4'} | ||
| giget@2.0.0: | ||
| resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} | ||
| hasBin: true | ||
| glob-parent@5.1.2: | ||
| resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} | ||
| engines: {node: '>= 6'} | ||
| gopd@1.2.0: | ||
| resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} | ||
| engines: {node: '>= 0.4'} | ||
| has-flag@3.0.0: | ||
| resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} | ||
| engines: {node: '>=4'} | ||
| has-symbols@1.1.0: | ||
| resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} | ||
| engines: {node: '>= 0.4'} | ||
| hasown@2.0.2: | ||
| resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} | ||
| engines: {node: '>= 0.4'} | ||
| http-errors@2.0.1: | ||
| resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} | ||
| engines: {node: '>= 0.8'} | ||
| iconv-lite@0.7.2: | ||
| resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} | ||
| engines: {node: '>=0.10.0'} | ||
| ignore-by-default@1.0.1: | ||
| resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} | ||
| inherits@2.0.4: | ||
| resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} | ||
| ipaddr.js@1.9.1: | ||
| resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} | ||
| engines: {node: '>= 0.10'} | ||
| is-binary-path@2.1.0: | ||
| resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} | ||
| engines: {node: '>=8'} | ||
| is-extglob@2.1.1: | ||
| resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} | ||
| engines: {node: '>=0.10.0'} | ||
| is-glob@4.0.3: | ||
| resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} | ||
| engines: {node: '>=0.10.0'} | ||
| is-number@7.0.0: | ||
| resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} | ||
| engines: {node: '>=0.12.0'} | ||
| is-promise@4.0.0: | ||
| resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} | ||
| jiti@2.6.1: | ||
| resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} | ||
| hasBin: true | ||
| jsonwebtoken@9.0.3: | ||
| resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} | ||
| engines: {node: '>=12', npm: '>=6'} | ||
| jwa@2.0.1: | ||
| resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} | ||
| jws@4.0.1: | ||
| resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} | ||
| lodash.includes@4.3.0: | ||
| resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} | ||
| lodash.isboolean@3.0.3: | ||
| resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} | ||
| lodash.isinteger@4.0.4: | ||
| resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} | ||
| lodash.isnumber@3.0.3: | ||
| resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} | ||
| lodash.isplainobject@4.0.6: | ||
| resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} | ||
| lodash.isstring@4.0.1: | ||
| resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} | ||
| lodash.once@4.1.1: | ||
| resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} | ||
| make-error@1.3.6: | ||
| resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} | ||
| math-intrinsics@1.1.0: | ||
| resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} | ||
| engines: {node: '>= 0.4'} | ||
| media-typer@1.1.0: | ||
| resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} | ||
| engines: {node: '>= 0.8'} | ||
| merge-descriptors@2.0.0: | ||
| resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} | ||
| engines: {node: '>=18'} | ||
| mime-db@1.54.0: | ||
| resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} | ||
| engines: {node: '>= 0.6'} | ||
| mime-types@3.0.2: | ||
| resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} | ||
| engines: {node: '>=18'} | ||
| minimatch@3.1.2: | ||
| resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} | ||
| ms@2.1.3: | ||
| resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} | ||
| negotiator@1.0.0: | ||
| resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} | ||
| engines: {node: '>= 0.6'} | ||
| node-addon-api@8.5.0: | ||
| resolution: {integrity: sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==} | ||
| engines: {node: ^18 || ^20 || >= 21} | ||
| node-fetch-native@1.6.7: | ||
| resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} | ||
| node-gyp-build@4.8.4: | ||
| resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} | ||
| hasBin: true | ||
| nodemon@3.1.11: | ||
| resolution: {integrity: sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g==} | ||
| engines: {node: '>=10'} | ||
| hasBin: true | ||
| normalize-path@3.0.0: | ||
| resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} | ||
| engines: {node: '>=0.10.0'} | ||
| nypm@0.6.5: | ||
| resolution: {integrity: sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==} | ||
| engines: {node: '>=18'} | ||
| hasBin: true | ||
| object-assign@4.1.1: | ||
| resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} | ||
| engines: {node: '>=0.10.0'} | ||
| object-inspect@1.13.4: | ||
| resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} | ||
| engines: {node: '>= 0.4'} | ||
| ohash@2.0.11: | ||
| resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} | ||
| on-finished@2.4.1: | ||
| resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} | ||
| engines: {node: '>= 0.8'} | ||
| once@1.4.0: | ||
| resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} | ||
| parseurl@1.3.3: | ||
| resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} | ||
| engines: {node: '>= 0.8'} | ||
| path-to-regexp@8.3.0: | ||
| resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} | ||
| pathe@2.0.3: | ||
| resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} | ||
| perfect-debounce@1.0.0: | ||
| resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} | ||
| picomatch@2.3.1: | ||
| resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} | ||
| engines: {node: '>=8.6'} | ||
| pkg-types@2.3.0: | ||
| resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} | ||
| prisma@6.19.2: | ||
| resolution: {integrity: sha512-XTKeKxtQElcq3U9/jHyxSPgiRgeYDKxWTPOf6NkXA0dNj5j40MfEsZkMbyNpwDWCUv7YBFUl7I2VK/6ALbmhEg==} | ||
| engines: {node: '>=18.18'} | ||
| hasBin: true | ||
| peerDependencies: | ||
| typescript: '>=5.1.0' | ||
| peerDependenciesMeta: | ||
| typescript: | ||
| optional: true | ||
| proxy-addr@2.0.7: | ||
| resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} | ||
| engines: {node: '>= 0.10'} | ||
| pstree.remy@1.1.8: | ||
| resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} | ||
| pure-rand@6.1.0: | ||
| resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} | ||
| qs@6.15.0: | ||
| resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} | ||
| engines: {node: '>=0.6'} | ||
| range-parser@1.2.1: | ||
| resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} | ||
| engines: {node: '>= 0.6'} | ||
| raw-body@3.0.2: | ||
| resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} | ||
| engines: {node: '>= 0.10'} | ||
| rc9@2.1.2: | ||
| resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} | ||
| readdirp@3.6.0: | ||
| resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} | ||
| engines: {node: '>=8.10.0'} | ||
| readdirp@4.1.2: | ||
| resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} | ||
| engines: {node: '>= 14.18.0'} | ||
| router@2.2.0: | ||
| resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} | ||
| engines: {node: '>= 18'} | ||
| safe-buffer@5.2.1: | ||
| resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} | ||
| safer-buffer@2.1.2: | ||
| resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} | ||
| semver@7.7.4: | ||
| resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} | ||
| engines: {node: '>=10'} | ||
| hasBin: true | ||
| send@1.2.1: | ||
| resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} | ||
| engines: {node: '>= 18'} | ||
| serve-static@2.2.1: | ||
| resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} | ||
| engines: {node: '>= 18'} | ||
| setprototypeof@1.2.0: | ||
| resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} | ||
| side-channel-list@1.0.0: | ||
| resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} | ||
| engines: {node: '>= 0.4'} | ||
| side-channel-map@1.0.1: | ||
| resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} | ||
| engines: {node: '>= 0.4'} | ||
| side-channel-weakmap@1.0.2: | ||
| resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} | ||
| engines: {node: '>= 0.4'} | ||
| side-channel@1.1.0: | ||
| resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} | ||
| engines: {node: '>= 0.4'} | ||
| simple-update-notifier@2.0.0: | ||
| resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} | ||
| engines: {node: '>=10'} | ||
| statuses@2.0.2: | ||
| resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} | ||
| engines: {node: '>= 0.8'} | ||
| supports-color@5.5.0: | ||
| resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} | ||
| engines: {node: '>=4'} | ||
| tinyexec@1.0.2: | ||
| resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} | ||
| engines: {node: '>=18'} | ||
| to-regex-range@5.0.1: | ||
| resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} | ||
| engines: {node: '>=8.0'} | ||
| toidentifier@1.0.1: | ||
| resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} | ||
| engines: {node: '>=0.6'} | ||
| touch@3.1.1: | ||
| resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} | ||
| hasBin: true | ||
| ts-node@10.9.2: | ||
| resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} | ||
| hasBin: true | ||
| peerDependencies: | ||
| '@swc/core': '>=1.2.50' | ||
| '@swc/wasm': '>=1.2.50' | ||
| '@types/node': '*' | ||
| typescript: '>=2.7' | ||
| peerDependenciesMeta: | ||
| '@swc/core': | ||
| optional: true | ||
| '@swc/wasm': | ||
| optional: true | ||
| type-is@2.0.1: | ||
| resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} | ||
| engines: {node: '>= 0.6'} | ||
| typescript@5.9.3: | ||
| resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} | ||
| engines: {node: '>=14.17'} | ||
| hasBin: true | ||
| undefsafe@2.0.5: | ||
| resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} | ||
| undici-types@7.16.0: | ||
| resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} | ||
| unpipe@1.0.0: | ||
| resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} | ||
| engines: {node: '>= 0.8'} | ||
| v8-compile-cache-lib@3.0.1: | ||
| resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} | ||
| vary@1.1.2: | ||
| resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} | ||
| engines: {node: '>= 0.8'} | ||
| wrappy@1.0.2: | ||
| resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} | ||
| yn@3.1.1: | ||
| resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} | ||
| engines: {node: '>=6'} | ||
| snapshots: | ||
| '@cspotcode/source-map-support@0.8.1': | ||
| dependencies: | ||
| '@jridgewell/trace-mapping': 0.3.9 | ||
| '@jridgewell/resolve-uri@3.1.2': {} | ||
| '@jridgewell/sourcemap-codec@1.5.5': {} | ||
| '@jridgewell/trace-mapping@0.3.9': | ||
| dependencies: | ||
| '@jridgewell/resolve-uri': 3.1.2 | ||
| '@jridgewell/sourcemap-codec': 1.5.5 | ||
| '@prisma/client@6.19.2(prisma@6.19.2(typescript@5.9.3))(typescript@5.9.3)': | ||
| optionalDependencies: | ||
| prisma: 6.19.2(typescript@5.9.3) | ||
| typescript: 5.9.3 | ||
| '@prisma/config@6.19.2': | ||
| dependencies: | ||
| c12: 3.1.0 | ||
| deepmerge-ts: 7.1.5 | ||
| effect: 3.18.4 | ||
| empathic: 2.0.0 | ||
| transitivePeerDependencies: | ||
| - magicast | ||
| '@prisma/debug@6.19.2': {} | ||
| '@prisma/engines-version@7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7': {} | ||
| '@prisma/engines@6.19.2': | ||
| dependencies: | ||
| '@prisma/debug': 6.19.2 | ||
| '@prisma/engines-version': 7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7 | ||
| '@prisma/fetch-engine': 6.19.2 | ||
| '@prisma/get-platform': 6.19.2 | ||
| '@prisma/fetch-engine@6.19.2': | ||
| dependencies: | ||
| '@prisma/debug': 6.19.2 | ||
| '@prisma/engines-version': 7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7 | ||
| '@prisma/get-platform': 6.19.2 | ||
| '@prisma/get-platform@6.19.2': | ||
| dependencies: | ||
| '@prisma/debug': 6.19.2 | ||
| '@standard-schema/spec@1.1.0': {} | ||
| '@tsconfig/node10@1.0.12': {} | ||
| '@tsconfig/node12@1.0.11': {} | ||
| '@tsconfig/node14@1.0.3': {} | ||
| '@tsconfig/node16@1.0.4': {} | ||
| '@types/bcrypt@6.0.0': | ||
| dependencies: | ||
| '@types/node': 24.10.13 | ||
| '@types/body-parser@1.19.6': | ||
| dependencies: | ||
| '@types/connect': 3.4.38 | ||
| '@types/node': 24.10.13 | ||
| '@types/connect@3.4.38': | ||
| dependencies: | ||
| '@types/node': 24.10.13 | ||
| '@types/cors@2.8.19': | ||
| dependencies: | ||
| '@types/node': 24.10.13 | ||
| '@types/express-serve-static-core@5.1.1': | ||
| dependencies: | ||
| '@types/node': 24.10.13 | ||
| '@types/qs': 6.14.0 | ||
| '@types/range-parser': 1.2.7 | ||
| '@types/send': 1.2.1 | ||
| '@types/express@5.0.6': | ||
| dependencies: | ||
| '@types/body-parser': 1.19.6 | ||
| '@types/express-serve-static-core': 5.1.1 | ||
| '@types/serve-static': 2.2.0 | ||
| '@types/http-errors@2.0.5': {} | ||
| '@types/jsonwebtoken@9.0.10': | ||
| dependencies: | ||
| '@types/ms': 2.1.0 | ||
| '@types/node': 24.10.13 | ||
| '@types/ms@2.1.0': {} | ||
| '@types/node@24.10.13': | ||
| dependencies: | ||
| undici-types: 7.16.0 | ||
| '@types/qs@6.14.0': {} | ||
| '@types/range-parser@1.2.7': {} | ||
| '@types/send@1.2.1': | ||
| dependencies: | ||
| '@types/node': 24.10.13 | ||
| '@types/serve-static@2.2.0': | ||
| dependencies: | ||
| '@types/http-errors': 2.0.5 | ||
| '@types/node': 24.10.13 | ||
| accepts@2.0.0: | ||
| dependencies: | ||
| mime-types: 3.0.2 | ||
| negotiator: 1.0.0 | ||
| acorn-walk@8.3.4: | ||
| dependencies: | ||
| acorn: 8.15.0 | ||
| acorn@8.15.0: {} | ||
| anymatch@3.1.3: | ||
| dependencies: | ||
| normalize-path: 3.0.0 | ||
| picomatch: 2.3.1 | ||
| arg@4.1.3: {} | ||
| balanced-match@1.0.2: {} | ||
| bcrypt@6.0.0: | ||
| dependencies: | ||
| node-addon-api: 8.5.0 | ||
| node-gyp-build: 4.8.4 | ||
| binary-extensions@2.3.0: {} | ||
| body-parser@2.2.2: | ||
| dependencies: | ||
| bytes: 3.1.2 | ||
| content-type: 1.0.5 | ||
| debug: 4.4.3(supports-color@5.5.0) | ||
| http-errors: 2.0.1 | ||
| iconv-lite: 0.7.2 | ||
| on-finished: 2.4.1 | ||
| qs: 6.15.0 | ||
| raw-body: 3.0.2 | ||
| type-is: 2.0.1 | ||
| transitivePeerDependencies: | ||
| - supports-color | ||
| brace-expansion@1.1.12: | ||
| dependencies: | ||
| balanced-match: 1.0.2 | ||
| concat-map: 0.0.1 | ||
| braces@3.0.3: | ||
| dependencies: | ||
| fill-range: 7.1.1 | ||
| buffer-equal-constant-time@1.0.1: {} | ||
| bytes@3.1.2: {} | ||
| c12@3.1.0: | ||
| dependencies: | ||
| chokidar: 4.0.3 | ||
| confbox: 0.2.4 | ||
| defu: 6.1.4 | ||
| dotenv: 16.6.1 | ||
| exsolve: 1.0.8 | ||
| giget: 2.0.0 | ||
| jiti: 2.6.1 | ||
| ohash: 2.0.11 | ||
| pathe: 2.0.3 | ||
| perfect-debounce: 1.0.0 | ||
| pkg-types: 2.3.0 | ||
| rc9: 2.1.2 | ||
| call-bind-apply-helpers@1.0.2: | ||
| dependencies: | ||
| es-errors: 1.3.0 | ||
| function-bind: 1.1.2 | ||
| call-bound@1.0.4: | ||
| dependencies: | ||
| call-bind-apply-helpers: 1.0.2 | ||
| get-intrinsic: 1.3.0 | ||
| chokidar@3.6.0: | ||
| dependencies: | ||
| anymatch: 3.1.3 | ||
| braces: 3.0.3 | ||
| glob-parent: 5.1.2 | ||
| is-binary-path: 2.1.0 | ||
| is-glob: 4.0.3 | ||
| normalize-path: 3.0.0 | ||
| readdirp: 3.6.0 | ||
| optionalDependencies: | ||
| fsevents: 2.3.3 | ||
| chokidar@4.0.3: | ||
| dependencies: | ||
| readdirp: 4.1.2 | ||
| citty@0.1.6: | ||
| dependencies: | ||
| consola: 3.4.2 | ||
| citty@0.2.1: {} | ||
| concat-map@0.0.1: {} | ||
| confbox@0.2.4: {} | ||
| consola@3.4.2: {} | ||
| content-disposition@1.0.1: {} | ||
| content-type@1.0.5: {} | ||
| cookie-signature@1.2.2: {} | ||
| cookie@0.7.2: {} | ||
| cors@2.8.6: | ||
| dependencies: | ||
| object-assign: 4.1.1 | ||
| vary: 1.1.2 | ||
| create-require@1.1.1: {} | ||
| debug@4.4.3(supports-color@5.5.0): | ||
| dependencies: | ||
| ms: 2.1.3 | ||
| optionalDependencies: | ||
| supports-color: 5.5.0 | ||
| deepmerge-ts@7.1.5: {} | ||
| defu@6.1.4: {} | ||
| depd@2.0.0: {} | ||
| destr@2.0.5: {} | ||
| diff@4.0.4: {} | ||
| dotenv@16.6.1: {} | ||
| dotenv@17.3.1: {} | ||
| dunder-proto@1.0.1: | ||
| dependencies: | ||
| call-bind-apply-helpers: 1.0.2 | ||
| es-errors: 1.3.0 | ||
| gopd: 1.2.0 | ||
| ecdsa-sig-formatter@1.0.11: | ||
| dependencies: | ||
| safe-buffer: 5.2.1 | ||
| ee-first@1.1.1: {} | ||
| effect@3.18.4: | ||
| dependencies: | ||
| '@standard-schema/spec': 1.1.0 | ||
| fast-check: 3.23.2 | ||
| empathic@2.0.0: {} | ||
| encodeurl@2.0.0: {} | ||
| es-define-property@1.0.1: {} | ||
| es-errors@1.3.0: {} | ||
| es-object-atoms@1.1.1: | ||
| dependencies: | ||
| es-errors: 1.3.0 | ||
| escape-html@1.0.3: {} | ||
| etag@1.8.1: {} | ||
| express@5.2.1: | ||
| dependencies: | ||
| accepts: 2.0.0 | ||
| body-parser: 2.2.2 | ||
| content-disposition: 1.0.1 | ||
| content-type: 1.0.5 | ||
| cookie: 0.7.2 | ||
| cookie-signature: 1.2.2 | ||
| debug: 4.4.3(supports-color@5.5.0) | ||
| depd: 2.0.0 | ||
| encodeurl: 2.0.0 | ||
| escape-html: 1.0.3 | ||
| etag: 1.8.1 | ||
| finalhandler: 2.1.1 | ||
| fresh: 2.0.0 | ||
| http-errors: 2.0.1 | ||
| merge-descriptors: 2.0.0 | ||
| mime-types: 3.0.2 | ||
| on-finished: 2.4.1 | ||
| once: 1.4.0 | ||
| parseurl: 1.3.3 | ||
| proxy-addr: 2.0.7 | ||
| qs: 6.15.0 | ||
| range-parser: 1.2.1 | ||
| router: 2.2.0 | ||
| send: 1.2.1 | ||
| serve-static: 2.2.1 | ||
| statuses: 2.0.2 | ||
| type-is: 2.0.1 | ||
| vary: 1.1.2 | ||
| transitivePeerDependencies: | ||
| - supports-color | ||
| exsolve@1.0.8: {} | ||
| fast-check@3.23.2: | ||
| dependencies: | ||
| pure-rand: 6.1.0 | ||
| fill-range@7.1.1: | ||
| dependencies: | ||
| to-regex-range: 5.0.1 | ||
| finalhandler@2.1.1: | ||
| dependencies: | ||
| debug: 4.4.3(supports-color@5.5.0) | ||
| encodeurl: 2.0.0 | ||
| escape-html: 1.0.3 | ||
| on-finished: 2.4.1 | ||
| parseurl: 1.3.3 | ||
| statuses: 2.0.2 | ||
| transitivePeerDependencies: | ||
| - supports-color | ||
| forwarded@0.2.0: {} | ||
| fresh@2.0.0: {} | ||
| fsevents@2.3.3: | ||
| optional: true | ||
| function-bind@1.1.2: {} | ||
| get-intrinsic@1.3.0: | ||
| dependencies: | ||
| call-bind-apply-helpers: 1.0.2 | ||
| es-define-property: 1.0.1 | ||
| es-errors: 1.3.0 | ||
| es-object-atoms: 1.1.1 | ||
| function-bind: 1.1.2 | ||
| get-proto: 1.0.1 | ||
| gopd: 1.2.0 | ||
| has-symbols: 1.1.0 | ||
| hasown: 2.0.2 | ||
| math-intrinsics: 1.1.0 | ||
| get-proto@1.0.1: | ||
| dependencies: | ||
| dunder-proto: 1.0.1 | ||
| es-object-atoms: 1.1.1 | ||
| giget@2.0.0: | ||
| dependencies: | ||
| citty: 0.1.6 | ||
| consola: 3.4.2 | ||
| defu: 6.1.4 | ||
| node-fetch-native: 1.6.7 | ||
| nypm: 0.6.5 | ||
| pathe: 2.0.3 | ||
| glob-parent@5.1.2: | ||
| dependencies: | ||
| is-glob: 4.0.3 | ||
| gopd@1.2.0: {} | ||
| has-flag@3.0.0: {} | ||
| has-symbols@1.1.0: {} | ||
| hasown@2.0.2: | ||
| dependencies: | ||
| function-bind: 1.1.2 | ||
| http-errors@2.0.1: | ||
| dependencies: | ||
| depd: 2.0.0 | ||
| inherits: 2.0.4 | ||
| setprototypeof: 1.2.0 | ||
| statuses: 2.0.2 | ||
| toidentifier: 1.0.1 | ||
| iconv-lite@0.7.2: | ||
| dependencies: | ||
| safer-buffer: 2.1.2 | ||
| ignore-by-default@1.0.1: {} | ||
| inherits@2.0.4: {} | ||
| ipaddr.js@1.9.1: {} | ||
| is-binary-path@2.1.0: | ||
| dependencies: | ||
| binary-extensions: 2.3.0 | ||
| is-extglob@2.1.1: {} | ||
| is-glob@4.0.3: | ||
| dependencies: | ||
| is-extglob: 2.1.1 | ||
| is-number@7.0.0: {} | ||
| is-promise@4.0.0: {} | ||
| jiti@2.6.1: {} | ||
| jsonwebtoken@9.0.3: | ||
| dependencies: | ||
| jws: 4.0.1 | ||
| lodash.includes: 4.3.0 | ||
| lodash.isboolean: 3.0.3 | ||
| lodash.isinteger: 4.0.4 | ||
| lodash.isnumber: 3.0.3 | ||
| lodash.isplainobject: 4.0.6 | ||
| lodash.isstring: 4.0.1 | ||
| lodash.once: 4.1.1 | ||
| ms: 2.1.3 | ||
| semver: 7.7.4 | ||
| jwa@2.0.1: | ||
| dependencies: | ||
| buffer-equal-constant-time: 1.0.1 | ||
| ecdsa-sig-formatter: 1.0.11 | ||
| safe-buffer: 5.2.1 | ||
| jws@4.0.1: | ||
| dependencies: | ||
| jwa: 2.0.1 | ||
| safe-buffer: 5.2.1 | ||
| lodash.includes@4.3.0: {} | ||
| lodash.isboolean@3.0.3: {} | ||
| lodash.isinteger@4.0.4: {} | ||
| lodash.isnumber@3.0.3: {} | ||
| lodash.isplainobject@4.0.6: {} | ||
| lodash.isstring@4.0.1: {} | ||
| lodash.once@4.1.1: {} | ||
| make-error@1.3.6: {} | ||
| math-intrinsics@1.1.0: {} | ||
| media-typer@1.1.0: {} | ||
| merge-descriptors@2.0.0: {} | ||
| mime-db@1.54.0: {} | ||
| mime-types@3.0.2: | ||
| dependencies: | ||
| mime-db: 1.54.0 | ||
| minimatch@3.1.2: | ||
| dependencies: | ||
| brace-expansion: 1.1.12 | ||
| ms@2.1.3: {} | ||
| negotiator@1.0.0: {} | ||
| node-addon-api@8.5.0: {} | ||
| node-fetch-native@1.6.7: {} | ||
| node-gyp-build@4.8.4: {} | ||
| nodemon@3.1.11: | ||
| dependencies: | ||
| chokidar: 3.6.0 | ||
| debug: 4.4.3(supports-color@5.5.0) | ||
| ignore-by-default: 1.0.1 | ||
| minimatch: 3.1.2 | ||
| pstree.remy: 1.1.8 | ||
| semver: 7.7.4 | ||
| simple-update-notifier: 2.0.0 | ||
| supports-color: 5.5.0 | ||
| touch: 3.1.1 | ||
| undefsafe: 2.0.5 | ||
| normalize-path@3.0.0: {} | ||
| nypm@0.6.5: | ||
| dependencies: | ||
| citty: 0.2.1 | ||
| pathe: 2.0.3 | ||
| tinyexec: 1.0.2 | ||
| object-assign@4.1.1: {} | ||
| object-inspect@1.13.4: {} | ||
| ohash@2.0.11: {} | ||
| on-finished@2.4.1: | ||
| dependencies: | ||
| ee-first: 1.1.1 | ||
| once@1.4.0: | ||
| dependencies: | ||
| wrappy: 1.0.2 | ||
| parseurl@1.3.3: {} | ||
| path-to-regexp@8.3.0: {} | ||
| pathe@2.0.3: {} | ||
| perfect-debounce@1.0.0: {} | ||
| picomatch@2.3.1: {} | ||
| pkg-types@2.3.0: | ||
| dependencies: | ||
| confbox: 0.2.4 | ||
| exsolve: 1.0.8 | ||
| pathe: 2.0.3 | ||
| prisma@6.19.2(typescript@5.9.3): | ||
| dependencies: | ||
| '@prisma/config': 6.19.2 | ||
| '@prisma/engines': 6.19.2 | ||
| optionalDependencies: | ||
| typescript: 5.9.3 | ||
| transitivePeerDependencies: | ||
| - magicast | ||
| proxy-addr@2.0.7: | ||
| dependencies: | ||
| forwarded: 0.2.0 | ||
| ipaddr.js: 1.9.1 | ||
| pstree.remy@1.1.8: {} | ||
| pure-rand@6.1.0: {} | ||
| qs@6.15.0: | ||
| dependencies: | ||
| side-channel: 1.1.0 | ||
| range-parser@1.2.1: {} | ||
| raw-body@3.0.2: | ||
| dependencies: | ||
| bytes: 3.1.2 | ||
| http-errors: 2.0.1 | ||
| iconv-lite: 0.7.2 | ||
| unpipe: 1.0.0 | ||
| rc9@2.1.2: | ||
| dependencies: | ||
| defu: 6.1.4 | ||
| destr: 2.0.5 | ||
| readdirp@3.6.0: | ||
| dependencies: | ||
| picomatch: 2.3.1 | ||
| readdirp@4.1.2: {} | ||
| router@2.2.0: | ||
| dependencies: | ||
| debug: 4.4.3(supports-color@5.5.0) | ||
| depd: 2.0.0 | ||
| is-promise: 4.0.0 | ||
| parseurl: 1.3.3 | ||
| path-to-regexp: 8.3.0 | ||
| transitivePeerDependencies: | ||
| - supports-color | ||
| safe-buffer@5.2.1: {} | ||
| safer-buffer@2.1.2: {} | ||
| semver@7.7.4: {} | ||
| send@1.2.1: | ||
| dependencies: | ||
| debug: 4.4.3(supports-color@5.5.0) | ||
| encodeurl: 2.0.0 | ||
| escape-html: 1.0.3 | ||
| etag: 1.8.1 | ||
| fresh: 2.0.0 | ||
| http-errors: 2.0.1 | ||
| mime-types: 3.0.2 | ||
| ms: 2.1.3 | ||
| on-finished: 2.4.1 | ||
| range-parser: 1.2.1 | ||
| statuses: 2.0.2 | ||
| transitivePeerDependencies: | ||
| - supports-color | ||
| serve-static@2.2.1: | ||
| dependencies: | ||
| encodeurl: 2.0.0 | ||
| escape-html: 1.0.3 | ||
| parseurl: 1.3.3 | ||
| send: 1.2.1 | ||
| transitivePeerDependencies: | ||
| - supports-color | ||
| setprototypeof@1.2.0: {} | ||
| side-channel-list@1.0.0: | ||
| dependencies: | ||
| es-errors: 1.3.0 | ||
| object-inspect: 1.13.4 | ||
| side-channel-map@1.0.1: | ||
| dependencies: | ||
| call-bound: 1.0.4 | ||
| es-errors: 1.3.0 | ||
| get-intrinsic: 1.3.0 | ||
| object-inspect: 1.13.4 | ||
| side-channel-weakmap@1.0.2: | ||
| dependencies: | ||
| call-bound: 1.0.4 | ||
| es-errors: 1.3.0 | ||
| get-intrinsic: 1.3.0 | ||
| object-inspect: 1.13.4 | ||
| side-channel-map: 1.0.1 | ||
| side-channel@1.1.0: | ||
| dependencies: | ||
| es-errors: 1.3.0 | ||
| object-inspect: 1.13.4 | ||
| side-channel-list: 1.0.0 | ||
| side-channel-map: 1.0.1 | ||
| side-channel-weakmap: 1.0.2 | ||
| simple-update-notifier@2.0.0: | ||
| dependencies: | ||
| semver: 7.7.4 | ||
| statuses@2.0.2: {} | ||
| supports-color@5.5.0: | ||
| dependencies: | ||
| has-flag: 3.0.0 | ||
| tinyexec@1.0.2: {} | ||
| to-regex-range@5.0.1: | ||
| dependencies: | ||
| is-number: 7.0.0 | ||
| toidentifier@1.0.1: {} | ||
| touch@3.1.1: {} | ||
| ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3): | ||
| dependencies: | ||
| '@cspotcode/source-map-support': 0.8.1 | ||
| '@tsconfig/node10': 1.0.12 | ||
| '@tsconfig/node12': 1.0.11 | ||
| '@tsconfig/node14': 1.0.3 | ||
| '@tsconfig/node16': 1.0.4 | ||
| '@types/node': 24.10.13 | ||
| acorn: 8.15.0 | ||
| acorn-walk: 8.3.4 | ||
| arg: 4.1.3 | ||
| create-require: 1.1.1 | ||
| diff: 4.0.4 | ||
| make-error: 1.3.6 | ||
| typescript: 5.9.3 | ||
| v8-compile-cache-lib: 3.0.1 | ||
| yn: 3.1.1 | ||
| type-is@2.0.1: | ||
| dependencies: | ||
| content-type: 1.0.5 | ||
| media-typer: 1.1.0 | ||
| mime-types: 3.0.2 | ||
| typescript@5.9.3: {} | ||
| undefsafe@2.0.5: {} | ||
| undici-types@7.16.0: {} | ||
| unpipe@1.0.0: {} | ||
| v8-compile-cache-lib@3.0.1: {} | ||
| vary@1.1.2: {} | ||
| wrappy@1.0.2: {} | ||
| yn@3.1.1: {} |
There was a problem hiding this comment.
The repository now has both pnpm-lock.yaml and package-lock.json present, which can lead to inconsistent dependency installations depending on which package manager is used. Since this PR introduces pnpm-lock.yaml, package-lock.json should be removed and added to .gitignore to ensure the team consistently uses pnpm for dependency management.
There was a problem hiding this comment.
Removed pnpm-lock.yaml. This repo uses npm with package-lock.json.
There was a problem hiding this comment.
I apologize for the confusion. I've removed the pnpm-lock.yaml file and updated the package-lock.json using npm instead. I've verified that bcrypt is correctly installed and functional.
- Removed pnpm-lock.yaml - Updated package-lock.json using npm install - Verified bcrypt implementation with npm dependencies Co-authored-by: davidraehles <6085055+davidraehles@users.noreply.github.com>
💡 What: The optimization implemented is replacing the pure JavaScript
bcryptjslibrary with the native C++bcryptlibrary in the backend.🎯 Why: Native C++ bindings provided by the
bcryptpackage are significantly faster and offload work to the thread pool, preventing the Node.js event loop from being blocked by intensive cryptographic operations.📊 Measured Improvement:
Measured a significant performance boost using a benchmark of 10 iterations:
Also fixed pre-existing type errors in
backend/src/routes/notes.tswherereq.params.idwas causing type mismatches with Prisma, ensuring a clean build with updated dependencies.PR created automatically by Jules for task 4337124487153461403 started by @davidraehles