diff --git a/package.json b/package.json index 4ae7739..9091c58 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "module": "./dist/index.js", "typings": "./dist/index.d.ts", "dependencies": { - "fastify": "^4.26.2" + "fastify": "^4.26.2", + "mongoose": "^8.2.1" } } diff --git a/packages/mongoose/.npmignore b/packages/mongoose/.npmignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/packages/mongoose/.npmignore @@ -0,0 +1 @@ + diff --git a/packages/mongoose/LICENSE b/packages/mongoose/LICENSE new file mode 100644 index 0000000..a5e318e --- /dev/null +++ b/packages/mongoose/LICENSE @@ -0,0 +1,28 @@ +BSD 3-Clause License + +Copyright (c) 2019, Reactive Solutions LTD 205455032. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/packages/mongoose/README.md b/packages/mongoose/README.md new file mode 100644 index 0000000..14e9317 --- /dev/null +++ b/packages/mongoose/README.md @@ -0,0 +1,21 @@ +# @rhtml/mongoose + +#### Installation + +```bash +npm i @rhtml/mongoose +``` + +#### Usage + +```ts +import { Module } from '@rhtml/di'; +import mongoose from 'mongoose'; + +import { MongoDbModule } from './mongodb'; + +@Module({ + imports: [MongoDbModule.forRoot(mongoose, 'MONGODB_CONNECTION_STRING')], +}) +export class CoreModule {} +``` diff --git a/packages/mongoose/jest.config.js b/packages/mongoose/jest.config.js new file mode 100644 index 0000000..dafa15a --- /dev/null +++ b/packages/mongoose/jest.config.js @@ -0,0 +1,16 @@ +module.exports = { + testEnvironment: 'node', + testPathIgnorePatterns: ['/node_modules/'], + coverageReporters: ['lcov', 'html'], + rootDir: './', + moduleFileExtensions: ['ts', 'tsx', 'js', 'json', 'node'], + globals: { + __DEV__: true + }, + transform: { + '\\.(ts|tsx)$': 'ts-jest' + }, + testRegex: '/src/.*\\.spec.(ts|tsx|js)$', + verbose: true, + collectCoverage: true +}; diff --git a/packages/mongoose/package.json b/packages/mongoose/package.json new file mode 100644 index 0000000..cb32bf3 --- /dev/null +++ b/packages/mongoose/package.json @@ -0,0 +1,43 @@ +{ + "name": "@rhtml/mongoose", + "version": "0.0.4", + "description": "Mongoose module wrapper", + "scripts": { + "start": "npx gapi start --local --path=./example/main.ts", + "patch": "npm run build && npm version patch && npm publish --update-readme --access public && npm run delete-dist", + "delete-dist": "rm -rf dist", + "clean": "git clean -dxf", + "test": "echo 'no tests specified'", + "lint": "npx eslint . --ext .ts", + "lint-fix": "npx eslint . --fix --ext .ts", + "build": "rm -rf dist && tsc", + "build-prod": "npx gapi build --local --path=./src/index.ts" + }, + "repository": { + "type": "git", + "url": "git@github.com:r-html/rhtml.git" + }, + "peerDependencies": { + "mongoose": "^8.2.1" + }, + "dependencies": {}, + "devDependencies": { + "@types/jest": "^24.0.18", + "jest": "^24.9.0", + "ts-jest": "25.2.1", + "@rhtml/di": "^0.0.128", + "typescript": "^5.3.3" + }, + "author": "Kristiyan Tachev", + "license": "MIT", + "browserslist": [ + "last 1 chrome versions" + ], + "files": [ + "dist" + ], + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "module": "./dist/index.js", + "typings": "./dist/index.d.ts" +} \ No newline at end of file diff --git a/packages/mongoose/src/helpers/index.ts b/packages/mongoose/src/helpers/index.ts new file mode 100644 index 0000000..8adec5b --- /dev/null +++ b/packages/mongoose/src/helpers/index.ts @@ -0,0 +1 @@ +export * from './mongoose.transformers'; diff --git a/packages/mongoose/src/helpers/mongoose.transformers.ts b/packages/mongoose/src/helpers/mongoose.transformers.ts new file mode 100644 index 0000000..09e3b2b --- /dev/null +++ b/packages/mongoose/src/helpers/mongoose.transformers.ts @@ -0,0 +1,21 @@ +import { HydratedDocument, SchemaOptions, ToObjectOptions } from 'mongoose'; + +export const MongooseIdTransformer: ToObjectOptions> = + { + transform: (_doc, ret) => { + const model = { + id: ret._id, + ...ret, + }; + delete model['_id']; + delete model['__v']; + return model; + }, + }; + +export const GlobalModelOptions: SchemaOptions = { + toObject: MongooseIdTransformer, + toJSON: MongooseIdTransformer, + versionKey: false, + timestamps: true, +}; diff --git a/packages/mongoose/src/index.ts b/packages/mongoose/src/index.ts new file mode 100644 index 0000000..b10d875 --- /dev/null +++ b/packages/mongoose/src/index.ts @@ -0,0 +1,3 @@ +export * from './mongodb.module'; +export * from './mongodb.injection.tokens'; +export * from './helpers'; diff --git a/packages/mongoose/src/mongodb.injection.tokens.ts b/packages/mongoose/src/mongodb.injection.tokens.ts new file mode 100644 index 0000000..43a5a53 --- /dev/null +++ b/packages/mongoose/src/mongodb.injection.tokens.ts @@ -0,0 +1,5 @@ +import { InjectionToken } from '@rhtml/di'; +import { Mongoose } from 'mongoose'; + +export const MONGOOSE_CONNECTION_TOKEN = new InjectionToken(); +export type MONGOOSE_CONNECTION_TOKEN = Mongoose; diff --git a/packages/mongoose/src/mongodb.module.ts b/packages/mongoose/src/mongodb.module.ts new file mode 100644 index 0000000..02649c2 --- /dev/null +++ b/packages/mongoose/src/mongodb.module.ts @@ -0,0 +1,23 @@ +import { Module, ModuleWithProviders } from '@rhtml/di'; +import mongoose, { ConnectOptions } from 'mongoose'; + +import { MONGOOSE_CONNECTION_TOKEN } from './mongodb.injection.tokens'; + +@Module() +export class MongoDbModule { + public static forRoot( + mongooseInstance: typeof mongoose, + url: string, + options?: ConnectOptions + ): ModuleWithProviders { + return { + module: MongoDbModule, + providers: [ + { + provide: MONGOOSE_CONNECTION_TOKEN, + useFactory: () => mongooseInstance.connect(url, options), + }, + ], + }; + } +} diff --git a/packages/mongoose/tsconfig.json b/packages/mongoose/tsconfig.json new file mode 100644 index 0000000..4345468 --- /dev/null +++ b/packages/mongoose/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "sourceMap": true, + "module": "commonjs", + "declaration": true, + "moduleResolution": "node", + "skipLibCheck": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "esModuleInterop": true, + "target": "es6", + "outDir": "dist", + "types": [], + "lib": [ + "es2015", + "es2016", + "es6", + "esnext.asynciterable", + "es2017", + "dom" + ] + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "./node_modules", + "../../node_modules" + ] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 443e895..94cf583 100644 --- a/yarn.lock +++ b/yarn.lock @@ -583,6 +583,13 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" +"@mongodb-js/saslprep@^1.1.0": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz#0c48a96c8d799e81fae311b7251aa5c1dc7c6e95" + integrity sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA== + dependencies: + sparse-bitfield "^3.0.3" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -766,6 +773,18 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/webidl-conversions@*": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859" + integrity sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA== + +"@types/whatwg-url@^11.0.2": + version "11.0.4" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-11.0.4.tgz#ffed0dc8d89d91f62e3f368fcbda222a487c4f63" + integrity sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw== + dependencies: + "@types/webidl-conversions" "*" + "@types/yargs-parser@*": version "15.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" @@ -1307,6 +1326,11 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" +bson@^6.2.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/bson/-/bson-6.4.0.tgz#99c2e37b515e6766ce8b5929e01fa79de5767d50" + integrity sha512-6/gSSEdbkuFlSb+ufj5jUSU4+wo8xQOwm2bDSqwmxiPE17JTpsP63eAwoN8iF8Oy4gJYj+PAL3zdRCTdaw5Y1g== + buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -1694,6 +1718,13 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" +debug@4.x, debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1701,13 +1732,6 @@ debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - debug@^4.1.0, debug@^4.1.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" @@ -3657,6 +3681,11 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +kareem@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.5.1.tgz#7b8203e11819a8e77a34b3517d3ead206764d15d" + integrity sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA== + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -3885,6 +3914,11 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + meow@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" @@ -4008,6 +4042,48 @@ mkdirp@0.x, mkdirp@^0.5.1, mkdirp@~0.5.0: dependencies: minimist "^1.2.5" +mongodb-connection-string-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz#b4f87f92fd8593f3b9365f592515a06d304a1e9c" + integrity sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ== + dependencies: + "@types/whatwg-url" "^11.0.2" + whatwg-url "^13.0.0" + +mongodb@6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-6.3.0.tgz#ec9993b19f7ed2ea715b903fcac6171c9d1d38ca" + integrity sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA== + dependencies: + "@mongodb-js/saslprep" "^1.1.0" + bson "^6.2.0" + mongodb-connection-string-url "^3.0.0" + +mongoose@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-8.2.1.tgz#c64466c8c2ddc8da95adf20513085ca9defe8301" + integrity sha512-UgZZbXSJH0pdU936qj3FyVI+sBsMoGowFnL5R/RYrA50ayn6+ZYdVr8ehsRgNxRcMYwoNld5XzHIfkFRJTePEw== + dependencies: + bson "^6.2.0" + kareem "2.5.1" + mongodb "6.3.0" + mpath "0.9.0" + mquery "5.0.0" + ms "2.1.3" + sift "16.0.1" + +mpath@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" + integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== + +mquery@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-5.0.0.tgz#a95be5dfc610b23862df34a47d3e5d60e110695d" + integrity sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg== + dependencies: + debug "4.x" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4018,6 +4094,11 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + multimatch@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" @@ -4612,6 +4693,11 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -5081,6 +5167,11 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== +sift@16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.1.tgz#e9c2ccc72191585008cf3e36fc447b2d2633a053" + integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ== + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -5204,6 +5295,13 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -5534,6 +5632,13 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469" + integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw== + dependencies: + punycode "^2.3.0" + trim-newlines@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" @@ -5756,6 +5861,11 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -5768,6 +5878,14 @@ whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-13.0.0.tgz#b7b536aca48306394a34e44bda8e99f332410f8f" + integrity sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig== + dependencies: + tr46 "^4.1.1" + webidl-conversions "^7.0.0" + whatwg-url@^6.4.1: version "6.5.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"