From bfaf51fdedbd5115283d4de2ece0a3b86db6aef3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 16:28:27 +0800 Subject: [PATCH 1/7] chore(deps): bump fastify from 4.8.1 to 4.10.2 (#707) Bumps [fastify](https://github.com/fastify/fastify) from 4.8.1 to 4.10.2. - [Release notes](https://github.com/fastify/fastify/releases) - [Commits](https://github.com/fastify/fastify/compare/v4.8.1...v4.10.2) --- updated-dependencies: - dependency-name: fastify dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 214 +++++++++++++++++++++++++-------------------------- 2 files changed, 108 insertions(+), 108 deletions(-) diff --git a/package.json b/package.json index f9a93abe..b2473ad2 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "date-fns": "^2.16.1", "eta": "^3.2.0", "fast-jwt": "^2.1.0", - "fastify": "^4.1.0", + "fastify": "^4.10.2", "fastify-plugin": "^3.0.1", "filenamify": "^4.3.0", "fs-extra": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index 63e7855b..bcbf52cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -381,14 +381,14 @@ dependencies: fastify-plugin "^3.0.1" -"@fastify/ajv-compiler@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.1.0.tgz#7ccae63da5a115f583ae6cc68173dbc3c1f34405" - integrity sha512-+hRMMxcUmdqtnCGPwrI2yczFdlgp3IBR88WlPLimXlgRb8vHBTXz38I17R/9ui+hIt9jx0uOdZKOis77VooHfA== +"@fastify/ajv-compiler@^3.3.1": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" + integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA== dependencies: - ajv "^8.10.0" + ajv "^8.11.0" ajv-formats "^2.1.1" - fast-uri "^1.0.1" + fast-uri "^2.0.0" "@fastify/cookie@^8.3.0": version "8.3.0" @@ -406,17 +406,22 @@ fastify-plugin "^3.0.0" vary "^1.1.2" +"@fastify/deepmerge@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" + integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== + "@fastify/error@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.0.0.tgz#bfcb7b33cec0196413083a91ef2edc7b2c88455b" integrity sha512-dPRyT40GiHRzSCll3/Jn2nPe25+E1VXc9tDwRAIKwFCxd5Np5wzgz1tmooWG3sV0qKgrBibihVoCna2ru4SEFg== -"@fastify/fast-json-stringify-compiler@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-3.0.1.tgz#78dfd3989f1e991a2fed1b0abfe1ffb29fcc3fe8" - integrity sha512-X9BL9/N7827M9UTBVsa5G3xOoD3MQ6EqX+D6EyJyF8LdvWTHQJ//BDN4FAEaGZUA2sL+GEMC6+KNjHESnPwQuw== +"@fastify/fast-json-stringify-compiler@^4.1.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.2.0.tgz#52d047fac76b0d75bd660f04a5dd606659f57c5a" + integrity sha512-ypZynRvXA3dibfPykQN3RB5wBdEUgSGgny8Qc6k163wYPLD4mEGEDkACp+00YmqkGvIm8D/xYoHajwyEdWD/eg== dependencies: - fast-json-stringify "^4.2.0" + fast-json-stringify "^5.0.0" "@fastify/formbody@^7.0.1": version "7.0.1" @@ -1168,7 +1173,7 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.1.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.8.0: version "8.11.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== @@ -1437,15 +1442,14 @@ ava@^4.3.1: write-file-atomic "^4.0.1" yargs "^17.5.1" -avvio@^8.1.3: - version "8.1.3" - resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.1.3.tgz#9ff0839ade93bcab62e212e7bdd4281dd6adccc3" - integrity sha512-tl9TC0yDRKzP6gFLkrInqPyx8AkfBC/0QRnwkE9Jo31+OJjLrE/73GJuE0QgSB0Vpv38CTJJZGqU9hczowclWw== +avvio@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.0.tgz#aff28b0266617bf07ffc1c2d5f4220c3663ce1c2" + integrity sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg== dependencies: archy "^1.0.0" debug "^4.0.0" fastq "^1.6.1" - queue-microtask "^1.1.2" awesome-phonenumber@^2.70.0: version "2.70.0" @@ -1860,10 +1864,10 @@ concordance@^5.0.4: semver "^7.3.2" well-known-symbols "^2.0.0" -content-type@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +content-type@^1.0.2, content-type@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== conventional-changelog-angular@^5.0.11: version "5.0.12" @@ -2648,6 +2652,11 @@ extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" +fast-decode-uri-component@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" + integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2686,17 +2695,17 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-json-stringify@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-4.2.0.tgz#eb49243c79d1deca85eeb488caf69007b7336c7c" - integrity sha512-9RWBl82H7jwnPlkZ/ghi0VD5OFZVdwgwVui0nYzjnXbPQxJ3ES1+SQcWIoeCJOgrY7JkBkY/69UNZSroFPDRdQ== +fast-json-stringify@^5.0.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.5.0.tgz#6655cb944df8da43f6b15312a9564b81c55dadab" + integrity sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA== dependencies: + "@fastify/deepmerge" "^1.0.0" ajv "^8.10.0" ajv-formats "^2.1.1" - deepmerge "^4.2.2" - fast-uri "^2.0.0" + fast-deep-equal "^3.1.3" + fast-uri "^2.1.0" rfdc "^1.2.0" - string-similarity "^4.0.1" fast-jwt@^2.0.0, fast-jwt@^2.1.0: version "2.1.0" @@ -2712,21 +2721,28 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-querystring@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.1.tgz#f4c56ef56b1a954880cfd8c01b83f9e1a3d3fda2" + integrity sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q== + dependencies: + fast-decode-uri-component "^1.0.1" + fast-redact@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.1.tgz#790fcff8f808c2e12fabbfb2be5cb2deda448fa0" integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A== -fast-uri@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-1.0.1.tgz#dd637f093bccf17ebea58a70c178ee8a70b5aa45" - integrity sha512-dbO/+ny6lX4tt7pvfPMTiHfQVR5igYKFa5BJ2a21TWuOgd2ySp5DYswsEGuMcJZLL3/eJ/MQJ5KNcXyNUvDt8w== - fast-uri@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.1.0.tgz#9279432d6b53675c90116b947ed2bbba582d6fb5" integrity sha512-qKRta6N7BWEFVlyonVY/V+BMLgFqktCUV0QjT259ekAIlbVrMaFnFLxJ4s/JPl4tou56S1BzPufI60bLe29fHA== +fast-uri@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.2.0.tgz#519a0f849bef714aad10e9753d69d8f758f7445a" + integrity sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg== + fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -2754,25 +2770,26 @@ fastify-plugin@^4.0.0: resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.2.1.tgz#4b80020957938dbc44b8ad4a898fd8bcfbab3f65" integrity sha512-dlGKiwLzRBKkEf5J5ho0uAD/Jdv8GQVUbriB3tAX3ehRUXE4gTV3lRd5inEg9li1aLzb0EGj8y2K4/8g1TN06g== -fastify@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.1.0.tgz#c5b7c03eff57233c2108e52c75559ede8e59eec8" - integrity sha512-nze95u3wpVIsOXMmSi5kgUaEIZq2HJmerk/+ivFBPtYozAydoDg92BcsxDtO4cb8vW4RBkahx8zL5PgH9YulCw== +fastify@^4.10.2: + version "4.10.2" + resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.10.2.tgz#0dd1cb8d16df3c14eff938c08aa6da63b4035d0d" + integrity sha512-0T+4zI6N3S8ex0LCZi3H4FasJR4AzWw834fUkPWvV8r6GBJkLmAOfFxH8f5V29Plef24IK0QSQD/tz1Nx+1UOA== dependencies: - "@fastify/ajv-compiler" "^3.1.0" + "@fastify/ajv-compiler" "^3.3.1" "@fastify/error" "^3.0.0" - "@fastify/fast-json-stringify-compiler" "^3.0.1" + "@fastify/fast-json-stringify-compiler" "^4.1.0" abstract-logging "^2.0.1" - avvio "^8.1.3" - find-my-way "^6.3.0" - light-my-request "^5.0.0" - pino "^8.0.0" + avvio "^8.2.0" + content-type "^1.0.4" + find-my-way "^7.3.0" + light-my-request "^5.6.1" + pino "^8.5.0" process-warning "^2.0.0" proxy-addr "^2.0.7" rfdc "^1.3.0" - secure-json-parse "^2.4.0" + secure-json-parse "^2.5.0" semver "^7.3.7" - tiny-lru "^8.0.2" + tiny-lru "^10.0.0" fastparallel@^2.2.0: version "2.4.0" @@ -2858,12 +2875,13 @@ filter-obj@^1.1.0: resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= -find-my-way@^6.3.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-6.4.0.tgz#2c25558878dfc1875beea6925e6c74ccc37b8c5c" - integrity sha512-OAxMF75jKPpy8jUb29WupNfypFAzBuAiPM6xS17twiP07hJb0tKkD6Fy8dy8pN14AD8hMlc0jA6q0d+Dg5reUQ== +find-my-way@^7.3.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.4.0.tgz#22363e6cd1c466f88883703e169a20c983f9c9cc" + integrity sha512-JFT7eURLU5FumlZ3VBGnveId82cZz7UR7OUu+THQJOwdQXxmS/g8v0KLoFhv97HreycOrmAbqjXD/4VG2j0uMQ== dependencies: fast-deep-equal "^3.1.3" + fast-querystring "^1.0.0" safe-regex2 "^2.0.0" find-up@^2.1.0: @@ -3934,14 +3952,13 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -light-my-request@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.0.0.tgz#2ac329d472c5c74c74be62fb2a8790c444c22ab0" - integrity sha512-0OPHKV+uHgBOnRokzL1LqeMCnSAo5l/rZS7kyB6G1I8qxGCvhXpq1M6WK565Y9A5CSn50l3DVaHnJ5FCdpguZQ== +light-my-request@^5.6.1: + version "5.8.0" + resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.8.0.tgz#93b28615d4cd134b4e2370bcf2ff7e35b51c8d29" + integrity sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg== dependencies: - ajv "^8.1.0" cookie "^0.5.0" - process-warning "^1.0.0" + process-warning "^2.0.0" set-cookie-parser "^2.4.1" lines-and-columns@^1.1.6: @@ -4876,27 +4893,27 @@ pino-abstract-transport@v1.0.0: readable-stream "^4.0.0" split2 "^4.0.0" -pino-std-serializers@^5.0.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-5.6.0.tgz#31b141155d6520967c5ec72944d08fb45c490fd3" - integrity sha512-VdUXCw8gO+xhir7sFuoYSjTnzB+TMDGxhAC/ph3YS3sdHnXNdsK0wMtADNUltfeGkn2KDxEM21fnjF3RwXyC8A== +pino-std-serializers@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz#307490fd426eefc95e06067e85d8558603e8e844" + integrity sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g== -pino@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.1.0.tgz#6211c5e77d813624f6707ec4750f4fbf778d5621" - integrity sha512-53jlxs+02UNTtF1XwVWfa0dHipBiM5GK73XhkHn8M2hUl9y3L94dNwB8BwQhpd5WdHjBkyJiO7v0LRt4SGgsPg== +pino@^8.5.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.9.0.tgz#d7a66968aa8c8140f9335624bbcf2f06082d168c" + integrity sha512-/x9qSrFW4wh+7OL5bLIbfl06aK/8yCSIldhD3VmVGiVYWSdFFpXvJh/4xWKENs+DhG1VkJnnpWxMF6fZ2zGXeg== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" on-exit-leak-free "^2.1.0" pino-abstract-transport v1.0.0 - pino-std-serializers "^5.0.0" + pino-std-serializers "^6.0.0" process-warning "^2.0.0" quick-format-unescaped "^4.0.3" - real-require "^0.1.0" + real-require "^0.2.0" safe-stable-stringify "^2.3.1" - sonic-boom "^3.0.0" - thread-stream "^1.0.0" + sonic-boom "^3.1.0" + thread-stream "^2.0.0" pkg-conf@^4.0.0: version "4.0.0" @@ -4971,11 +4988,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process-warning@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" - integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - process-warning@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.0.0.tgz#341dbeaac985b90a04ebcd844d50097c7737b2ee" @@ -5072,7 +5084,7 @@ query-string@^7.1.1: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -queue-microtask@^1.1.2, queue-microtask@^1.2.2: +queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== @@ -5169,10 +5181,10 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -real-require@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" - integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== +real-require@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" + integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== rechoir@^0.7.0: version "0.7.0" @@ -5390,10 +5402,10 @@ sdk-base@^2.0.1: dependencies: get-ready "~1.0.0" -secure-json-parse@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85" - integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== +secure-json-parse@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" + integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== semver-compare@^1.0.0: version "1.0.0" @@ -5405,7 +5417,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.3.7, semver@^7.3.5, semver@^7.3.7: +semver@7.3.7, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -5417,13 +5429,6 @@ semver@^6.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2, semver@^7.3.4: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - seq-queue@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" @@ -5574,10 +5579,10 @@ socks@^2.3.3: ip "^1.1.5" smart-buffer "^4.1.0" -sonic-boom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.0.0.tgz#235119a6606e2646919a27d83ef687f2ba6c0fba" - integrity sha512-p5DiZOZHbJ2ZO5MADczp5qrfOd3W5Vr2vHxfCpe7G4AzPwVOweIjbfgku8wSQUuk+Y5Yuo8W7JqRe6XKmKistg== +sonic-boom@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.1.tgz#972ceab831b5840a08a002fa95a672008bda1c38" + integrity sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A== dependencies: atomic-sleep "^1.0.0" @@ -5701,11 +5706,6 @@ string-argv@0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-similarity@^4.0.1: - version "4.0.4" - resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b" - integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ== - string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -5941,12 +5941,12 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -thread-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-1.0.0.tgz#a7ba5c3defceb77c69deea6c3a62faf74891e4ba" - integrity sha512-2Sw29jWubQWOcVa7MhLHJ51wjksUD/GHN4Fy3hP9w9DYTujifoZGSKBl54CMLRXWoD5h2pD707kY3fAdzhcwAg== +thread-stream@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.3.0.tgz#4fc07fb39eff32ae7bad803cb7dd9598349fed33" + integrity sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA== dependencies: - real-require "^0.1.0" + real-require "^0.2.0" through2@^4.0.0: version "4.0.2" @@ -5965,10 +5965,10 @@ time-zone@^1.0.0: resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" integrity sha1-mcW/VZWJZq9tBtg73zgA3IL67F0= -tiny-lru@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-8.0.2.tgz#812fccbe6e622ded552e3ff8a4c3b5ff34a85e4c" - integrity sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg== +tiny-lru@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-10.0.1.tgz#aaf5d22207e641ed1b176ac2e616d6cc2fc9ef66" + integrity sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA== to-arraybuffer@^1.0.0: version "1.0.1" From a0604cc7f23c865b033606a8ca46342b92b19575 Mon Sep 17 00:00:00 2001 From: siyu Date: Mon, 2 Sep 2024 18:36:50 +0800 Subject: [PATCH 2/7] Revert "chore(deps): bump fastify from 4.8.1 to 4.10.2 (#707)" This reverts commit bfaf51fdedbd5115283d4de2ece0a3b86db6aef3. --- package.json | 2 +- yarn.lock | 214 +++++++++++++++++++++++++-------------------------- 2 files changed, 108 insertions(+), 108 deletions(-) diff --git a/package.json b/package.json index b2473ad2..f9a93abe 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "date-fns": "^2.16.1", "eta": "^3.2.0", "fast-jwt": "^2.1.0", - "fastify": "^4.10.2", + "fastify": "^4.1.0", "fastify-plugin": "^3.0.1", "filenamify": "^4.3.0", "fs-extra": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index bcbf52cb..63e7855b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -381,14 +381,14 @@ dependencies: fastify-plugin "^3.0.1" -"@fastify/ajv-compiler@^3.3.1": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670" - integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA== +"@fastify/ajv-compiler@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.1.0.tgz#7ccae63da5a115f583ae6cc68173dbc3c1f34405" + integrity sha512-+hRMMxcUmdqtnCGPwrI2yczFdlgp3IBR88WlPLimXlgRb8vHBTXz38I17R/9ui+hIt9jx0uOdZKOis77VooHfA== dependencies: - ajv "^8.11.0" + ajv "^8.10.0" ajv-formats "^2.1.1" - fast-uri "^2.0.0" + fast-uri "^1.0.1" "@fastify/cookie@^8.3.0": version "8.3.0" @@ -406,22 +406,17 @@ fastify-plugin "^3.0.0" vary "^1.1.2" -"@fastify/deepmerge@^1.0.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" - integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== - "@fastify/error@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.0.0.tgz#bfcb7b33cec0196413083a91ef2edc7b2c88455b" integrity sha512-dPRyT40GiHRzSCll3/Jn2nPe25+E1VXc9tDwRAIKwFCxd5Np5wzgz1tmooWG3sV0qKgrBibihVoCna2ru4SEFg== -"@fastify/fast-json-stringify-compiler@^4.1.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.2.0.tgz#52d047fac76b0d75bd660f04a5dd606659f57c5a" - integrity sha512-ypZynRvXA3dibfPykQN3RB5wBdEUgSGgny8Qc6k163wYPLD4mEGEDkACp+00YmqkGvIm8D/xYoHajwyEdWD/eg== +"@fastify/fast-json-stringify-compiler@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-3.0.1.tgz#78dfd3989f1e991a2fed1b0abfe1ffb29fcc3fe8" + integrity sha512-X9BL9/N7827M9UTBVsa5G3xOoD3MQ6EqX+D6EyJyF8LdvWTHQJ//BDN4FAEaGZUA2sL+GEMC6+KNjHESnPwQuw== dependencies: - fast-json-stringify "^5.0.0" + fast-json-stringify "^4.2.0" "@fastify/formbody@^7.0.1": version "7.0.1" @@ -1173,7 +1168,7 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.1.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.8.0: version "8.11.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== @@ -1442,14 +1437,15 @@ ava@^4.3.1: write-file-atomic "^4.0.1" yargs "^17.5.1" -avvio@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.2.0.tgz#aff28b0266617bf07ffc1c2d5f4220c3663ce1c2" - integrity sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg== +avvio@^8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.1.3.tgz#9ff0839ade93bcab62e212e7bdd4281dd6adccc3" + integrity sha512-tl9TC0yDRKzP6gFLkrInqPyx8AkfBC/0QRnwkE9Jo31+OJjLrE/73GJuE0QgSB0Vpv38CTJJZGqU9hczowclWw== dependencies: archy "^1.0.0" debug "^4.0.0" fastq "^1.6.1" + queue-microtask "^1.1.2" awesome-phonenumber@^2.70.0: version "2.70.0" @@ -1864,10 +1860,10 @@ concordance@^5.0.4: semver "^7.3.2" well-known-symbols "^2.0.0" -content-type@^1.0.2, content-type@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +content-type@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== conventional-changelog-angular@^5.0.11: version "5.0.12" @@ -2652,11 +2648,6 @@ extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" -fast-decode-uri-component@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" - integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -2695,17 +2686,17 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-json-stringify@^5.0.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.5.0.tgz#6655cb944df8da43f6b15312a9564b81c55dadab" - integrity sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA== +fast-json-stringify@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-4.2.0.tgz#eb49243c79d1deca85eeb488caf69007b7336c7c" + integrity sha512-9RWBl82H7jwnPlkZ/ghi0VD5OFZVdwgwVui0nYzjnXbPQxJ3ES1+SQcWIoeCJOgrY7JkBkY/69UNZSroFPDRdQ== dependencies: - "@fastify/deepmerge" "^1.0.0" ajv "^8.10.0" ajv-formats "^2.1.1" - fast-deep-equal "^3.1.3" - fast-uri "^2.1.0" + deepmerge "^4.2.2" + fast-uri "^2.0.0" rfdc "^1.2.0" + string-similarity "^4.0.1" fast-jwt@^2.0.0, fast-jwt@^2.1.0: version "2.1.0" @@ -2721,28 +2712,21 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fast-querystring@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.1.tgz#f4c56ef56b1a954880cfd8c01b83f9e1a3d3fda2" - integrity sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q== - dependencies: - fast-decode-uri-component "^1.0.1" - fast-redact@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.1.tgz#790fcff8f808c2e12fabbfb2be5cb2deda448fa0" integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A== +fast-uri@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-1.0.1.tgz#dd637f093bccf17ebea58a70c178ee8a70b5aa45" + integrity sha512-dbO/+ny6lX4tt7pvfPMTiHfQVR5igYKFa5BJ2a21TWuOgd2ySp5DYswsEGuMcJZLL3/eJ/MQJ5KNcXyNUvDt8w== + fast-uri@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.1.0.tgz#9279432d6b53675c90116b947ed2bbba582d6fb5" integrity sha512-qKRta6N7BWEFVlyonVY/V+BMLgFqktCUV0QjT259ekAIlbVrMaFnFLxJ4s/JPl4tou56S1BzPufI60bLe29fHA== -fast-uri@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.2.0.tgz#519a0f849bef714aad10e9753d69d8f758f7445a" - integrity sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg== - fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -2770,26 +2754,25 @@ fastify-plugin@^4.0.0: resolved "https://registry.yarnpkg.com/fastify-plugin/-/fastify-plugin-4.2.1.tgz#4b80020957938dbc44b8ad4a898fd8bcfbab3f65" integrity sha512-dlGKiwLzRBKkEf5J5ho0uAD/Jdv8GQVUbriB3tAX3ehRUXE4gTV3lRd5inEg9li1aLzb0EGj8y2K4/8g1TN06g== -fastify@^4.10.2: - version "4.10.2" - resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.10.2.tgz#0dd1cb8d16df3c14eff938c08aa6da63b4035d0d" - integrity sha512-0T+4zI6N3S8ex0LCZi3H4FasJR4AzWw834fUkPWvV8r6GBJkLmAOfFxH8f5V29Plef24IK0QSQD/tz1Nx+1UOA== +fastify@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.1.0.tgz#c5b7c03eff57233c2108e52c75559ede8e59eec8" + integrity sha512-nze95u3wpVIsOXMmSi5kgUaEIZq2HJmerk/+ivFBPtYozAydoDg92BcsxDtO4cb8vW4RBkahx8zL5PgH9YulCw== dependencies: - "@fastify/ajv-compiler" "^3.3.1" + "@fastify/ajv-compiler" "^3.1.0" "@fastify/error" "^3.0.0" - "@fastify/fast-json-stringify-compiler" "^4.1.0" + "@fastify/fast-json-stringify-compiler" "^3.0.1" abstract-logging "^2.0.1" - avvio "^8.2.0" - content-type "^1.0.4" - find-my-way "^7.3.0" - light-my-request "^5.6.1" - pino "^8.5.0" + avvio "^8.1.3" + find-my-way "^6.3.0" + light-my-request "^5.0.0" + pino "^8.0.0" process-warning "^2.0.0" proxy-addr "^2.0.7" rfdc "^1.3.0" - secure-json-parse "^2.5.0" + secure-json-parse "^2.4.0" semver "^7.3.7" - tiny-lru "^10.0.0" + tiny-lru "^8.0.2" fastparallel@^2.2.0: version "2.4.0" @@ -2875,13 +2858,12 @@ filter-obj@^1.1.0: resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= -find-my-way@^7.3.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-7.4.0.tgz#22363e6cd1c466f88883703e169a20c983f9c9cc" - integrity sha512-JFT7eURLU5FumlZ3VBGnveId82cZz7UR7OUu+THQJOwdQXxmS/g8v0KLoFhv97HreycOrmAbqjXD/4VG2j0uMQ== +find-my-way@^6.3.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-6.4.0.tgz#2c25558878dfc1875beea6925e6c74ccc37b8c5c" + integrity sha512-OAxMF75jKPpy8jUb29WupNfypFAzBuAiPM6xS17twiP07hJb0tKkD6Fy8dy8pN14AD8hMlc0jA6q0d+Dg5reUQ== dependencies: fast-deep-equal "^3.1.3" - fast-querystring "^1.0.0" safe-regex2 "^2.0.0" find-up@^2.1.0: @@ -3952,13 +3934,14 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -light-my-request@^5.6.1: - version "5.8.0" - resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.8.0.tgz#93b28615d4cd134b4e2370bcf2ff7e35b51c8d29" - integrity sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg== +light-my-request@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.0.0.tgz#2ac329d472c5c74c74be62fb2a8790c444c22ab0" + integrity sha512-0OPHKV+uHgBOnRokzL1LqeMCnSAo5l/rZS7kyB6G1I8qxGCvhXpq1M6WK565Y9A5CSn50l3DVaHnJ5FCdpguZQ== dependencies: + ajv "^8.1.0" cookie "^0.5.0" - process-warning "^2.0.0" + process-warning "^1.0.0" set-cookie-parser "^2.4.1" lines-and-columns@^1.1.6: @@ -4893,27 +4876,27 @@ pino-abstract-transport@v1.0.0: readable-stream "^4.0.0" split2 "^4.0.0" -pino-std-serializers@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-6.1.0.tgz#307490fd426eefc95e06067e85d8558603e8e844" - integrity sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g== +pino-std-serializers@^5.0.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-5.6.0.tgz#31b141155d6520967c5ec72944d08fb45c490fd3" + integrity sha512-VdUXCw8gO+xhir7sFuoYSjTnzB+TMDGxhAC/ph3YS3sdHnXNdsK0wMtADNUltfeGkn2KDxEM21fnjF3RwXyC8A== -pino@^8.5.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.9.0.tgz#d7a66968aa8c8140f9335624bbcf2f06082d168c" - integrity sha512-/x9qSrFW4wh+7OL5bLIbfl06aK/8yCSIldhD3VmVGiVYWSdFFpXvJh/4xWKENs+DhG1VkJnnpWxMF6fZ2zGXeg== +pino@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.1.0.tgz#6211c5e77d813624f6707ec4750f4fbf778d5621" + integrity sha512-53jlxs+02UNTtF1XwVWfa0dHipBiM5GK73XhkHn8M2hUl9y3L94dNwB8BwQhpd5WdHjBkyJiO7v0LRt4SGgsPg== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" on-exit-leak-free "^2.1.0" pino-abstract-transport v1.0.0 - pino-std-serializers "^6.0.0" + pino-std-serializers "^5.0.0" process-warning "^2.0.0" quick-format-unescaped "^4.0.3" - real-require "^0.2.0" + real-require "^0.1.0" safe-stable-stringify "^2.3.1" - sonic-boom "^3.1.0" - thread-stream "^2.0.0" + sonic-boom "^3.0.0" + thread-stream "^1.0.0" pkg-conf@^4.0.0: version "4.0.0" @@ -4988,6 +4971,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process-warning@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" + integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== + process-warning@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.0.0.tgz#341dbeaac985b90a04ebcd844d50097c7737b2ee" @@ -5084,7 +5072,7 @@ query-string@^7.1.1: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -queue-microtask@^1.2.2: +queue-microtask@^1.1.2, queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== @@ -5181,10 +5169,10 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -real-require@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78" - integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== +real-require@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381" + integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== rechoir@^0.7.0: version "0.7.0" @@ -5402,10 +5390,10 @@ sdk-base@^2.0.1: dependencies: get-ready "~1.0.0" -secure-json-parse@^2.5.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" - integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== +secure-json-parse@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85" + integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== semver-compare@^1.0.0: version "1.0.0" @@ -5417,7 +5405,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.3.7, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@7.3.7, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -5429,6 +5417,13 @@ semver@^6.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.2, semver@^7.3.4: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + seq-queue@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" @@ -5579,10 +5574,10 @@ socks@^2.3.3: ip "^1.1.5" smart-buffer "^4.1.0" -sonic-boom@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.1.tgz#972ceab831b5840a08a002fa95a672008bda1c38" - integrity sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A== +sonic-boom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.0.0.tgz#235119a6606e2646919a27d83ef687f2ba6c0fba" + integrity sha512-p5DiZOZHbJ2ZO5MADczp5qrfOd3W5Vr2vHxfCpe7G4AzPwVOweIjbfgku8wSQUuk+Y5Yuo8W7JqRe6XKmKistg== dependencies: atomic-sleep "^1.0.0" @@ -5706,6 +5701,11 @@ string-argv@0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== +string-similarity@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b" + integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ== + string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -5941,12 +5941,12 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -thread-stream@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.3.0.tgz#4fc07fb39eff32ae7bad803cb7dd9598349fed33" - integrity sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA== +thread-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-1.0.0.tgz#a7ba5c3defceb77c69deea6c3a62faf74891e4ba" + integrity sha512-2Sw29jWubQWOcVa7MhLHJ51wjksUD/GHN4Fy3hP9w9DYTujifoZGSKBl54CMLRXWoD5h2pD707kY3fAdzhcwAg== dependencies: - real-require "^0.2.0" + real-require "^0.1.0" through2@^4.0.0: version "4.0.2" @@ -5965,10 +5965,10 @@ time-zone@^1.0.0: resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" integrity sha1-mcW/VZWJZq9tBtg73zgA3IL67F0= -tiny-lru@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-10.0.1.tgz#aaf5d22207e641ed1b176ac2e616d6cc2fc9ef66" - integrity sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA== +tiny-lru@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-8.0.2.tgz#812fccbe6e622ded552e3ff8a4c3b5ff34a85e4c" + integrity sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg== to-arraybuffer@^1.0.0: version "1.0.1" From e5ee06017e062e5b583ffe0e03ea52a585a01255 Mon Sep 17 00:00:00 2001 From: hqer927 <41457198+hqer927@users.noreply.github.com> Date: Mon, 9 Sep 2024 11:48:13 +0800 Subject: [PATCH 3/7] feat: add user agreement about agree collect RTC data (#851) * feat: add user agreement about agree collect RTC data * feat: add user agreement about agree collect RTC data --- src/dao/index.ts | 3 + src/model/index.ts | 2 + src/model/user/Agreement.ts | 26 ++++ src/thirdPartyService/TypeORMService.ts | 2 + src/v1/controller/user/Router.ts | 6 + src/v1/controller/user/agreement/Get.ts | 52 +++++++ src/v1/controller/user/agreement/GetToRtc.ts | 89 +++++++++++ src/v1/controller/user/agreement/Set.ts | 61 ++++++++ src/v1/service/user/UserAgreement.ts | 65 ++++++++ .../user/__tests__/userAgreement.test.ts | 143 ++++++++++++++++++ src/v2/dao/index.ts | 2 + 11 files changed, 451 insertions(+) create mode 100644 src/model/user/Agreement.ts create mode 100644 src/v1/controller/user/agreement/Get.ts create mode 100644 src/v1/controller/user/agreement/GetToRtc.ts create mode 100644 src/v1/controller/user/agreement/Set.ts create mode 100644 src/v1/service/user/UserAgreement.ts create mode 100644 src/v1/service/user/__tests__/userAgreement.test.ts diff --git a/src/dao/index.ts b/src/dao/index.ts index 4011a4fa..6e955064 100644 --- a/src/dao/index.ts +++ b/src/dao/index.ts @@ -19,6 +19,7 @@ import { UserPhoneModel } from "../model/user/Phone"; import { UserSensitiveModel } from "../model/user/Sensitive"; import { UserEmailModel } from "../model/user/Email"; import { UserPmiModel } from "../model/user/Pmi"; +import { UserAgreementModel } from "../model/user/Agreement"; export const UserDAO = DAOImplement(UserModel) as ReturnType>; @@ -42,6 +43,8 @@ export const UserSensitiveDAO = DAOImplement(UserSensitiveModel) as ReturnType< export const UserPmiDAO = DAOImplement(UserPmiModel) as ReturnType>; +export const UserAgreementDAO = DAOImplement(UserAgreementModel) as ReturnType>; + export const RoomDAO = DAOImplement(RoomModel) as ReturnType>; export const RoomUserDAO = DAOImplement(RoomUserModel) as ReturnType>; diff --git a/src/model/index.ts b/src/model/index.ts index 26cbb958..bc92cc91 100644 --- a/src/model/index.ts +++ b/src/model/index.ts @@ -20,6 +20,7 @@ import { OAuthUsersModel } from "./oauth/oauth-users"; import { UserSensitiveModel } from "./user/Sensitive"; import { UserEmailModel } from "./user/Email"; import { UserPmiModel } from "./user/Pmi"; +import { UserAgreementModel } from "./user/Agreement"; import { PartnerModel } from "./partner/Partner"; import { PartnerRoomModel } from "./partner/PartnerRoom"; @@ -34,6 +35,7 @@ export type Model = | UserEmailModel | UserSensitiveModel | UserPmiModel + | UserAgreementModel | RoomModel | RoomUserModel | RoomPeriodicConfigModel diff --git a/src/model/user/Agreement.ts b/src/model/user/Agreement.ts new file mode 100644 index 00000000..eb86a4be --- /dev/null +++ b/src/model/user/Agreement.ts @@ -0,0 +1,26 @@ +import { Column, Entity, Index } from "typeorm"; +import { Content } from "../Content"; + +@Entity({ + name: "user_agreement", +}) +export class UserAgreementModel extends Content { + @Index("user_agreement_user_uuid_uindex", { + unique: true, + }) + @Column({ + length: 40, + }) + user_uuid: string; + + @Column({ + default: false, + }) + is_agree_collect_data: boolean; + + @Index("user_agreement_is_delete_index") + @Column({ + default: false, + }) + is_delete: boolean; +} diff --git a/src/thirdPartyService/TypeORMService.ts b/src/thirdPartyService/TypeORMService.ts index 2f2d15eb..59daf9a0 100644 --- a/src/thirdPartyService/TypeORMService.ts +++ b/src/thirdPartyService/TypeORMService.ts @@ -23,6 +23,7 @@ import { OAuthSecretsModel } from "../model/oauth/oauth-secrets"; import { OAuthUsersModel } from "../model/oauth/oauth-users"; import { UserEmailModel } from "../model/user/Email"; import { UserPmiModel } from "../model/user/Pmi"; +import { UserAgreementModel } from "../model/user/Agreement"; import { PartnerModel } from "../model/partner/Partner"; import { PartnerRoomModel } from "../model/partner/PartnerRoom"; @@ -44,6 +45,7 @@ export const dataSource = new DataSource({ UserEmailModel, UserSensitiveModel, UserPmiModel, + UserAgreementModel, RoomModel, RoomUserModel, RoomPeriodicConfigModel, diff --git a/src/v1/controller/user/Router.ts b/src/v1/controller/user/Router.ts index ab7fdf10..37093a5a 100644 --- a/src/v1/controller/user/Router.ts +++ b/src/v1/controller/user/Router.ts @@ -17,6 +17,9 @@ import { BindingGithub } from "./binding/platform/github/Binding"; import { BindingGoogle } from "./binding/platform/google/Binding"; import { BindingEmail } from "./binding/platform/email/Binding"; import { BindingApple } from "./binding/platform/apple/Binding"; +import { AgreementSet } from "./agreement/Set"; +import { AgreementGet } from "./agreement/Get"; +import { AgreementGetToRtc } from "./agreement/GetToRtc"; export const userRouters: Readonly>> = Object.freeze([ Rename, @@ -38,4 +41,7 @@ export const userRouters: Readonly>> = Object.fr DeleteAccount, UploadAvatarStart, UploadAvatarFinish, + AgreementSet, + AgreementGet, + AgreementGetToRtc ]); diff --git a/src/v1/controller/user/agreement/Get.ts b/src/v1/controller/user/agreement/Get.ts new file mode 100644 index 00000000..c7c47d24 --- /dev/null +++ b/src/v1/controller/user/agreement/Get.ts @@ -0,0 +1,52 @@ +import { AbstractController, ControllerClassParams } from "../../../../abstract/controller"; +import { Status } from "../../../../constants/Project"; +import { Controller } from "../../../../decorator/Controller"; +import { FastifySchema, Response, ResponseError } from "../../../../types/Server"; + +import { ServiceUserAgreement } from "../../../service/user/UserAgreement"; + +@Controller({ + method: "post", + path: "user/agreement/get", + auth: true, +}) +export class AgreementGet extends AbstractController { + public static readonly schema: FastifySchema = { + }; + + public readonly svc: { + userAgreement: ServiceUserAgreement; + }; + + public constructor(params: ControllerClassParams) { + super(params); + + this.svc = { + userAgreement: new ServiceUserAgreement(this.userUUID), + }; + } + + public async execute(): Promise> { + const isAgree = await this.svc.userAgreement.isAgreeCollectData(); + return { + status: Status.Success, + data: { + isAgree + } + } + } + + public errorHandler(error: Error): ResponseError { + return this.autoHandlerError(error); + } +} + +interface RequestType { + querystring: { + uid: string; + }; +} + +interface ResponseType { + isAgree: boolean; +} diff --git a/src/v1/controller/user/agreement/GetToRtc.ts b/src/v1/controller/user/agreement/GetToRtc.ts new file mode 100644 index 00000000..10823b9b --- /dev/null +++ b/src/v1/controller/user/agreement/GetToRtc.ts @@ -0,0 +1,89 @@ +import { RoomUserDAO } from "../../../../dao"; +import { AbstractController, ControllerClassParams } from "../../../../abstract/controller"; +import { Status } from "../../../../constants/Project"; +import { Controller } from "../../../../decorator/Controller"; +import { FastifySchema, Response, ResponseError } from "../../../../types/Server"; + +import { ServiceUserAgreement } from "../../../service/user/UserAgreement"; + +@Controller({ + method: "get", + path: "private-polic/get", + auth: false, + skipAutoHandle: true, +}) +export class AgreementGetToRtc extends AbstractController { + public static readonly schema: FastifySchema = { + querystring: { + type: "object", + required: ["uid"], + properties: { + uid: { + type: "string" + }, + room_uuid: { + type: "string" + } + }, + }, + }; + + public readonly svc: { + userAgreement: ServiceUserAgreement; + }; + + public constructor(params: ControllerClassParams) { + super(params); + + this.svc = { + userAgreement: new ServiceUserAgreement(this.userUUID), + }; + } + + public async execute(): Promise> { + const rtcUidstr = this.querystring.uid; + const room_uuid = this.querystring.room_uuid; + const rtcUids = rtcUidstr.split(","); + const listMap:Map = new Map(); + if (rtcUids.length > 0) { + for (const rtc_uid of rtcUids) { + const roomUserInfo = await RoomUserDAO().findOne(["user_uuid"], { + rtc_uid, + room_uuid + }); + if (roomUserInfo) { + const bol = await ServiceUserAgreement.hasCollectData(roomUserInfo.user_uuid); + if (bol) { + const isAgree = await ServiceUserAgreement.isAgreeCollectData(roomUserInfo.user_uuid); + listMap.set(rtc_uid, isAgree); + } else { + // 默认就是同意 + listMap.set(rtc_uid, true); + } + } else { + // 查不到用户则默认不同意 + listMap.set(rtc_uid, false); + } + } + } + return { + status: Status.Success, + data: Object.fromEntries(listMap) + } + } + + public errorHandler(error: Error): ResponseError { + return this.autoHandlerError(error); + } +} + +interface RequestType { + querystring: { + uid: string; + room_uuid: string; + }; +} + +interface ResponseType { + [key: string]: boolean; +} diff --git a/src/v1/controller/user/agreement/Set.ts b/src/v1/controller/user/agreement/Set.ts new file mode 100644 index 00000000..14e3dbc1 --- /dev/null +++ b/src/v1/controller/user/agreement/Set.ts @@ -0,0 +1,61 @@ +import { AbstractController, ControllerClassParams } from "../../../../abstract/controller"; +import { Status } from "../../../../constants/Project"; +import { Controller } from "../../../../decorator/Controller"; +import { FastifySchema, Response, ResponseError } from "../../../../types/Server"; + +import { ServiceUserAgreement } from "../../../service/user/UserAgreement"; + +@Controller({ + method: "post", + path: "user/agreement/set", + auth: true, +}) +export class AgreementSet extends AbstractController { + public static readonly schema: FastifySchema = { + body: { + type: "object", + required: ["is_agree_collect_data"], + properties: { + is_agree_collect_data: { + type: "boolean" + }, + }, + }, + }; + + public readonly svc: { + userAgreement: ServiceUserAgreement; + }; + + public constructor(params: ControllerClassParams) { + super(params); + + this.svc = { + userAgreement: new ServiceUserAgreement(this.userUUID), + }; + } + + public async execute(): Promise> { + await this.svc.userAgreement.set(this.body.is_agree_collect_data); + return { + status: Status.Success, + data: { + userUUID: this.userUUID + } + }; + } + + public errorHandler(error: Error): ResponseError { + return this.autoHandlerError(error); + } +} + +interface RequestType { + body: { + is_agree_collect_data: boolean; + }; +} + +interface ResponseType { + userUUID: string; +} diff --git a/src/v1/service/user/UserAgreement.ts b/src/v1/service/user/UserAgreement.ts new file mode 100644 index 00000000..7f90c23c --- /dev/null +++ b/src/v1/service/user/UserAgreement.ts @@ -0,0 +1,65 @@ +import { UserAgreementDAO } from "../../../dao"; +import { DeleteResult, EntityManager, InsertResult } from "typeorm"; +import { UpdateResult } from "typeorm/query-builder/result/UpdateResult"; + +export class ServiceUserAgreement { + constructor(private readonly userUUID: string) {} + public async isAgreeCollectData(): Promise { + const bol = await ServiceUserAgreement.hasCollectData(this.userUUID); + if (bol) { + const isAgree = await ServiceUserAgreement.isAgreeCollectData(this.userUUID); + return isAgree; + } + return true; + } + public async hasCollectData(): Promise { + return await ServiceUserAgreement.hasCollectData(this.userUUID); + } + public static async isAgreeCollectData(userUUID: string): Promise { + const result = await UserAgreementDAO().findOne(["is_agree_collect_data"], { + user_uuid: userUUID, + }); + return Boolean(result && result.is_agree_collect_data); + } + public static async hasCollectData(userUUID: string): Promise { + const result = await UserAgreementDAO().findOne(["user_uuid"], { + user_uuid: userUUID, + }); + return Boolean(result); + } + public async set( + is_agree_collect_data: boolean, + t?: EntityManager, + ): Promise { + const has = await this.hasCollectData(); + if (!has) { + return await this.create(is_agree_collect_data, t); + } + return await this.update(is_agree_collect_data, t); + } + public async create( + is_agree_collect_data: boolean, + t?: EntityManager, + ): Promise { + return await UserAgreementDAO(t).insert({ + user_uuid: this.userUUID, + is_agree_collect_data, + }); + } + public async update(is_agree_collect_data: boolean, t?: EntityManager): Promise { + return await UserAgreementDAO(t).update( + { + is_agree_collect_data, + }, + { + user_uuid: this.userUUID, + }, + ); + } + + public async physicalDeletion(t?: EntityManager): Promise { + return await UserAgreementDAO(t).physicalDeletion({ + user_uuid: this.userUUID, + }); + } +} diff --git a/src/v1/service/user/__tests__/userAgreement.test.ts b/src/v1/service/user/__tests__/userAgreement.test.ts new file mode 100644 index 00000000..14cb6b4d --- /dev/null +++ b/src/v1/service/user/__tests__/userAgreement.test.ts @@ -0,0 +1,143 @@ +import test from "ava"; +import { dataSource } from "../../../../thirdPartyService/TypeORMService"; +import { RoomUserDAO, UserAgreementDAO } from "../../../../dao"; +import { v4 } from "uuid"; +import { ServiceUserAgreement } from "../UserAgreement"; +import cryptoRandomString from "crypto-random-string"; + +const namespace = "[service][service-user][service-user-agreement]"; + +test.before(`${namespace} - initialize dataSource`, async () => { + await dataSource.initialize(); +}); + +test.after(`${namespace} - destroy dataSource`, async () => { + await dataSource.destroy(); +}); + +test(`${namespace} - set user collect agreement`, async ava => { + + const userUUID = v4(); + const serviceUserAgreement = new ServiceUserAgreement(userUUID); + + await serviceUserAgreement.set(true); + + let result = await UserAgreementDAO().findOne(["is_agree_collect_data"], { + user_uuid: userUUID, + }); + + ava.not(result, undefined); + + ava.is(result?.is_agree_collect_data, true); + + await serviceUserAgreement.set(false); + + result = await UserAgreementDAO().findOne(["is_agree_collect_data"], { + user_uuid: userUUID, + }); + + ava.is(result?.is_agree_collect_data, false); +}); + +test(`${namespace} - has agree collect data`, async ava => { + const userUUID = v4(); + + await UserAgreementDAO().insert({ + user_uuid: userUUID, + is_agree_collect_data: true, + }); + + const serviceUserAgreement = new ServiceUserAgreement(userUUID); + + const bol = await serviceUserAgreement.hasCollectData(); + + ava.is(bol, true); + + const userUUID1 = v4(); + + const bol1 = await ServiceUserAgreement.hasCollectData(userUUID1); + + ava.is(bol1, false); + +}); + +test(`${namespace} - delete user agreement`, async ava => { + const userUUID = v4(); + + await UserAgreementDAO().insert({ + user_uuid: userUUID, + is_agree_collect_data: true, + }); + + const serviceUserAgreement = new ServiceUserAgreement(userUUID); + await serviceUserAgreement.physicalDeletion(); + + const result = await UserAgreementDAO().findOne(["is_agree_collect_data"], { + user_uuid: userUUID, + }); + + ava.is(result, undefined); + + const bol = await serviceUserAgreement.hasCollectData(); + + ava.is(bol, false); + +}); +test(`${namespace} - get agree collect data`, async ava => { + + const userUUID = v4(); + await UserAgreementDAO().insert({ + user_uuid: userUUID, + is_agree_collect_data: true, + }); + + const serviceUserAgreement = new ServiceUserAgreement(userUUID); + const result = await serviceUserAgreement.isAgreeCollectData(); + + ava.not(result, undefined); + ava.is(result, true); + + const serviceUserAgreement1 = new ServiceUserAgreement(v4()); + + const result1 = await serviceUserAgreement1.hasCollectData(); + ava.is(result1, false); + + const result2 = await serviceUserAgreement.isAgreeCollectData(); + ava.is(result2, true); +}); +test(`${namespace} - get user by rtc_uuid collect agreement`, async ava => { + + const userUUID = v4(); + const roomUUID = v4(); + const rtcUUID = cryptoRandomString({ length: 6, type: "numeric" }); + + await Promise.all([ + RoomUserDAO().insert({ + room_uuid: roomUUID, + user_uuid: userUUID, + rtc_uid: rtcUUID, + }), + UserAgreementDAO().insert({ + user_uuid: userUUID, + is_agree_collect_data: true, + }), + ]); + + const result = await RoomUserDAO().findOne(["user_uuid"], { + rtc_uid: rtcUUID, + room_uuid: roomUUID, + }); + + ava.not(result, undefined); + + ava.is(result?.user_uuid, userUUID); + + const result1 = await UserAgreementDAO().findOne(["user_uuid"], { + user_uuid: userUUID, + }); + + ava.not(result1, undefined); + + ava.is(result?.user_uuid, result1?.user_uuid); + +}); \ No newline at end of file diff --git a/src/v2/dao/index.ts b/src/v2/dao/index.ts index 262beb03..9f558859 100644 --- a/src/v2/dao/index.ts +++ b/src/v2/dao/index.ts @@ -13,6 +13,7 @@ import { UserPhoneModel } from "../../model/user/Phone"; import { UserEmailModel } from "../../model/user/Email"; import { UserSensitiveModel } from "../../model/user/Sensitive"; import { UserPmiModel } from "../../model/user/Pmi"; +import { UserAgreementModel } from "../../model/user/Agreement"; import { RoomModel } from "../../model/room/Room"; import { RoomUserModel } from "../../model/room/RoomUser"; import { RoomPeriodicConfigModel } from "../../model/room/RoomPeriodicConfig"; @@ -189,6 +190,7 @@ export const userPhoneDAO = new DAO(UserPhoneModel); export const userEmailDAO = new DAO(UserEmailModel); export const userSensitiveDAO = new DAO(UserSensitiveModel); export const userPmiDAO = new DAO(UserPmiModel); +export const userAgreementDAO = new DAO(UserAgreementModel); export const roomDAO = new DAO(RoomModel); export const roomUserDAO = new DAO(RoomUserModel); export const roomPeriodicConfigDAO = new DAO(RoomPeriodicConfigModel); From b5b003932cf04efd01917f6095ada80354c96c6b Mon Sep 17 00:00:00 2001 From: hqer927 <41457198+hqer927@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:44:29 +0800 Subject: [PATCH 4/7] fix: modify about collect data by batch rtc_uuid (#852) --- src/v1/controller/user/agreement/Get.ts | 9 +-- src/v1/controller/user/agreement/GetToRtc.ts | 59 +++++++++++++------ .../user/__tests__/userAgreement.test.ts | 51 +++++++++++++++- 3 files changed, 92 insertions(+), 27 deletions(-) diff --git a/src/v1/controller/user/agreement/Get.ts b/src/v1/controller/user/agreement/Get.ts index c7c47d24..1de0f5a0 100644 --- a/src/v1/controller/user/agreement/Get.ts +++ b/src/v1/controller/user/agreement/Get.ts @@ -11,8 +11,7 @@ import { ServiceUserAgreement } from "../../../service/user/UserAgreement"; auth: true, }) export class AgreementGet extends AbstractController { - public static readonly schema: FastifySchema = { - }; + public static readonly schema: FastifySchema = {}; public readonly svc: { userAgreement: ServiceUserAgreement; @@ -41,11 +40,7 @@ export class AgreementGet extends AbstractController } } -interface RequestType { - querystring: { - uid: string; - }; -} +interface RequestType {} interface ResponseType { isAgree: boolean; diff --git a/src/v1/controller/user/agreement/GetToRtc.ts b/src/v1/controller/user/agreement/GetToRtc.ts index 10823b9b..60b00c81 100644 --- a/src/v1/controller/user/agreement/GetToRtc.ts +++ b/src/v1/controller/user/agreement/GetToRtc.ts @@ -1,16 +1,19 @@ -import { RoomUserDAO } from "../../../../dao"; import { AbstractController, ControllerClassParams } from "../../../../abstract/controller"; import { Status } from "../../../../constants/Project"; import { Controller } from "../../../../decorator/Controller"; import { FastifySchema, Response, ResponseError } from "../../../../types/Server"; import { ServiceUserAgreement } from "../../../service/user/UserAgreement"; +import { RoomUserModel } from "../../../../model/room/RoomUser"; +import { dataSource } from "../../../../thirdPartyService/TypeORMService"; +import { UserAgreementModel } from "./../../../../model/user/Agreement"; @Controller({ method: "get", path: "private-polic/get", auth: false, - skipAutoHandle: true, + skipAutoHandle: false, + enable: true }) export class AgreementGetToRtc extends AbstractController { public static readonly schema: FastifySchema = { @@ -45,24 +48,42 @@ export class AgreementGetToRtc extends AbstractController = new Map(); - if (rtcUids.length > 0) { - for (const rtc_uid of rtcUids) { - const roomUserInfo = await RoomUserDAO().findOne(["user_uuid"], { - rtc_uid, - room_uuid - }); - if (roomUserInfo) { - const bol = await ServiceUserAgreement.hasCollectData(roomUserInfo.user_uuid); - if (bol) { - const isAgree = await ServiceUserAgreement.isAgreeCollectData(roomUserInfo.user_uuid); - listMap.set(rtc_uid, isAgree); - } else { - // 默认就是同意 - listMap.set(rtc_uid, true); + const length = rtcUids.length; + if (length > 0) { + let i = 0; + const batchQueryRtcUids: string[][] = []; + while (i < length) { + const j = i + 50; + batchQueryRtcUids.push(rtcUids.slice(i, j)); + i = j; + } + for (const rtc_uids of batchQueryRtcUids) { + const roomUsersInfos = await dataSource + .createQueryBuilder(RoomUserModel, "ru") + .where("ru.room_uuid = :room_uuid", { + room_uuid, + }) + .andWhere("ru.rtc_uid IN (:...rtc_uids)", { rtc_uids }) + .getMany(); + + for (const rtc_uid of rtc_uids) { + listMap.set(rtc_uid, false); + } + const collectInfos = await dataSource + .createQueryBuilder(UserAgreementModel, "cInfo") + .where("cInfo.user_uuid IN (:...user_uuid)", { user_uuid: roomUsersInfos.map(c=> c && c.user_uuid) }) + .getMany(); + + for (const rInfo of roomUsersInfos) { + listMap.set(rInfo.rtc_uid, true); + const rtc_uid = rInfo.rtc_uid; + const user_uuid = rInfo.user_uuid; + if (rtc_uid && user_uuid) { + const cInfo = collectInfos.find(c=> c && (c.user_uuid === user_uuid)); + if (cInfo) { + listMap.set(rtc_uid, cInfo.is_agree_collect_data); + } } - } else { - // 查不到用户则默认不同意 - listMap.set(rtc_uid, false); } } } diff --git a/src/v1/service/user/__tests__/userAgreement.test.ts b/src/v1/service/user/__tests__/userAgreement.test.ts index 14cb6b4d..7ef001f1 100644 --- a/src/v1/service/user/__tests__/userAgreement.test.ts +++ b/src/v1/service/user/__tests__/userAgreement.test.ts @@ -4,6 +4,8 @@ import { RoomUserDAO, UserAgreementDAO } from "../../../../dao"; import { v4 } from "uuid"; import { ServiceUserAgreement } from "../UserAgreement"; import cryptoRandomString from "crypto-random-string"; +import { RoomUserModel } from "../../../../model/room/RoomUser"; +import { UserAgreementModel } from "../../../../model/user/Agreement"; const namespace = "[service][service-user][service-user-agreement]"; @@ -110,6 +112,7 @@ test(`${namespace} - get user by rtc_uuid collect agreement`, async ava => { const userUUID = v4(); const roomUUID = v4(); const rtcUUID = cryptoRandomString({ length: 6, type: "numeric" }); + const rtcUUID1 = cryptoRandomString({ length: 6, type: "numeric" }); await Promise.all([ RoomUserDAO().insert({ @@ -132,7 +135,7 @@ test(`${namespace} - get user by rtc_uuid collect agreement`, async ava => { ava.is(result?.user_uuid, userUUID); - const result1 = await UserAgreementDAO().findOne(["user_uuid"], { + const result1 = await UserAgreementDAO().findOne(["user_uuid", "is_agree_collect_data"], { user_uuid: userUUID, }); @@ -140,4 +143,50 @@ test(`${namespace} - get user by rtc_uuid collect agreement`, async ava => { ava.is(result?.user_uuid, result1?.user_uuid); + const rtcUids = [rtcUUID, rtcUUID1]; + const length = rtcUids.length; + const listMap:Map = new Map(); + if (length > 0) { + let i = 0; + const batchQueryRtcUids: string[][] = []; + while (i < length) { + const j = i + 50; + batchQueryRtcUids.push(rtcUids.slice(i, j)); + i = j; + } + for (const rtc_uids of batchQueryRtcUids) { + const roomUsersInfos = await dataSource + .createQueryBuilder(RoomUserModel, "ru") + .where("ru.room_uuid = :room_uuid", { + room_uuid:roomUUID, + }) + .andWhere("ru.rtc_uid IN (:...rtc_uids)", { rtc_uids }) + .getMany(); + + for (const rtc_uid of rtc_uids) { + listMap.set(rtc_uid, false); + } + const collectInfos = await dataSource + .createQueryBuilder(UserAgreementModel, "cInfo") + .where("cInfo.user_uuid IN (:...user_uuid)", { user_uuid: roomUsersInfos.map(c=> c && c.user_uuid) }) + .getMany(); + + for (const rInfo of roomUsersInfos) { + listMap.set(rInfo.rtc_uid, true); + const rtc_uid = rInfo.rtc_uid; + const user_uuid = rInfo.user_uuid; + if (rtc_uid && user_uuid) { + const cInfo = collectInfos.find(c=> c && (c.user_uuid === user_uuid)); + if (cInfo) { + listMap.set(rtc_uid, cInfo.is_agree_collect_data); + } + } + } + } + } + const obj = Object.fromEntries(listMap); + + ava.is(result1?.is_agree_collect_data, obj?.[rtcUUID]); + + ava.is(false, obj?.[rtcUUID1]); }); \ No newline at end of file From cec8c64ecb685fdeaa64f6eb138eba4d41ef3de9 Mon Sep 17 00:00:00 2001 From: hqer927 <41457198+hqer927@users.noreply.github.com> Date: Mon, 9 Sep 2024 20:07:03 +0800 Subject: [PATCH 5/7] fix: modify about collect data by batch rtc_uuid (#853) --- src/v1/controller/user/agreement/GetToRtc.ts | 61 +++++++++---------- .../user/__tests__/userAgreement.test.ts | 49 ++++++--------- 2 files changed, 48 insertions(+), 62 deletions(-) diff --git a/src/v1/controller/user/agreement/GetToRtc.ts b/src/v1/controller/user/agreement/GetToRtc.ts index 60b00c81..f1c34bcd 100644 --- a/src/v1/controller/user/agreement/GetToRtc.ts +++ b/src/v1/controller/user/agreement/GetToRtc.ts @@ -47,52 +47,49 @@ export class AgreementGetToRtc extends AbstractController = new Map(); + const userAgreementMap:Map = new Map(rtcUids.map(rtc_uid => [rtc_uid, false])); const length = rtcUids.length; if (length > 0) { let i = 0; - const batchQueryRtcUids: string[][] = []; while (i < length) { const j = i + 50; - batchQueryRtcUids.push(rtcUids.slice(i, j)); - i = j; - } - for (const rtc_uids of batchQueryRtcUids) { - const roomUsersInfos = await dataSource - .createQueryBuilder(RoomUserModel, "ru") - .where("ru.room_uuid = :room_uuid", { - room_uuid, - }) - .andWhere("ru.rtc_uid IN (:...rtc_uids)", { rtc_uids }) - .getMany(); - - for (const rtc_uid of rtc_uids) { - listMap.set(rtc_uid, false); - } - const collectInfos = await dataSource - .createQueryBuilder(UserAgreementModel, "cInfo") - .where("cInfo.user_uuid IN (:...user_uuid)", { user_uuid: roomUsersInfos.map(c=> c && c.user_uuid) }) - .getMany(); - - for (const rInfo of roomUsersInfos) { - listMap.set(rInfo.rtc_uid, true); - const rtc_uid = rInfo.rtc_uid; - const user_uuid = rInfo.user_uuid; - if (rtc_uid && user_uuid) { - const cInfo = collectInfos.find(c=> c && (c.user_uuid === user_uuid)); - if (cInfo) { - listMap.set(rtc_uid, cInfo.is_agree_collect_data); - } + const batchedRtcUids = rtcUids.slice(i, j); + const roomUserInfos = await this.getRoomUserInfos(room_uuid, batchedRtcUids); + const userUuids = roomUserInfos.map(user => user.user_uuid); + const userAgreements = await this.getUserAgreements(userUuids); + for (const userInfo of roomUserInfos) { + const { rtc_uid, user_uuid } = userInfo; + const userAgreement = userAgreements.find(ua => ua.user_uuid === user_uuid); + if (userAgreement) { + userAgreementMap.set(rtc_uid, userAgreement.is_agree_collect_data); + } else { + userAgreementMap.set(rtc_uid, true); } } + i = j; } } return { status: Status.Success, - data: Object.fromEntries(listMap) + data: Object.fromEntries(userAgreementMap) } } + + private async getRoomUserInfos(room_uuid: string, rtc_uids: string[]): Promise { + return dataSource + .createQueryBuilder(RoomUserModel, "ru") + .where("ru.room_uuid = :room_uuid", { room_uuid }) + .andWhere("ru.rtc_uid IN (:...rtc_uids)", { rtc_uids }) + .getMany(); + } + private async getUserAgreements(userUuids: string[]): Promise { + return dataSource + .createQueryBuilder(UserAgreementModel, "ua") + .where("ua.user_uuid IN (:...userUuids)", { userUuids }) + .getMany(); + } + public errorHandler(error: Error): ResponseError { return this.autoHandlerError(error); } diff --git a/src/v1/service/user/__tests__/userAgreement.test.ts b/src/v1/service/user/__tests__/userAgreement.test.ts index 7ef001f1..1f0866b5 100644 --- a/src/v1/service/user/__tests__/userAgreement.test.ts +++ b/src/v1/service/user/__tests__/userAgreement.test.ts @@ -144,47 +144,36 @@ test(`${namespace} - get user by rtc_uuid collect agreement`, async ava => { ava.is(result?.user_uuid, result1?.user_uuid); const rtcUids = [rtcUUID, rtcUUID1]; + const userAgreementMap:Map = new Map(rtcUids.map(rtc_uid => [rtc_uid, false])); const length = rtcUids.length; - const listMap:Map = new Map(); if (length > 0) { let i = 0; - const batchQueryRtcUids: string[][] = []; while (i < length) { const j = i + 50; - batchQueryRtcUids.push(rtcUids.slice(i, j)); - i = j; - } - for (const rtc_uids of batchQueryRtcUids) { - const roomUsersInfos = await dataSource + const batchedRtcUids = rtcUids.slice(i, j); + const roomUserInfos = await dataSource .createQueryBuilder(RoomUserModel, "ru") - .where("ru.room_uuid = :room_uuid", { - room_uuid:roomUUID, - }) - .andWhere("ru.rtc_uid IN (:...rtc_uids)", { rtc_uids }) + .where("ru.room_uuid = :room_uuid", { room_uuid:roomUUID }) + .andWhere("ru.rtc_uid IN (:...rtc_uids)", { rtc_uids: batchedRtcUids }) .getMany(); - - for (const rtc_uid of rtc_uids) { - listMap.set(rtc_uid, false); - } - const collectInfos = await dataSource - .createQueryBuilder(UserAgreementModel, "cInfo") - .where("cInfo.user_uuid IN (:...user_uuid)", { user_uuid: roomUsersInfos.map(c=> c && c.user_uuid) }) - .getMany(); - - for (const rInfo of roomUsersInfos) { - listMap.set(rInfo.rtc_uid, true); - const rtc_uid = rInfo.rtc_uid; - const user_uuid = rInfo.user_uuid; - if (rtc_uid && user_uuid) { - const cInfo = collectInfos.find(c=> c && (c.user_uuid === user_uuid)); - if (cInfo) { - listMap.set(rtc_uid, cInfo.is_agree_collect_data); - } + const userUuids = roomUserInfos.map(user => user.user_uuid); + const userAgreements = await dataSource + .createQueryBuilder(UserAgreementModel, "ua") + .where("ua.user_uuid IN (:...userUuids)", { userUuids }) + .getMany();; + for (const userInfo of roomUserInfos) { + const { rtc_uid, user_uuid } = userInfo; + const userAgreement = userAgreements.find(ua => ua.user_uuid === user_uuid); + if (userAgreement) { + userAgreementMap.set(rtc_uid, userAgreement.is_agree_collect_data); + } else { + userAgreementMap.set(rtc_uid, true); } } + i = j; } } - const obj = Object.fromEntries(listMap); + const obj = Object.fromEntries(userAgreementMap); ava.is(result1?.is_agree_collect_data, obj?.[rtcUUID]); From 61658c835a8bc88ebc2913df8d923b0b30645068 Mon Sep 17 00:00:00 2001 From: hqer927 <41457198+hqer927@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:14:29 +0800 Subject: [PATCH 6/7] fix: fix when empty userUuids can not query IN (#854) --- src/v1/controller/user/agreement/GetToRtc.ts | 19 ++++++++------- .../user/__tests__/userAgreement.test.ts | 24 ++++++++++--------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/v1/controller/user/agreement/GetToRtc.ts b/src/v1/controller/user/agreement/GetToRtc.ts index f1c34bcd..fb00ab42 100644 --- a/src/v1/controller/user/agreement/GetToRtc.ts +++ b/src/v1/controller/user/agreement/GetToRtc.ts @@ -56,14 +56,16 @@ export class AgreementGetToRtc extends AbstractController user.user_uuid); - const userAgreements = await this.getUserAgreements(userUuids); - for (const userInfo of roomUserInfos) { - const { rtc_uid, user_uuid } = userInfo; - const userAgreement = userAgreements.find(ua => ua.user_uuid === user_uuid); - if (userAgreement) { - userAgreementMap.set(rtc_uid, userAgreement.is_agree_collect_data); - } else { - userAgreementMap.set(rtc_uid, true); + if (userUuids.length > 0) { + const userAgreements = await this.getUserAgreements(userUuids); + for (const userInfo of roomUserInfos) { + const { rtc_uid, user_uuid } = userInfo; + const userAgreement = userAgreements.find(ua => ua.user_uuid === user_uuid); + if (userAgreement) { + userAgreementMap.set(rtc_uid, userAgreement.is_agree_collect_data); + } else { + userAgreementMap.set(rtc_uid, true); + } } } i = j; @@ -74,7 +76,6 @@ export class AgreementGetToRtc extends AbstractController { return dataSource diff --git a/src/v1/service/user/__tests__/userAgreement.test.ts b/src/v1/service/user/__tests__/userAgreement.test.ts index 1f0866b5..402be7af 100644 --- a/src/v1/service/user/__tests__/userAgreement.test.ts +++ b/src/v1/service/user/__tests__/userAgreement.test.ts @@ -157,17 +157,19 @@ test(`${namespace} - get user by rtc_uuid collect agreement`, async ava => { .andWhere("ru.rtc_uid IN (:...rtc_uids)", { rtc_uids: batchedRtcUids }) .getMany(); const userUuids = roomUserInfos.map(user => user.user_uuid); - const userAgreements = await dataSource - .createQueryBuilder(UserAgreementModel, "ua") - .where("ua.user_uuid IN (:...userUuids)", { userUuids }) - .getMany();; - for (const userInfo of roomUserInfos) { - const { rtc_uid, user_uuid } = userInfo; - const userAgreement = userAgreements.find(ua => ua.user_uuid === user_uuid); - if (userAgreement) { - userAgreementMap.set(rtc_uid, userAgreement.is_agree_collect_data); - } else { - userAgreementMap.set(rtc_uid, true); + if (userUuids.length > 0) { + const userAgreements = await dataSource + .createQueryBuilder(UserAgreementModel, "ua") + .where("ua.user_uuid IN (:...userUuids)", { userUuids }) + .getMany();; + for (const userInfo of roomUserInfos) { + const { rtc_uid, user_uuid } = userInfo; + const userAgreement = userAgreements.find(ua => ua.user_uuid === user_uuid); + if (userAgreement) { + userAgreementMap.set(rtc_uid, userAgreement.is_agree_collect_data); + } else { + userAgreementMap.set(rtc_uid, true); + } } } i = j; From 9581bb43ebbeb20e7e7ce785d49adfc5d24ca432 Mon Sep 17 00:00:00 2001 From: hqer927 <41457198+hqer927@users.noreply.github.com> Date: Wed, 11 Sep 2024 15:28:33 +0800 Subject: [PATCH 7/7] update: change request parameter (#855) --- src/v1/controller/user/agreement/Set.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/v1/controller/user/agreement/Set.ts b/src/v1/controller/user/agreement/Set.ts index 14e3dbc1..22025601 100644 --- a/src/v1/controller/user/agreement/Set.ts +++ b/src/v1/controller/user/agreement/Set.ts @@ -14,9 +14,9 @@ export class AgreementSet extends AbstractController public static readonly schema: FastifySchema = { body: { type: "object", - required: ["is_agree_collect_data"], + required: ["isAgree"], properties: { - is_agree_collect_data: { + isAgree: { type: "boolean" }, }, @@ -36,7 +36,7 @@ export class AgreementSet extends AbstractController } public async execute(): Promise> { - await this.svc.userAgreement.set(this.body.is_agree_collect_data); + await this.svc.userAgreement.set(this.body.isAgree); return { status: Status.Success, data: { @@ -52,7 +52,7 @@ export class AgreementSet extends AbstractController interface RequestType { body: { - is_agree_collect_data: boolean; + isAgree: boolean; }; }