diff --git a/package.json b/package.json index 8c5b382..e05f4e8 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@fastify/static": "^8.2.0", "@nestjs/common": "^10.0.3", "@nestjs/core": "^10.0.3", - "@nestjs/platform-fastify": "^10.0.3", + "@nestjs/platform-fastify": "^11.1.3", "@nestjs/swagger": "^7.4.2", "@nestjs/typeorm": "^11.0.0", "chalk": "^5.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4f2a56c..0884ef4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,14 +18,14 @@ importers: specifier: ^10.0.3 version: 10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2) '@nestjs/platform-fastify': - specifier: ^10.0.3 - version: 10.4.19(@fastify/static@8.2.0)(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2)) + specifier: ^11.1.3 + version: 11.1.3(@fastify/static@8.2.0)(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2)) '@nestjs/swagger': specifier: ^7.4.2 version: 7.4.2(@fastify/static@8.2.0)(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2))(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14) '@nestjs/typeorm': specifier: ^11.0.0 - version: 11.0.0(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2)(typeorm@0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6))) + version: 11.0.0(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2)(typeorm@0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6))) chalk: specifier: ^5.4.1 version: 5.4.1 @@ -70,7 +70,7 @@ importers: version: 2.17.0 typeorm: specifier: ^0.3.24 - version: 0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + version: 0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) validator: specifier: ^13.15.0 version: 13.15.15 @@ -83,7 +83,7 @@ importers: version: 9.8.0 '@nestjs/cli': specifier: ^10.0.3 - version: 10.4.9(@swc/cli@0.1.65(@swc/core@1.12.0)(chokidar@3.6.0))(@swc/core@1.12.0) + version: 10.4.9(@swc/cli@0.1.65(@swc/core@1.12.1)(chokidar@3.6.0))(@swc/core@1.12.1) '@nestjs/schematics': specifier: ^10.0.1 version: 10.2.3(chokidar@3.6.0)(typescript@5.1.6) @@ -92,10 +92,10 @@ importers: version: 10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2)) '@swc/cli': specifier: ^0.1.62 - version: 0.1.65(@swc/core@1.12.0)(chokidar@3.6.0) + version: 0.1.65(@swc/core@1.12.1)(chokidar@3.6.0) '@swc/core': specifier: ^1.3.66 - version: 1.12.0 + version: 1.12.1 '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -143,7 +143,7 @@ importers: version: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1) eslint-plugin-jest: specifier: ^27.2.2 - version: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)))(typescript@5.1.6) + version: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)))(typescript@5.1.6) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8) @@ -152,7 +152,7 @@ importers: version: 2.0.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1) jest: specifier: 29.5.0 - version: 29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + version: 29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -164,13 +164,13 @@ importers: version: 6.3.4 ts-jest: specifier: 29.1.0 - version: 29.1.0(@babel/core@7.27.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.4))(jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)))(typescript@5.1.6) + version: 29.1.0(@babel/core@7.27.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.4))(jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)))(typescript@5.1.6) ts-loader: specifier: ^9.4.3 - version: 9.5.2(typescript@5.1.6)(webpack@5.97.1(@swc/core@1.12.0)) + version: 9.5.2(typescript@5.1.6)(webpack@5.97.1(@swc/core@1.12.1)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6) + version: 10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6) tsconfig-paths: specifier: 4.2.0 version: 4.2.0 @@ -396,26 +396,32 @@ packages: '@fastify/accept-negotiator@2.0.1': resolution: {integrity: sha512-/c/TW2bO/v9JeEgoD/g1G5GxGeCF1Hafdf79WPmUlgYiBXummY0oX3VVq4yFkKKVBKDNlaDUYoab7g38RpPqCQ==} - '@fastify/ajv-compiler@3.6.0': - resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==} + '@fastify/ajv-compiler@4.0.2': + resolution: {integrity: sha512-Rkiu/8wIjpsf46Rr+Fitd3HRP+VsxUFDDeag0hs9L0ksfnwx2g7SPQQTFL0E8Qv+rfXzQOxBJnjUB9ITUDjfWQ==} - '@fastify/cors@9.0.1': - resolution: {integrity: sha512-YY9Ho3ovI+QHIL2hW+9X4XqQjXLjJqsU+sMV/xFsxZkE8p3GNnYVFpoOxF7SsP5ZL76gwvbo3V9L+FIekBGU4Q==} + '@fastify/cors@11.0.1': + resolution: {integrity: sha512-dmZaE7M1f4SM8ZZuk5RhSsDJ+ezTgI7v3HHRj8Ow9CneczsPLZV6+2j2uwdaSLn8zhTv6QV0F4ZRcqdalGx1pQ==} - '@fastify/error@3.4.1': - resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} + '@fastify/error@4.2.0': + resolution: {integrity: sha512-RSo3sVDXfHskiBZKBPRgnQTtIqpi/7zhJOEmAxCiBcM7d0uwdGdxLlsCaLzGs8v8NnxIRlfG0N51p5yFaOentQ==} - '@fastify/fast-json-stringify-compiler@4.3.0': - resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} + '@fastify/fast-json-stringify-compiler@5.0.3': + resolution: {integrity: sha512-uik7yYHkLr6fxd8hJSZ8c+xF4WafPK+XzneQDPU+D10r5X19GW8lJcom2YijX2+qtFF1ENJlHXKFM9ouXNJYgQ==} - '@fastify/formbody@7.4.0': - resolution: {integrity: sha512-H3C6h1GN56/SMrZS8N2vCT2cZr7mIHzBHzOBa5OPpjfB/D6FzP9mMpE02ZzrFX0ANeh0BAJdoXKOF2e7IbV+Og==} + '@fastify/formbody@8.0.2': + resolution: {integrity: sha512-84v5J2KrkXzjgBpYnaNRPqwgMsmY7ZDjuj0YVuMR3NXCJRCgKEZy/taSP1wUYGn0onfxJpLyRGDLa+NMaDJtnA==} - '@fastify/merge-json-schemas@0.1.1': - resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} + '@fastify/forwarded@3.0.0': + resolution: {integrity: sha512-kJExsp4JCms7ipzg7SJ3y8DwmePaELHxKYtg+tZow+k0znUTf3cb+npgyqm8+ATZOdmfgfydIebPDWM172wfyA==} - '@fastify/middie@8.3.3': - resolution: {integrity: sha512-+WHavMQr9CNTZoy2cjoDxoWp76kZ3JKjAtZj5sXNlxX5XBzHig0TeCPfPc+1+NQmliXtndT3PFwAjrQHE/6wnQ==} + '@fastify/merge-json-schemas@0.2.1': + resolution: {integrity: sha512-OA3KGBCy6KtIvLf8DINC5880o5iBlDX4SxzLQS8HorJAbqluzLRn80UXU0bxZn7UOFhFgpRJDasfwn9nG4FG4A==} + + '@fastify/middie@9.0.3': + resolution: {integrity: sha512-7OYovKXp9UKYeVMcjcFLMcSpoMkmcZmfnG+eAvtdiatN35W7c+r9y1dRfpA+pfFVNuHGGqI3W+vDTmjvcfLcMA==} + + '@fastify/proxy-addr@5.0.0': + resolution: {integrity: sha512-37qVVA1qZ5sgH7KpHkkC4z9SK6StIsIcOmpjvMPXNb3vx2GQxhZocogVYbr2PbbeLCQxYIPDok307xEvRZOzGA==} '@fastify/send@4.1.0': resolution: {integrity: sha512-TMYeQLCBSy2TOFmV95hQWkiTYgC/SEx7vMdV+wnZVX4tt8VBLKzmH8vV9OzJehV0+XBfg+WxPMt5wp+JBUKsVw==} @@ -436,6 +442,14 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -613,13 +627,13 @@ packages: class-validator: optional: true - '@nestjs/platform-fastify@10.4.19': - resolution: {integrity: sha512-Esl4ruphwh7sfa8JSpi1gSZS/qfD3kX7wBl6kMI2RRRj86sLWfAIbXoG0I0zm0hMQrpfboC06zPkOsnvFzIOPQ==} + '@nestjs/platform-fastify@11.1.3': + resolution: {integrity: sha512-SMIjGV6eAxQv6+/2OumIdNivVLebql6THWjXv8Uh4dR1CI6ipp3gMbpoiYbHP7AGXv8pzuGmpakli86VP9P8NQ==} peerDependencies: - '@fastify/static': ^6.0.0 || ^7.0.0 - '@fastify/view': ^7.0.0 || ^8.0.0 - '@nestjs/common': ^10.0.0 - '@nestjs/core': ^10.0.0 + '@fastify/static': ^8.0.0 + '@fastify/view': ^10.0.0 || ^11.0.0 + '@nestjs/common': ^11.0.0 + '@nestjs/core': ^11.0.0 peerDependenciesMeta: '@fastify/static': optional: true @@ -728,68 +742,68 @@ packages: chokidar: optional: true - '@swc/core-darwin-arm64@1.12.0': - resolution: {integrity: sha512-usLr8kC80GDv3pwH2zoEaS279kxtWY0MY3blbMFw7zA8fAjqxa8IDxm3WcgyNLNWckWn4asFfguEwz/Weem3nA==} + '@swc/core-darwin-arm64@1.12.1': + resolution: {integrity: sha512-nUjWVcJ3YS2N40ZbKwYO2RJ4+o2tWYRzNOcIQp05FqW0+aoUCVMdAUUzQinPDynfgwVshDAXCKemY8X7nN5MaA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.12.0': - resolution: {integrity: sha512-Cvv4sqDcTY7QF2Dh1vn2Xbt/1ENYQcpmrGHzITJrXzxA2aBopsz/n4yQDiyRxTR0t802m4xu0CzMoZIHvVruWQ==} + '@swc/core-darwin-x64@1.12.1': + resolution: {integrity: sha512-OGm4a4d3OeJn+tRt8H/eiHgTFrJbS6r8mi/Ob65tAEXZGHN900T2kR7c5ALr0V2hBOQ8BfhexwPoQlGQP/B95w==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.12.0': - resolution: {integrity: sha512-seM4/XMJMOupkzfLfHl8sRa3NdhsVZp+XgwA/vVeYZYJE4wuWUxVzhCYzwmNftVY32eF2IiRaWnhG6ho6jusnQ==} + '@swc/core-linux-arm-gnueabihf@1.12.1': + resolution: {integrity: sha512-76YeeQKyK0EtNkQiNBZ0nbVGooPf9IucY0WqVXVpaU4wuG7ZyLEE2ZAIgXafIuzODGQoLfetue7I8boMxh1/MA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.12.0': - resolution: {integrity: sha512-Al0x33gUVxNY5tutEYpSyv7mze6qQS1ONa0HEwoRxcK9WXsX0NHLTiOSGZoCUS1SsXM37ONlbA6/Bsp1MQyP+g==} + '@swc/core-linux-arm64-gnu@1.12.1': + resolution: {integrity: sha512-BxJDIJPq1+aCh9UsaSAN6wo3tuln8UhNXruOrzTI8/ElIig/3sAueDM6Eq7GvZSGGSA7ljhNATMJ0elD7lFatQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.12.0': - resolution: {integrity: sha512-OeFHz/5Hl9v75J9TYA5jQxNIYAZMqaiPpd9dYSTK2Xyqa/ZGgTtNyPhIwVfxx+9mHBf6+9c1mTlXUtACMtHmaQ==} + '@swc/core-linux-arm64-musl@1.12.1': + resolution: {integrity: sha512-NhLdbffSXvY0/FwUSAl4hKBlpe5GHQGXK8DxTo3HHjLsD9sCPYieo3vG0NQoUYAy4ZUY1WeGjyxeq4qZddJzEQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.12.0': - resolution: {integrity: sha512-ltIvqNi7H0c5pRawyqjeYSKEIfZP4vv/datT3mwT6BW7muJtd1+KIDCPFLMIQ4wm/h76YQwPocsin3fzmnFdNA==} + '@swc/core-linux-x64-gnu@1.12.1': + resolution: {integrity: sha512-CrYnV8SZIgArQ9LKH0xEF95PKXzX9WkRSc5j55arOSBeDCeDUQk1Bg/iKdnDiuj5HC1hZpvzwMzSBJjv+Z70jA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.12.0': - resolution: {integrity: sha512-Z/DhpjehaTK0uf+MhNB7mV9SuewpGs3P/q9/8+UsJeYoFr7yuOoPbAvrD6AqZkf6Bh7MRZ5OtG+KQgG5L+goiA==} + '@swc/core-linux-x64-musl@1.12.1': + resolution: {integrity: sha512-BQMl3d0HaGB0/h2xcKlGtjk/cGRn2tnbsaChAKcjFdCepblKBCz1pgO/mL7w5iXq3s57wMDUn++71/a5RAkZOA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.12.0': - resolution: {integrity: sha512-wHnvbfHIh2gfSbvuFT7qP97YCMUDh+fuiso+pcC6ug8IsMxuViNapHET4o0ZdFNWHhXJ7/s0e6w7mkOalsqQiQ==} + '@swc/core-win32-arm64-msvc@1.12.1': + resolution: {integrity: sha512-b7NeGnpqTfmIGtUqXBl0KqoSmOnH64nRZoT5l4BAGdvwY7nxitWR94CqZuwyLPty/bLywmyDA9uO12Kvgb3+gg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.12.0': - resolution: {integrity: sha512-88umlXwK+7J2p4DjfWHXQpmlZgCf1ayt6Ssj+PYlAfMCR0aBiJoAMwHWrvDXEozyOrsyP1j2X6WxbmA861vL5Q==} + '@swc/core-win32-ia32-msvc@1.12.1': + resolution: {integrity: sha512-iU/29X2D7cHBp1to62cUg/5Xk8K+lyOJiKIGGW5rdzTW/c2zz3d/ehgpzVP/rqC4NVr88MXspqHU4il5gmDajw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.12.0': - resolution: {integrity: sha512-KR9TSRp+FEVOhbgTU6c94p/AYpsyBk7dIvlKQiDp8oKScUoyHG5yjmMBFN/BqUyTq4kj6zlgsY2rFE4R8/yqWg==} + '@swc/core-win32-x64-msvc@1.12.1': + resolution: {integrity: sha512-+Zh+JKDwiFqV5N9yAd2DhYVGPORGh9cfenu1ptr9yge+eHAf7vZJcC3rnj6QMR1QJh0Y5VC9+YBjRFjZVA7XDw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.12.0': - resolution: {integrity: sha512-/C0kiMHPY/HnLfqXYGMGxGck3A5Y3mqwxfv+EwHTPHGjAVRfHpWAEEBTSTF5C88vVY6CvwBEkhR2TX7t8Mahcw==} + '@swc/core@1.12.1': + resolution: {integrity: sha512-aKXdDTqxTVFl/bKQZ3EQUjEMBEoF6JBv29moMZq0kbVO43na6u/u+3Vcbhbrh+A2N0X5OL4RaveuWfAjEgOmeA==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -1191,8 +1205,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - avvio@8.4.0: - resolution: {integrity: sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==} + avvio@9.1.0: + resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} aws-ssl-profiles@1.1.2: resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} @@ -1226,10 +1240,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@3.0.1: - resolution: {integrity: sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==} - engines: {node: '>= 16'} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -1258,10 +1268,6 @@ packages: brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - brace-expansion@4.0.1: - resolution: {integrity: sha512-YClrbvTCXGe70pU2JiEiPLYXO9gQkyxYeKpJIQHVS/gOs6EWMQP2RYBwjFLNT322Ji8TOC3IMPfsYCedNpzKfA==} - engines: {node: '>= 18'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1319,8 +1325,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001722: - resolution: {integrity: sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==} + caniuse-lite@1.0.30001723: + resolution: {integrity: sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1441,10 +1447,6 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - cookie@1.0.2: resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} @@ -1562,6 +1564,10 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -1613,8 +1619,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.166: - resolution: {integrity: sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==} + electron-to-chromium@1.5.167: + resolution: {integrity: sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -1874,9 +1880,6 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} - fast-content-type-parse@1.1.0: - resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} - fast-decode-uri-component@1.0.1: resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} @@ -1893,8 +1896,8 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-json-stringify@5.16.1: - resolution: {integrity: sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==} + fast-json-stringify@6.0.1: + resolution: {integrity: sha512-s7SJE83QKBZwg54dIbD5rCtzOBVD43V1ReWXXYqBgwCwHLYAAT0RQc/FmrQglXqWPpz6omtryJQOau5jI4Nrvg==} fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -1909,20 +1912,14 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@2.4.0: - resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==} - fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fastify-plugin@4.5.1: - resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} - fastify-plugin@5.0.1: resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==} - fastify@4.28.1: - resolution: {integrity: sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==} + fastify@5.3.3: + resolution: {integrity: sha512-nCBiBCw9q6jPx+JJNVgO8JVnTXeUyrGcyTKPQikRkA/PanrFcOIo4R+ZnLeOLPZPGgzjomqfVarzE0kYx7qWiQ==} fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -1961,9 +1958,9 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-my-way@8.2.2: - resolution: {integrity: sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==} - engines: {node: '>=14'} + find-my-way@9.3.0: + resolution: {integrity: sha512-eRoFWQw+Yv2tuYlK2pjFS2jGXSxSppAs3hSQjfxVKxM5amECzIgYYc1FEI8ZmhSh/Ig+FrKEz43NLRKJjYCZVg==} + engines: {node: '>=20'} find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} @@ -2010,10 +2007,6 @@ packages: formidable@2.1.5: resolution: {integrity: sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -2097,8 +2090,8 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@11.0.2: - resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==} + glob@11.0.3: + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} engines: {node: 20 || >=22} hasBin: true @@ -2235,9 +2228,9 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} @@ -2581,8 +2574,8 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-schema-ref-resolver@1.0.1: - resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} + json-schema-ref-resolver@2.0.1: + resolution: {integrity: sha512-HG0SIB9X4J8bwbxCbnd5FfPEbcXAJYTi1pBJeP/QPON+w8ovSME8iRG+ElHNxZNX2Qh6eYn1GdzJFS4cDFfx0Q==} json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -2629,11 +2622,8 @@ packages: libphonenumber-js@1.12.9: resolution: {integrity: sha512-VWwAdNeJgN7jFOD+wN4qx83DTPMVPPAUyx9/TUkBXKLiNkuWWk6anV0439tgdtwaJDrEdqkvdN22iA6J4bUCZg==} - light-my-request@5.14.0: - resolution: {integrity: sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==} - - light-my-request@6.3.0: - resolution: {integrity: sha512-bWTAPJmeWQH5suJNYwG0f5cs0p6ho9e6f1Ppoxv5qMosY+s9Ir2+ZLvvHcgA7VTDop4zl/NCHhOVVqU+kd++Ow==} + light-my-request@6.6.0: + resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -2769,8 +2759,8 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - minimatch@10.0.2: - resolution: {integrity: sha512-+9TJCIYXgZ2Dm5LxVCFsa8jOm+evMwXHFI0JM1XROmkfkpz8/iLLDh+TwSmyIBrs6C6Xu9294/fq8cBA+P6AqA==} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} minimatch@3.1.2: @@ -2787,9 +2777,6 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mnemonist@0.39.6: - resolution: {integrity: sha512-A/0v5Z59y63US00cRSLiloEIw3t5G+MiKz4BhX21FI+YBJXBOGW0ohFxTxO08dsOYlzxo87T7vGfZKYp2bcAWA==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2887,9 +2874,6 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - obliterator@2.0.5: - resolution: {integrity: sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==} - on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} engines: {node: '>=14.0.0'} @@ -3005,8 +2989,9 @@ packages: path-to-regexp@3.3.0: resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + path-to-regexp@8.2.0: + resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} + engines: {node: '>=16'} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -3078,9 +3063,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} - process-warning@4.0.1: resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} @@ -3095,10 +3077,6 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -3206,8 +3184,8 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} - ret@0.4.3: - resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==} + ret@0.5.0: + resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} engines: {node: '>=10'} reusify@1.1.0: @@ -3258,8 +3236,8 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - safe-regex2@3.1.0: - resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==} + safe-regex2@5.0.0: + resolution: {integrity: sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==} safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} @@ -3279,8 +3257,8 @@ packages: resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} engines: {node: '>= 10.13.0'} - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + secure-json-parse@4.0.0: + resolution: {integrity: sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==} semver-regex@4.0.5: resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} @@ -4193,39 +4171,46 @@ snapshots: '@fastify/accept-negotiator@2.0.1': {} - '@fastify/ajv-compiler@3.6.0': + '@fastify/ajv-compiler@4.0.2': dependencies: ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - fast-uri: 2.4.0 + ajv-formats: 3.0.1(ajv@8.17.1) + fast-uri: 3.0.6 - '@fastify/cors@9.0.1': + '@fastify/cors@11.0.1': dependencies: - fastify-plugin: 4.5.1 - mnemonist: 0.39.6 + fastify-plugin: 5.0.1 + toad-cache: 3.7.0 - '@fastify/error@3.4.1': {} + '@fastify/error@4.2.0': {} - '@fastify/fast-json-stringify-compiler@4.3.0': + '@fastify/fast-json-stringify-compiler@5.0.3': dependencies: - fast-json-stringify: 5.16.1 + fast-json-stringify: 6.0.1 - '@fastify/formbody@7.4.0': + '@fastify/formbody@8.0.2': dependencies: fast-querystring: 1.1.2 - fastify-plugin: 4.5.1 + fastify-plugin: 5.0.1 - '@fastify/merge-json-schemas@0.1.1': - dependencies: - fast-deep-equal: 3.1.3 + '@fastify/forwarded@3.0.0': {} - '@fastify/middie@8.3.3': + '@fastify/merge-json-schemas@0.2.1': dependencies: - '@fastify/error': 3.4.1 - fastify-plugin: 4.5.1 - path-to-regexp: 6.3.0 + dequal: 2.0.3 + + '@fastify/middie@9.0.3': + dependencies: + '@fastify/error': 4.2.0 + fastify-plugin: 5.0.1 + path-to-regexp: 8.2.0 reusify: 1.1.0 + '@fastify/proxy-addr@5.0.0': + dependencies: + '@fastify/forwarded': 3.0.0 + ipaddr.js: 2.2.0 + '@fastify/send@4.1.0': dependencies: '@lukeed/ms': 2.0.2 @@ -4241,7 +4226,7 @@ snapshots: content-disposition: 0.5.4 fastify-plugin: 5.0.1 fastq: 1.19.1 - glob: 11.0.2 + glob: 11.0.3 '@humanwhocodes/config-array@0.13.0': dependencies: @@ -4255,6 +4240,12 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -4283,7 +4274,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -4297,7 +4288,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + jest-config: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -4484,7 +4475,7 @@ snapshots: got: 11.8.6 os-filter-obj: 2.0.0 - '@nestjs/cli@10.4.9(@swc/cli@0.1.65(@swc/core@1.12.0)(chokidar@3.6.0))(@swc/core@1.12.0)': + '@nestjs/cli@10.4.9(@swc/cli@0.1.65(@swc/core@1.12.1)(chokidar@3.6.0))(@swc/core@1.12.1)': dependencies: '@angular-devkit/core': 17.3.11(chokidar@3.6.0) '@angular-devkit/schematics': 17.3.11(chokidar@3.6.0) @@ -4494,7 +4485,7 @@ snapshots: chokidar: 3.6.0 cli-table3: 0.6.5 commander: 4.1.1 - fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.12.0)) + fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.12.1)) glob: 10.4.5 inquirer: 8.2.6 node-emoji: 1.11.0 @@ -4503,11 +4494,11 @@ snapshots: tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.2.0 typescript: 5.7.2 - webpack: 5.97.1(@swc/core@1.12.0) + webpack: 5.97.1(@swc/core@1.12.1) webpack-node-externals: 3.0.0 optionalDependencies: - '@swc/cli': 0.1.65(@swc/core@1.12.0)(chokidar@3.6.0) - '@swc/core': 1.12.0 + '@swc/cli': 0.1.65(@swc/core@1.12.1)(chokidar@3.6.0) + '@swc/core': 1.12.1 transitivePeerDependencies: - esbuild - uglify-js @@ -4549,16 +4540,17 @@ snapshots: class-transformer: 0.5.1 class-validator: 0.14.2 - '@nestjs/platform-fastify@10.4.19(@fastify/static@8.2.0)(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2))': + '@nestjs/platform-fastify@11.1.3(@fastify/static@8.2.0)(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2))': dependencies: - '@fastify/cors': 9.0.1 - '@fastify/formbody': 7.4.0 - '@fastify/middie': 8.3.3 + '@fastify/cors': 11.0.1 + '@fastify/formbody': 8.0.2 + '@fastify/middie': 9.0.3 '@nestjs/common': 10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2) '@nestjs/core': 10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2) - fastify: 4.28.1 - light-my-request: 6.3.0 - path-to-regexp: 3.3.0 + fast-querystring: 1.1.2 + fastify: 5.3.3 + light-my-request: 6.6.0 + path-to-regexp: 8.2.0 tslib: 2.8.1 optionalDependencies: '@fastify/static': 8.2.0 @@ -4607,13 +4599,13 @@ snapshots: '@nestjs/core': 10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2) tslib: 2.8.1 - '@nestjs/typeorm@11.0.0(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2)(typeorm@0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)))': + '@nestjs/typeorm@11.0.0(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2)(typeorm@0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)))': dependencies: '@nestjs/common': 10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2) '@nestjs/core': 10.4.19(@nestjs/common@10.4.19(class-transformer@0.5.1)(class-validator@0.14.2)(reflect-metadata@0.1.14)(rxjs@7.8.2))(reflect-metadata@0.1.14)(rxjs@7.8.2) reflect-metadata: 0.1.14 rxjs: 7.8.2 - typeorm: 0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + typeorm: 0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) '@noble/hashes@1.8.0': {} @@ -4660,10 +4652,10 @@ snapshots: '@sqltools/formatter@1.2.5': {} - '@swc/cli@0.1.65(@swc/core@1.12.0)(chokidar@3.6.0)': + '@swc/cli@0.1.65(@swc/core@1.12.1)(chokidar@3.6.0)': dependencies: '@mole-inc/bin-wrapper': 8.0.1 - '@swc/core': 1.12.0 + '@swc/core': 1.12.1 commander: 7.2.0 fast-glob: 3.3.3 minimatch: 9.0.5 @@ -4673,51 +4665,51 @@ snapshots: optionalDependencies: chokidar: 3.6.0 - '@swc/core-darwin-arm64@1.12.0': + '@swc/core-darwin-arm64@1.12.1': optional: true - '@swc/core-darwin-x64@1.12.0': + '@swc/core-darwin-x64@1.12.1': optional: true - '@swc/core-linux-arm-gnueabihf@1.12.0': + '@swc/core-linux-arm-gnueabihf@1.12.1': optional: true - '@swc/core-linux-arm64-gnu@1.12.0': + '@swc/core-linux-arm64-gnu@1.12.1': optional: true - '@swc/core-linux-arm64-musl@1.12.0': + '@swc/core-linux-arm64-musl@1.12.1': optional: true - '@swc/core-linux-x64-gnu@1.12.0': + '@swc/core-linux-x64-gnu@1.12.1': optional: true - '@swc/core-linux-x64-musl@1.12.0': + '@swc/core-linux-x64-musl@1.12.1': optional: true - '@swc/core-win32-arm64-msvc@1.12.0': + '@swc/core-win32-arm64-msvc@1.12.1': optional: true - '@swc/core-win32-ia32-msvc@1.12.0': + '@swc/core-win32-ia32-msvc@1.12.1': optional: true - '@swc/core-win32-x64-msvc@1.12.0': + '@swc/core-win32-x64-msvc@1.12.1': optional: true - '@swc/core@1.12.0': + '@swc/core@1.12.1': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.23 optionalDependencies: - '@swc/core-darwin-arm64': 1.12.0 - '@swc/core-darwin-x64': 1.12.0 - '@swc/core-linux-arm-gnueabihf': 1.12.0 - '@swc/core-linux-arm64-gnu': 1.12.0 - '@swc/core-linux-arm64-musl': 1.12.0 - '@swc/core-linux-x64-gnu': 1.12.0 - '@swc/core-linux-x64-musl': 1.12.0 - '@swc/core-win32-arm64-msvc': 1.12.0 - '@swc/core-win32-ia32-msvc': 1.12.0 - '@swc/core-win32-x64-msvc': 1.12.0 + '@swc/core-darwin-arm64': 1.12.1 + '@swc/core-darwin-x64': 1.12.1 + '@swc/core-linux-arm-gnueabihf': 1.12.1 + '@swc/core-linux-arm64-gnu': 1.12.1 + '@swc/core-linux-arm64-musl': 1.12.1 + '@swc/core-linux-x64-gnu': 1.12.1 + '@swc/core-linux-x64-musl': 1.12.1 + '@swc/core-win32-arm64-msvc': 1.12.1 + '@swc/core-win32-ia32-msvc': 1.12.1 + '@swc/core-win32-x64-msvc': 1.12.1 '@swc/counter@0.1.3': {} @@ -5193,9 +5185,9 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - avvio@8.4.0: + avvio@9.1.0: dependencies: - '@fastify/error': 3.4.1 + '@fastify/error': 4.2.0 fastq: 1.19.1 aws-ssl-profiles@1.1.2: {} @@ -5257,8 +5249,6 @@ snapshots: balanced-match@1.0.2: {} - balanced-match@3.0.1: {} - base64-js@1.5.1: {} bin-check@4.1.0: @@ -5294,18 +5284,14 @@ snapshots: dependencies: balanced-match: 1.0.2 - brace-expansion@4.0.1: - dependencies: - balanced-match: 3.0.1 - braces@3.0.3: dependencies: fill-range: 7.1.1 browserslist@4.25.0: dependencies: - caniuse-lite: 1.0.30001722 - electron-to-chromium: 1.5.166 + caniuse-lite: 1.0.30001723 + electron-to-chromium: 1.5.167 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.0) @@ -5364,7 +5350,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001722: {} + caniuse-lite@1.0.30001723: {} chalk@4.1.2: dependencies: @@ -5473,8 +5459,6 @@ snapshots: convert-source-map@2.0.0: {} - cookie@0.7.2: {} - cookie@1.0.2: {} cookiejar@2.1.4: {} @@ -5490,13 +5474,13 @@ snapshots: optionalDependencies: typescript: 5.7.2 - create-jest@29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)): + create-jest@29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + jest-config: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -5585,6 +5569,8 @@ snapshots: depd@2.0.0: {} + dequal@2.0.3: {} + detect-newline@3.1.0: {} dezalgo@1.0.4: @@ -5636,7 +5622,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.166: {} + electron-to-chromium@1.5.167: {} emittery@0.13.1: {} @@ -5823,13 +5809,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)))(typescript@5.1.6): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)))(typescript@5.1.6): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.1.6) eslint: 8.57.1 optionalDependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.1.6))(eslint@8.57.1)(typescript@5.1.6) - jest: 29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + jest: 29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) transitivePeerDependencies: - supports-color - typescript @@ -5983,8 +5969,6 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - fast-content-type-parse@1.1.0: {} - fast-decode-uri-component@1.0.1: {} fast-deep-equal@3.1.3: {} @@ -6001,14 +5985,13 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-json-stringify@5.16.1: + fast-json-stringify@6.0.1: dependencies: - '@fastify/merge-json-schemas': 0.1.1 + '@fastify/merge-json-schemas': 0.2.1 ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) - fast-deep-equal: 3.1.3 - fast-uri: 2.4.0 - json-schema-ref-resolver: 1.0.1 + fast-uri: 3.0.6 + json-schema-ref-resolver: 2.0.1 rfdc: 1.4.1 fast-levenshtein@2.0.6: {} @@ -6021,30 +6004,25 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@2.4.0: {} - fast-uri@3.0.6: {} - fastify-plugin@4.5.1: {} - fastify-plugin@5.0.1: {} - fastify@4.28.1: + fastify@5.3.3: dependencies: - '@fastify/ajv-compiler': 3.6.0 - '@fastify/error': 3.4.1 - '@fastify/fast-json-stringify-compiler': 4.3.0 + '@fastify/ajv-compiler': 4.0.2 + '@fastify/error': 4.2.0 + '@fastify/fast-json-stringify-compiler': 5.0.3 + '@fastify/proxy-addr': 5.0.0 abstract-logging: 2.0.1 - avvio: 8.4.0 - fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.16.1 - find-my-way: 8.2.2 - light-my-request: 5.14.0 + avvio: 9.1.0 + fast-json-stringify: 6.0.1 + find-my-way: 9.3.0 + light-my-request: 6.6.0 pino: 9.7.0 - process-warning: 3.0.0 - proxy-addr: 2.0.7 + process-warning: 5.0.0 rfdc: 1.4.1 - secure-json-parse: 2.7.0 + secure-json-parse: 4.0.0 semver: 7.7.2 toad-cache: 3.7.0 @@ -6093,11 +6071,11 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-my-way@8.2.2: + find-my-way@9.3.0: dependencies: fast-deep-equal: 3.1.3 fast-querystring: 1.1.2 - safe-regex2: 3.1.0 + safe-regex2: 5.0.0 find-up@4.1.0: dependencies: @@ -6136,7 +6114,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.12.0)): + fork-ts-checker-webpack-plugin@9.0.2(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.12.1)): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -6151,7 +6129,7 @@ snapshots: semver: 7.7.2 tapable: 2.2.2 typescript: 5.7.2 - webpack: 5.97.1(@swc/core@1.12.0) + webpack: 5.97.1(@swc/core@1.12.1) form-data@4.0.3: dependencies: @@ -6168,8 +6146,6 @@ snapshots: once: 1.4.0 qs: 6.14.0 - forwarded@0.2.0: {} - fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -6263,11 +6239,11 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.2: + glob@11.0.3: dependencies: foreground-child: 3.3.1 jackspeak: 4.1.1 - minimatch: 10.0.2 + minimatch: 10.0.3 minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 2.0.0 @@ -6444,7 +6420,7 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - ipaddr.js@1.9.1: {} + ipaddr.js@2.2.0: {} is-array-buffer@3.0.5: dependencies: @@ -6668,16 +6644,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)): + jest-cli@29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + create-jest: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + jest-config: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -6687,7 +6663,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)): + jest-config@29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)): dependencies: '@babel/core': 7.27.4 '@jest/test-sequencer': 29.7.0 @@ -6713,7 +6689,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.19.0 - ts-node: 10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6) + ts-node: 10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -6939,12 +6915,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)): + jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + jest-cli: 29.7.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -6968,9 +6944,9 @@ snapshots: json-parse-even-better-errors@2.3.1: {} - json-schema-ref-resolver@1.0.1: + json-schema-ref-resolver@2.0.1: dependencies: - fast-deep-equal: 3.1.3 + dequal: 2.0.3 json-schema-traverse@0.4.1: {} @@ -7009,13 +6985,7 @@ snapshots: libphonenumber-js@1.12.9: {} - light-my-request@5.14.0: - dependencies: - cookie: 0.7.2 - process-warning: 3.0.0 - set-cookie-parser: 2.7.1 - - light-my-request@6.3.0: + light-my-request@6.6.0: dependencies: cookie: 1.0.2 process-warning: 4.0.1 @@ -7120,9 +7090,9 @@ snapshots: mimic-response@3.1.0: {} - minimatch@10.0.2: + minimatch@10.0.3: dependencies: - brace-expansion: 4.0.1 + '@isaacs/brace-expansion': 5.0.0 minimatch@3.1.2: dependencies: @@ -7136,10 +7106,6 @@ snapshots: minipass@7.1.2: {} - mnemonist@0.39.6: - dependencies: - obliterator: 2.0.5 - ms@2.1.3: {} mute-stream@0.0.8: {} @@ -7236,8 +7202,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - obliterator@2.0.5: {} - on-exit-leak-free@2.1.2: {} once@1.4.0: @@ -7350,7 +7314,7 @@ snapshots: path-to-regexp@3.3.0: {} - path-to-regexp@6.3.0: {} + path-to-regexp@8.2.0: {} path-type@4.0.0: {} @@ -7414,8 +7378,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - process-warning@3.0.0: {} - process-warning@4.0.1: {} process-warning@5.0.0: {} @@ -7427,11 +7389,6 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - pseudomap@1.0.2: {} pump@3.0.2: @@ -7538,7 +7495,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - ret@0.4.3: {} + ret@0.5.0: {} reusify@1.1.0: {} @@ -7589,9 +7546,9 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - safe-regex2@3.1.0: + safe-regex2@5.0.0: dependencies: - ret: 0.4.3 + ret: 0.5.0 safe-stable-stringify@2.5.0: {} @@ -7619,7 +7576,7 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) - secure-json-parse@2.7.0: {} + secure-json-parse@4.0.0: {} semver-regex@4.0.5: {} @@ -7874,16 +7831,16 @@ snapshots: tapable@2.2.2: {} - terser-webpack-plugin@5.3.14(@swc/core@1.12.0)(webpack@5.97.1(@swc/core@1.12.0)): + terser-webpack-plugin@5.3.14(@swc/core@1.12.1)(webpack@5.97.1(@swc/core@1.12.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.42.0 - webpack: 5.97.1(@swc/core@1.12.0) + webpack: 5.97.1(@swc/core@1.12.1) optionalDependencies: - '@swc/core': 1.12.0 + '@swc/core': 1.12.1 terser@5.42.0: dependencies: @@ -7938,11 +7895,11 @@ snapshots: dependencies: escape-string-regexp: 5.0.0 - ts-jest@29.1.0(@babel/core@7.27.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.4))(jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)))(typescript@5.1.6): + ts-jest@29.1.0(@babel/core@7.27.4)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.4))(jest@29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)))(typescript@5.1.6): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)) + jest: 29.5.0(@types/node@20.19.0)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -7955,7 +7912,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.27.4) - ts-loader@9.5.2(typescript@5.1.6)(webpack@5.97.1(@swc/core@1.12.0)): + ts-loader@9.5.2(typescript@5.1.6)(webpack@5.97.1(@swc/core@1.12.1)): dependencies: chalk: 4.1.2 enhanced-resolve: 5.18.1 @@ -7963,9 +7920,9 @@ snapshots: semver: 7.7.2 source-map: 0.7.4 typescript: 5.1.6 - webpack: 5.97.1(@swc/core@1.12.0) + webpack: 5.97.1(@swc/core@1.12.1) - ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6): + ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -7983,7 +7940,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.12.0 + '@swc/core': 1.12.1 tsconfig-paths-webpack-plugin@4.2.0: dependencies: @@ -8057,7 +8014,7 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typeorm@0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6)): + typeorm@0.3.24(mysql2@3.14.1)(reflect-metadata@0.1.14)(ts-node@10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6)): dependencies: '@sqltools/formatter': 1.2.5 ansis: 3.17.0 @@ -8076,7 +8033,7 @@ snapshots: yargs: 17.7.2 optionalDependencies: mysql2: 3.14.1 - ts-node: 10.9.2(@swc/core@1.12.0)(@types/node@20.19.0)(typescript@5.1.6) + ts-node: 10.9.2(@swc/core@1.12.1)(@types/node@20.19.0)(typescript@5.1.6) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -8147,7 +8104,7 @@ snapshots: webpack-sources@3.3.2: {} - webpack@5.97.1(@swc/core@1.12.0): + webpack@5.97.1(@swc/core@1.12.1): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -8169,7 +8126,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(@swc/core@1.12.0)(webpack@5.97.1(@swc/core@1.12.0)) + terser-webpack-plugin: 5.3.14(@swc/core@1.12.1)(webpack@5.97.1(@swc/core@1.12.1)) watchpack: 2.4.4 webpack-sources: 3.3.2 transitivePeerDependencies: diff --git a/src/config/api.config.ts b/src/config/api.config.ts new file mode 100644 index 0000000..3ff1aad --- /dev/null +++ b/src/config/api.config.ts @@ -0,0 +1,43 @@ +import { Configure } from '@/modules/config/configure'; +import { ConfigureFactory } from '@/modules/config/types'; +import * as contentControllers from '@/modules/content/controllers'; +import { ApiConfig, VersionOption } from '@/modules/restful/types'; + +export const v1 = async (configure: Configure): Promise => { + return { + routes: [ + { + name: 'app', + path: '/', + controllers: [], + doc: { + description: 'app name desc', + tags: [ + { name: '分类操作', description: '对分类进行CRUD操作' }, + { name: '标签操作', description: '对标签进行CRUD操作' }, + { name: '文章操作', description: '对文章进行CRUD操作' }, + { name: '评论操作', description: '对评论进行CRUD操作' }, + ], + }, + children: [ + { + name: 'app.content', + path: 'content', + controllers: Object.values(contentControllers), + }, + ], + }, + ], + }; +}; + +export const api: ConfigureFactory = { + register: async (configure: Configure) => ({ + title: configure.env.get('API_TITLE', `${await configure.get('app.name')} API`), + auth: true, + docuri: 'api/docs', + default: configure.env.get('API_DEFAULT_VERSION', 'v1'), + enabled: [], + versions: { v1: await v1(configure) }, + }), +}; diff --git a/src/config/index.ts b/src/config/index.ts index 5c4c60c..b7e86fe 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -2,3 +2,4 @@ export * from './database.config'; export * from './content.config'; export * from './app.config'; export * from './meili.config'; +export * from './api.config'; diff --git a/src/modules/content/content.module.ts b/src/modules/content/content.module.ts index 4864060..c78cc77 100644 --- a/src/modules/content/content.module.ts +++ b/src/modules/content/content.module.ts @@ -2,7 +2,6 @@ import { DynamicModule, Module, ModuleMetadata } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; -import * as controllers from '@/modules/content/controllers'; import * as entities from '@/modules/content/entities'; import * as repositories from '@/modules/content/repositories'; import * as services from '@/modules/content/services'; @@ -71,7 +70,6 @@ export class ContentModule { TypeOrmModule.forFeature(Object.values(entities)), DatabaseModule.forRepository(Object.values(repositories)), ], - controllers: Object.values(controllers), providers, exports, }; diff --git a/src/modules/content/controllers/category.controller.ts b/src/modules/content/controllers/category.controller.ts index b709385..7f8b1ef 100644 --- a/src/modules/content/controllers/category.controller.ts +++ b/src/modules/content/controllers/category.controller.ts @@ -11,9 +11,13 @@ import { SerializeOptions, } from '@nestjs/common'; +import { Depends } from '@/modules/restful/decorators/depend.decorator'; + +import { ContentModule } from '../content.module'; import { CreateCategoryDto, QueryCategoryDto, UpdateCategoryDto } from '../dtos/category.dto'; import { CategoryService } from '../services'; +@Depends(ContentModule) @Controller('category') export class CategoryController { constructor(protected service: CategoryService) {} diff --git a/src/modules/content/controllers/comment.controller.ts b/src/modules/content/controllers/comment.controller.ts index ac2945b..41ca66b 100644 --- a/src/modules/content/controllers/comment.controller.ts +++ b/src/modules/content/controllers/comment.controller.ts @@ -1,5 +1,8 @@ import { Body, Controller, Delete, Get, Post, Query, SerializeOptions } from '@nestjs/common'; +import { Depends } from '@/modules/restful/decorators/depend.decorator'; + +import { ContentModule } from '../content.module'; import { CreateCommentDto, DeleteCommentDto, @@ -8,6 +11,7 @@ import { } from '../dtos/comment.dto'; import { CommentService } from '../services'; +@Depends(ContentModule) @Controller('comment') export class CommentController { constructor(protected service: CommentService) {} diff --git a/src/modules/content/controllers/post.controller.ts b/src/modules/content/controllers/post.controller.ts index 8d23a1f..a889224 100644 --- a/src/modules/content/controllers/post.controller.ts +++ b/src/modules/content/controllers/post.controller.ts @@ -14,8 +14,12 @@ import { import { CreatePostDto, QueryPostDto, UpdatePostDto } from '@/modules/content/dtos/post.dto'; import { PostService } from '@/modules/content/services/post.service'; +import { Depends } from '@/modules/restful/decorators/depend.decorator'; + +import { ContentModule } from '../content.module'; import { DeleteWithTrashDto, RestoreDto } from '../dtos/delete.with.trash.dto'; +@Depends(ContentModule) @Controller('posts') export class PostController { constructor(private postService: PostService) {} diff --git a/src/modules/content/controllers/tag.controller.ts b/src/modules/content/controllers/tag.controller.ts index a7e1f1d..b5b24cb 100644 --- a/src/modules/content/controllers/tag.controller.ts +++ b/src/modules/content/controllers/tag.controller.ts @@ -13,9 +13,13 @@ import { import { DeleteDto } from '@/modules/content/dtos/delete.dto'; +import { Depends } from '@/modules/restful/decorators/depend.decorator'; + +import { ContentModule } from '../content.module'; import { CreateTagDto, QueryTagDto, UpdateTagDto } from '../dtos/tag.dto'; import { TagService } from '../services'; +@Depends(ContentModule) @Controller('tag') export class TagController { constructor(protected service: TagService) {} diff --git a/src/modules/core/config.ts b/src/modules/core/config.ts index 51105a9..5832a1f 100644 --- a/src/modules/core/config.ts +++ b/src/modules/core/config.ts @@ -23,7 +23,7 @@ export const createAppConfig: ( defaultRegister: (configure) => getDefaultAppConfig(configure), hook: (configure: Configure, value) => { if (isNil(value.url)) { - value.url = `${value.https ? 'https' : 'http'}//${value.host}:${value.port}`; + value.url = `${value.https ? 'https:' : 'http:'}//${value.host}:${value.port}`; } return value; }, diff --git a/src/modules/core/helpers/app.ts b/src/modules/core/helpers/app.ts index 1191ede..1188f21 100644 --- a/src/modules/core/helpers/app.ts +++ b/src/modules/core/helpers/app.ts @@ -33,9 +33,6 @@ export const createApp = (options: CreateOptions) => async (): Promise => { app.container = await builder({ configure: app.configure, BootModule }); - if (app.configure.has('app.prefix')) { - app.container.setGlobalPrefix(await app.configure.get('app.prefix')); - } useContainer(app.container.select(BootModule), { fallbackOnErrors: true }); return app; }; diff --git a/src/modules/restful/restful.ts b/src/modules/restful/restful.ts index 292acec..e06fe49 100644 --- a/src/modules/restful/restful.ts +++ b/src/modules/restful/restful.ts @@ -1,4 +1,4 @@ -import { INestApplication, Type } from '@nestjs/common'; +import { INestApplication, Injectable, Type } from '@nestjs/common'; import { RouterModule } from '@nestjs/core'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; @@ -15,6 +15,7 @@ import { } from './types'; import { trimPath } from './utils'; +@Injectable() export class Restful extends BaseRestful { protected _docs!: { [version: string]: ApiDocOption }; diff --git a/src/options.ts b/src/options.ts index 708b638..e98521d 100644 --- a/src/options.ts +++ b/src/options.ts @@ -4,18 +4,19 @@ import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify import * as configs from './config'; import { ContentModule } from './modules/content/content.module'; -import { CoreModule } from './modules/core/core.module'; import { CreateOptions } from './modules/core/types'; import { DatabaseModule } from './modules/database/database.module'; import { MeiliModule } from './modules/meilisearch/meili.module'; +import { Restful } from './modules/restful/restful'; +import { RestfulModule } from './modules/restful/restful.module'; export const createOptions: CreateOptions = { config: { factories: configs as any, storage: { enable: true } }, modules: async (configure) => [ DatabaseModule.forRoot(configure), MeiliModule.forRoot(configure), + RestfulModule.forRoot(configure), ContentModule.forRoot(configure), - CoreModule.forRoot(configure), ], globals: {}, builder: async ({ configure, BootModule }) => { @@ -27,6 +28,8 @@ export const createOptions: CreateOptions = { logger: ['error', 'warn'], }, ); + const restful = container.get(Restful); + await restful.factoryDocs(container); return container; }, };